diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
commit | 940b4d1848e8c70ab7642901a68594e8016caffc (patch) | |
tree | eb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /vcl/workben | |
parent | Initial commit. (diff) | |
download | libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip |
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
121 files changed, 21929 insertions, 0 deletions
diff --git a/vcl/workben/602fuzzer.cxx b/vcl/workben/602fuzzer.cxx new file mode 100644 index 000000000..6fb96a4c7 --- /dev/null +++ b/vcl/workben/602fuzzer.cxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool TestImport602(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImport602(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/602fuzzer.options b/vcl/workben/602fuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/602fuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/bmpfuzzer.cxx b/vcl/workben/bmpfuzzer.cxx new file mode 100644 index 000000000..8e22aabaf --- /dev/null +++ b/vcl/workben/bmpfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/dibtools.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Bitmap aTarget; + (void)ReadDIB(aTarget, aStream, true); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/bmpfuzzer.options b/vcl/workben/bmpfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/bmpfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/cgmfuzzer.cxx b/vcl/workben/cgmfuzzer.cxx new file mode 100644 index 000000000..252d538bd --- /dev/null +++ b/vcl/workben/cgmfuzzer.cxx @@ -0,0 +1,129 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * sd_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); +void * ucb_component_getFactory( const char* , void* , void* ); +void * lng_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation( void *, void * ); +void * com_sun_star_drawing_SvxShapeCollection_get_implementation( void *, void * ); +void * SfxDocumentMetaData_get_implementation( void *, void * ); +void * unoxml_component_getFactory( const char* , void* , void* ); +void * com_sun_star_animations_AnimateColor_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateMotion_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateSet_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateTransform_get_implementation( void *, void * ); +void * com_sun_star_animations_Animate_get_implementation( void *, void * ); +void * com_sun_star_animations_Audio_get_implementation( void *, void * ); +void * com_sun_star_animations_Command_get_implementation( void *, void * ); +void * com_sun_star_animations_IterateContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_ParallelTimeContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_SequenceTimeContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_TransitionFilter_get_implementation( void *, void * ); +void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * ); +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { "libsdlo.a", sd_component_getFactory }, + { "libunoxmllo.a", unoxml_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { "libucb1.a", ucb_component_getFactory }, + { "liblnglo.a", lng_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation", com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation }, + { "com_sun_star_drawing_SvxShapeCollection_get_implementation", com_sun_star_drawing_SvxShapeCollection_get_implementation }, + { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation }, + { "com_sun_star_animations_AnimateColor_get_implementation", com_sun_star_animations_AnimateColor_get_implementation }, + { "com_sun_star_animations_AnimateMotion_get_implementation", com_sun_star_animations_AnimateMotion_get_implementation }, + { "com_sun_star_animations_AnimateSet_get_implementation", com_sun_star_animations_AnimateSet_get_implementation }, + { "com_sun_star_animations_AnimateTransform_get_implementation", com_sun_star_animations_AnimateTransform_get_implementation }, + { "com_sun_star_animations_Animate_get_implementation", com_sun_star_animations_Animate_get_implementation }, + { "com_sun_star_animations_Audio_get_implementation", com_sun_star_animations_Audio_get_implementation }, + { "com_sun_star_animations_Command_get_implementation", com_sun_star_animations_Command_get_implementation }, + { "com_sun_star_animations_IterateContainer_get_implementation", com_sun_star_animations_IterateContainer_get_implementation }, + { "com_sun_star_animations_ParallelTimeContainer_get_implementation", com_sun_star_animations_ParallelTimeContainer_get_implementation }, + { "com_sun_star_animations_SequenceTimeContainer_get_implementation", com_sun_star_animations_SequenceTimeContainer_get_implementation }, + { "com_sun_star_animations_TransitionFilter_get_implementation", com_sun_star_animations_TransitionFilter_get_implementation }, + { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag }, + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SdCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportCGM(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportCGM(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/cgmfuzzer.options b/vcl/workben/cgmfuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/cgmfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/commonfuzzer.hxx b/vcl/workben/commonfuzzer.hxx new file mode 100644 index 000000000..d6c8d5cae --- /dev/null +++ b/vcl/workben/commonfuzzer.hxx @@ -0,0 +1,143 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <sal/main.h> +#include <tools/extendapplicationenvironment.hxx> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <unotools/configmgr.hxx> +#include <rtl/bootstrap.hxx> +#include <rtl/strbuf.hxx> +#include <osl/file.hxx> +#include <osl/process.h> +#include <vcl/graph.hxx> +#include <vcl/print.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wmf.hxx> +#include <unistd.h> +#include <stdlib.h> +#include "headless/svpgdi.hxx" +#include "unx/fontmanager.hxx" +#include "unx/glyphcache.hxx" + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +namespace +{ + OUString getExecutableDir() + { + OUString uri; + if (osl_getExecutableFile(&uri.pData) != osl_Process_E_None) { + abort(); + } + sal_Int32 lastDirSeperatorPos = uri.lastIndexOf('/'); + if (lastDirSeperatorPos >= 0) { + uri = uri.copy(0, lastDirSeperatorPos + 1); + } + return uri; + } + + OUString getExecutableName() + { + OUString uri; + if (osl_getExecutableFile(&uri.pData) != osl_Process_E_None) { + abort(); + } + return uri.copy(uri.lastIndexOf('/') + 1); + } + + void setFontConfigConf(const OUString &execdir) + { + osl::File aFontConfig("file:///tmp/wmffuzzerfonts.conf"); + if (aFontConfig.open(osl_File_OpenFlag_Create | osl_File_OpenFlag_Write) == osl::File::E_None) + { + OUString sExecDir; + osl::FileBase::getSystemPathFromFileURL(execdir, sExecDir); + + OStringBuffer aBuffer("<?xml version=\"1.0\"?>\n<fontconfig><dir>"); + aBuffer.append(OUStringToOString(sExecDir + getExecutableName() + ".fonts", osl_getThreadTextEncoding())); + aBuffer.append("</dir><cachedir>/tmp/cache/fontconfig</cachedir></fontconfig>"); + OString aConf = aBuffer.makeStringAndClear(); + sal_uInt64 aBytesWritten; + aFontConfig.write(aConf.getStr(), aConf.getLength(), aBytesWritten); + assert(aBytesWritten == aConf.getLength()); + } + setenv("FONTCONFIG_FILE", "/tmp/wmffuzzerfonts.conf", 0); + } +} + +extern "C" +{ + __attribute__((weak)) void __lsan_disable(); + __attribute__((weak)) void __lsan_enable(); +} + +void CommonInitialize(int *argc, char ***argv) +{ + setenv("SAL_USE_VCLPLUGIN", "svp", 1); + setenv("JPEGMEM", "768M", 1); + setenv("SC_MAX_MATRIX_ELEMENTS", "60000000", 1); + setenv("SC_NO_THREADED_CALCULATION", "1", 1); + setenv("SAL_WMF_COMPLEXCLIP_VIA_REGION", "1", 1); + setenv("SAL_DISABLE_PRINTERLIST", "1", 1); + setenv("SAL_DISABLE_DEFAULTPRINTER", "1", 1); + setenv("SAL_NO_FONT_LOOKUP", "1", 1); + + //allow bubbling of max input len to fuzzer targets + int nMaxLen = 0; + for (int i = 0; i < *argc; ++i) + { + if (strncmp((*argv)[i], "-max_len=", 9) == 0) + nMaxLen = atoi((*argv)[i] + 9); + } + setenv("FUZZ_MAX_INPUT_LEN", "1", nMaxLen); + + osl_setCommandArgs(*argc, *argv); + + OUString sExecDir = getExecutableDir(); + rtl::Bootstrap::set("BRAND_BASE_DIR", sExecDir); + setFontConfigConf(sExecDir); + + tools::extendApplicationEnvironment(); + + Reference< XComponentContext > xContext = + defaultBootstrap_InitialComponentContext(sExecDir + getExecutableName() + ".unorc"); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + comphelper::setProcessServiceFactory( xServiceManager ); + utl::ConfigManager::EnableFuzzing(); + Application::EnableHeadlessMode(false); + InitVCL(); + + //we don't have a de-init, so inside this leak disabled region... + //get the font info + psp::PrintFontManager::get(); + //get the printer info + Printer::GetPrinterQueues(); +} + +void TypicalFuzzerInitialize(int *argc, char ***argv) +{ + if (__lsan_disable) + __lsan_disable(); + + CommonInitialize(argc, argv); + + if (__lsan_enable) + __lsan_enable(); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/diffuzzer.cxx b/vcl/workben/diffuzzer.cxx new file mode 100644 index 000000000..c9bc77a16 --- /dev/null +++ b/vcl/workben/diffuzzer.cxx @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void* i18npool_component_getFactory(const char*, void*, void*); + +void* com_sun_star_i18n_LocaleDataImpl_get_implementation(void*, void*); +void* com_sun_star_i18n_BreakIterator_Unicode_get_implementation(void*, void*); +void* com_sun_star_i18n_BreakIterator_get_implementation(void*, void*); +void* com_sun_star_comp_framework_Desktop_get_implementation(void*, void*); +void* com_sun_star_i18n_CharacterClassification_Unicode_get_implementation(void*, void*); +void* com_sun_star_i18n_CharacterClassification_get_implementation(void*, void*); +void* com_sun_star_i18n_Collator_get_implementation(void*, void*); +void* com_sun_star_i18n_NativeNumberSupplier_get_implementation(void*, void*); +void* com_sun_star_i18n_NumberFormatCodeMapper_get_implementation(void*, void*); +void* com_sun_star_i18n_Transliteration_get_implementation(void*, void*); +} + +const lib_to_factory_mapping* lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] + = { { "libi18npoollo.a", i18npool_component_getFactory }, { 0, 0 } }; + + return map; +} + +const lib_to_constructor_mapping* lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] + = { { "com_sun_star_i18n_LocaleDataImpl_get_implementation", + com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", + com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", + com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", + com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", + com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", + com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_Collator_get_implementation", + com_sun_star_i18n_Collator_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", + com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", + com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", + com_sun_star_i18n_Transliteration_get_implementation }, + { 0, 0 } }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; } + +extern "C" void* ScCreateDialogFactory() { return nullptr; } + +extern "C" bool TestImportDIF(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportDIF(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/diffuzzer.options b/vcl/workben/diffuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/diffuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/docxfuzzer.cxx b/vcl/workben/docxfuzzer.cxx new file mode 100644 index 000000000..4e116c600 --- /dev/null +++ b/vcl/workben/docxfuzzer.cxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation() +{ + return nullptr; +} + +extern "C" bool TestImportDOCX(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportDOCX(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/docxfuzzer.options b/vcl/workben/docxfuzzer.options new file mode 100644 index 000000000..db9a3e8c6 --- /dev/null +++ b/vcl/workben/docxfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 98304 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/dxffuzzer.cxx b/vcl/workben/dxffuzzer.cxx new file mode 100644 index 000000000..6ca526a1d --- /dev/null +++ b/vcl/workben/dxffuzzer.cxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool idxGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)idxGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/dxffuzzer.options b/vcl/workben/dxffuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/dxffuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/epsfuzzer.cxx b/vcl/workben/epsfuzzer.cxx new file mode 100644 index 000000000..effb05193 --- /dev/null +++ b/vcl/workben/epsfuzzer.cxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool ipsGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ipsGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/epsfuzzer.options b/vcl/workben/epsfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/epsfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx new file mode 100644 index 000000000..66b51a5d3 --- /dev/null +++ b/vcl/workben/fftester.cxx @@ -0,0 +1,692 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 . + */ + + /* e.g. + make + cp workdir/LinkTarget/Executable/fftester instdir/program + LD_LIBRARY_PATH=`pwd`/instdir/program instdir/program/fftester <foo> png + */ + +#include <sal/main.h> +#include <tools/extendapplicationenvironment.hxx> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/ucb/XContentProvider.hpp> +#include <com/sun/star/ucb/XUniversalContentBroker.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <unotools/configmgr.hxx> +#include <vcl/dibtools.hxx> +#include <vcl/event.hxx> +#include <vcl/graphicfilter.hxx> +#include <vcl/pngread.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wmf.hxx> +#include <vcl/wrkwin.hxx> +#include <fltcall.hxx> +#include <osl/file.hxx> +#include <osl/module.hxx> +#include <tools/stream.hxx> +#include <vcl/gdimtf.hxx> + +#include "../source/filter/igif/gifread.hxx" +#include "../source/filter/ixbm/xbmread.hxx" +#include "../source/filter/ixpm/xpmread.hxx" +#include "../source/filter/jpeg/jpeg.hxx" + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +#ifndef DISABLE_DYNLOADING +extern "C" { static void thisModule() {} } +#endif + +typedef bool (*FFilterCall)(SvStream &rStream); + +SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) +{ + int ret = -1; + try + { + if (argc < 3) + { + fprintf(stderr, "Usage: fftester <filename> <wmf|jpg>\n"); + return -1; + } + + setenv("SAL_USE_VCLPLUGIN", "svp", 1); + setenv("JPEGMEM", "768M", 1); + setenv("SC_MAX_MATRIX_ELEMENTS", "60000000", 1); + setenv("SC_NO_THREADED_CALCULATION", "1", 1); + setenv("SAL_WMF_COMPLEXCLIP_VIA_REGION", "1", 1); + setenv("SAL_DISABLE_PRINTERLIST", "1", 1); + setenv("SAL_DISABLE_DEFAULTPRINTER", "1", 1); + setenv("SAL_NO_FONT_LOOKUP", "1", 1); + + OUString in(argv[1], strlen(argv[1]), RTL_TEXTENCODING_UTF8); + OUString out; + osl::File::getFileURLFromSystemPath(in, out); + + tools::extendApplicationEnvironment(); + + Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext(); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + comphelper::setProcessServiceFactory( xServiceManager ); + utl::ConfigManager::EnableFuzzing(); + + // initialise unconfigured UCB: + css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb(comphelper::getProcessServiceFactory()-> + createInstance("com.sun.star.ucb.UniversalContentBroker"), css::uno::UNO_QUERY_THROW); + css::uno::Sequence<css::uno::Any> aArgs(1); + aArgs[0] <<= OUString("NoConfig"); + css::uno::Reference<css::ucb::XContentProvider> xFileProvider(comphelper::getProcessServiceFactory()-> + createInstanceWithArguments("com.sun.star.ucb.FileContentProvider", aArgs), css::uno::UNO_QUERY_THROW); + xUcb->registerContentProvider(xFileProvider, "file", true); + + Application::EnableHeadlessMode(false); + InitVCL(); + + if (strcmp(argv[2], "wmf") == 0 || strcmp(argv[2], "emf") == 0) + { + GDIMetaFile aGDIMetaFile; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>(ReadWindowMetafile(aFileStream, aGDIMetaFile)); + } + else if (strcmp(argv[2], "jpg") == 0) + { + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>(ImportJPEG(aFileStream, aGraphic, GraphicFilterImportFlags::NONE, nullptr)); + } + else if (strcmp(argv[2], "gif") == 0) + { + SvFileStream aFileStream(out, StreamMode::READ); + Graphic aGraphic; + ret = static_cast<int>(ImportGIF(aFileStream, aGraphic)); + } + else if (strcmp(argv[2], "xbm") == 0) + { + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>(ImportXBM(aFileStream, aGraphic)); + } + else if (strcmp(argv[2], "xpm") == 0) + { + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>(ImportXPM(aFileStream, aGraphic)); + } + else if (strcmp(argv[2], "png") == 0) + { + SvFileStream aFileStream(out, StreamMode::READ); + vcl::PNGReader aReader(aFileStream); + ret = static_cast<int>(!!aReader.Read()); + } + else if (strcmp(argv[2], "bmp") == 0) + { + Bitmap aTarget; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>(ReadDIB(aTarget, aFileStream, true)); + } + else if (strcmp(argv[2], "svm") == 0) + { + GDIMetaFile aGDIMetaFile; + SvFileStream aFileStream(out, StreamMode::READ); + ReadGDIMetaFile(aFileStream, aGDIMetaFile); + } +#ifndef DISABLE_DYNLOADING + else if (strcmp(argv[2], "pcd") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("icdGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "dxf") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("idxGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "met") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("imeGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if ((strcmp(argv[2], "pbm") == 0) || strcmp(argv[2], "ppm") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("ipbGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "psd") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("ipdGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "eps") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("ipsGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "pct") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("iptGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "pcx") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("ipxGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "ras") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("iraGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "tga") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("itgGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if (strcmp(argv[2], "tif") == 0) + { + static PFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libgielo.so"); + pfnImport = reinterpret_cast<PFilterCall>( + aLibrary.getFunctionSymbol("itiGraphicImport")); + aLibrary.release(); + } + Graphic aGraphic; + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr)); + } + else if ((strcmp(argv[2], "doc") == 0) || (strcmp(argv[2], "ww8") == 0)) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportWW8")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "ww6") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportWW6")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "ww2") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportWW2")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "rtf") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportRTF")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "html") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportHTML")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "fodt") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportFODT")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "docx") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportDOCX")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "fods") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportFODS")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "xlsx") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportXLSX")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "fodp") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportFODP")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "pptx") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportPPTX")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "xls") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportXLS")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "wks") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportWKS")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "hwp") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libhwplo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportHWP")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "602") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libt602filterlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImport602")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "lwp") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "liblwpftlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportLWP")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "ppt") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsdfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportPPT")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "cgm") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportCGM")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "qpw") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportQPW")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "dif") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportDIF")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "sc-rtf") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportCalcRTF")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "slk") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportSLK")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "ole") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsotlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportOLE2")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "mml") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsmlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportMML")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "mtp") == 0) + { + static FFilterCall pfnImport(nullptr); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libsmlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<FFilterCall>( + aLibrary.getFunctionSymbol("TestImportMathType")); + aLibrary.release(); + } + SvFileStream aFileStream(out, StreamMode::READ); + ret = static_cast<int>((*pfnImport)(aFileStream)); + } + else if (strcmp(argv[2], "sft") == 0) + { + SvFileStream aFileStream(out, StreamMode::READ); + std::vector<sal_uInt8> aData(aFileStream.remainingSize()); + aFileStream.ReadBytes(aData.data(), aData.size()); + (void)vcl::Font::identifyFont(aData.data(), aData.size()); + } + +#endif + } + catch (...) + { + abort(); + } + + return ret; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/fodpfuzzer.cxx b/vcl/workben/fodpfuzzer.cxx new file mode 100644 index 000000000..603849742 --- /dev/null +++ b/vcl/workben/fodpfuzzer.cxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" bool TestImportFODP(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" void* SdCreateDialogFactory() +{ + return nullptr; +} + +extern "C" void* com_sun_star_comp_Draw_VisioImportFilter_get_implementation() +{ + return nullptr; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportFODP(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/fodpfuzzer.options b/vcl/workben/fodpfuzzer.options new file mode 100644 index 000000000..120b6953b --- /dev/null +++ b/vcl/workben/fodpfuzzer.options @@ -0,0 +1,5 @@ +[libfuzzer] +max_len = 65536 +dict = xml.dict +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/fodsfuzzer.cxx b/vcl/workben/fodsfuzzer.cxx new file mode 100644 index 000000000..ed9efd6e3 --- /dev/null +++ b/vcl/workben/fodsfuzzer.cxx @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" void* ScCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportFODS(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportFODS(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/fodsfuzzer.options b/vcl/workben/fodsfuzzer.options new file mode 100644 index 000000000..120b6953b --- /dev/null +++ b/vcl/workben/fodsfuzzer.options @@ -0,0 +1,5 @@ +[libfuzzer] +max_len = 65536 +dict = xml.dict +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/fodtfuzzer.cxx b/vcl/workben/fodtfuzzer.cxx new file mode 100644 index 000000000..54ae26622 --- /dev/null +++ b/vcl/workben/fodtfuzzer.cxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation() +{ + return nullptr; +} + +extern "C" bool TestImportFODT(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportFODT(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/fodtfuzzer.options b/vcl/workben/fodtfuzzer.options new file mode 100644 index 000000000..120b6953b --- /dev/null +++ b/vcl/workben/fodtfuzzer.options @@ -0,0 +1,5 @@ +[libfuzzer] +max_len = 65536 +dict = xml.dict +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/giffuzzer.cxx b/vcl/workben/giffuzzer.cxx new file mode 100644 index 000000000..7a2b9a9f0 --- /dev/null +++ b/vcl/workben/giffuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <../source/filter/igif/gifread.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ImportGIF(aStream, aGraphic); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/giffuzzer.options b/vcl/workben/giffuzzer.options new file mode 100644 index 000000000..57d53b24e --- /dev/null +++ b/vcl/workben/giffuzzer.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 65536 +dict = gif.dict diff --git a/vcl/workben/htmlfuzzer.cxx b/vcl/workben/htmlfuzzer.cxx new file mode 100644 index 000000000..6da6c853f --- /dev/null +++ b/vcl/workben/htmlfuzzer.cxx @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" void* SwCreateDialogFactory() { return nullptr; } + +extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation() { return nullptr; } + +extern "C" bool TestImportHTML(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportHTML(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/htmlfuzzer.options b/vcl/workben/htmlfuzzer.options new file mode 100644 index 000000000..cd3dd2011 --- /dev/null +++ b/vcl/workben/htmlfuzzer.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 65536 +dict = html_tags.dict diff --git a/vcl/workben/hwpfuzzer.cxx b/vcl/workben/hwpfuzzer.cxx new file mode 100644 index 000000000..430b1bdfc --- /dev/null +++ b/vcl/workben/hwpfuzzer.cxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool TestImportHWP(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportHWP(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/hwpfuzzer.options b/vcl/workben/hwpfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/hwpfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/icontest.cxx b/vcl/workben/icontest.cxx new file mode 100644 index 000000000..4b2bb7303 --- /dev/null +++ b/vcl/workben/icontest.cxx @@ -0,0 +1,219 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 is a quick hack to test some stuff. Work in progress. Don't touch + * and don't bother inspecting too closely. + * + * ======================================================================= + */ + +#include <iostream> + +#include <math.h> + +#include <glm/gtx/bit.hpp> + +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/ucb/UniversalContentBroker.hpp> +#include <comphelper/processfactory.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <osl/file.hxx> +#include <sal/log.hxx> +#include <tools/stream.hxx> +#include <vcl/builder.hxx> +#include <vcl/toolkit/button.hxx> +#include <vcl/toolkit/dialog.hxx> +#include <vcl/fixed.hxx> +#include <vcl/graph.hxx> +#include <vcl/graphicfilter.hxx> +#include <vcl/image.hxx> +#include <vcl/opengl/OpenGLContext.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> +#include <vcl/svapp.hxx> +#include <vcl/vclmain.hxx> +#include <vcl/wrkwin.hxx> + +using namespace com::sun::star; + +namespace { + const int WIDTH = 1000, HEIGHT = 800; + + double getTimeNow() + { + TimeValue aValue; + osl_getSystemTime(&aValue); + return static_cast<double>(aValue.Seconds) + + static_cast<double>(aValue.Nanosec) / (1000*1000*1000); + } + +class MyWorkWindow : public WorkWindow +{ + double mnStartTime; + int mnPaintCount; + +public: + Graphic maGraphic; + BitmapEx *mpBitmap; + VclPtr<FixedBitmap> mpFixedBitmap; + + MyWorkWindow( vcl::Window* pParent, WinBits nWinStyle ); + virtual ~MyWorkWindow() override { disposeOnce(); } + virtual void dispose() override { mpFixedBitmap.clear(); WorkWindow::dispose(); } + void LoadGraphic( const OUString& sImageFile ); + + virtual void Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect ) override; + virtual void Resize() override; +}; + +} + +MyWorkWindow::MyWorkWindow( vcl::Window* pParent, WinBits nWinStyle ) + : WorkWindow(pParent, nWinStyle) + , mpBitmap(nullptr) + , mpFixedBitmap(nullptr) +{ + mnPaintCount = 0; + mnStartTime = getTimeNow(); + EnableInput(); +} + +void MyWorkWindow::LoadGraphic( const OUString& sImageFile ) +{ + SvFileStream aFileStream( sImageFile, StreamMode::READ ); + GraphicFilter aGraphicFilter(false); + if (aGraphicFilter.ImportGraphic(maGraphic, sImageFile, aFileStream) != ERRCODE_NONE) + { + SAL_WARN("vcl.icontest", "Could not import image '" << sImageFile << "'"); + return; + } +} + +void MyWorkWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) +{ + std::cout << "==> Paint! " << mnPaintCount++ << " (vcl) " << GetSizePixel() << " " << getTimeNow() - mnStartTime << std::endl; + + Size aGraphicSize( maGraphic.GetSizePixel() ); + float aspect = static_cast<float>(aGraphicSize.Width()) / aGraphicSize.Height(); + Size aSize; + if( aspect >= (float(WIDTH)) / HEIGHT ) + aSize = Size( WIDTH, HEIGHT/aspect ); + else + aSize = Size( WIDTH * aspect, HEIGHT ); + aSize.setWidth( aSize.Width() * (1 + (0.1*sin(mnPaintCount/60.))) ); + aSize.setHeight( aSize.Height() * (1 + (0.1*sin(mnPaintCount/50.))) ); + + BitmapEx aEmpty; + mpFixedBitmap->SetBitmap( aEmpty ); + GraphicConversionParameters aConv( aSize ); + mpBitmap = new BitmapEx(maGraphic.GetBitmapEx( aConv )); + mpFixedBitmap->SetBitmap( *mpBitmap ); + mpFixedBitmap->SetSizePixel( aSize ); + + WorkWindow::Paint(rRenderContext, rRect); + + if (mnPaintCount == 100) + Application::Quit(); + + Invalidate( InvalidateFlags::Children ); +} + +void MyWorkWindow::Resize() +{ + SAL_INFO("vcl.icontest", "Resize " << GetSizePixel()); +} + +namespace { + +class IconTestApp : public Application +{ +public: + virtual void Init() override; + virtual int Main() override; + + IconTestApp() : nRet(EXIT_SUCCESS) {}; + +private: + int nRet; + + void DoItWithVcl(const OUString& sImageFile); +}; + +} + +void IconTestApp::Init() +{ + nRet = EXIT_SUCCESS; + + uno::Reference<uno::XComponentContext> xContext = + cppu::defaultBootstrap_InitialComponentContext(); + uno::Reference<lang::XMultiComponentFactory> xFactory = + xContext->getServiceManager(); + uno::Reference<lang::XMultiServiceFactory> xSFactory(xFactory, uno::UNO_QUERY_THROW); + comphelper::setProcessServiceFactory(xSFactory); + + // Create UCB (for backwards compatibility, in case some code still uses + // plain createInstance w/o args directly to obtain an instance): + ::ucb::UniversalContentBroker::create( + comphelper::getProcessComponentContext() ); +} + +int IconTestApp::Main() +{ + if (GetCommandLineParamCount() != 1) + { + fprintf(stderr, "Usage: imagetest <image>\n"); + return EXIT_FAILURE; + } + OUString sImageFile( GetCommandLineParam( 0 ) ); + DoItWithVcl( sImageFile ); + + return nRet; +} + +void IconTestApp::DoItWithVcl( const OUString& sImageFile) +{ + try + { + VclPtrInstance<MyWorkWindow> pWindow( nullptr, WB_APP | WB_STDWORK | WB_SIZEABLE | WB_CLOSEABLE | WB_CLIPCHILDREN ); + + pWindow->SetText("VCL Image Test"); + + pWindow->LoadGraphic( sImageFile ); + pWindow->mpFixedBitmap = VclPtr<FixedBitmap>::Create( pWindow ); + pWindow->mpFixedBitmap->SetPosPixel( Point( 0, 0 ) ); + pWindow->mpFixedBitmap->Show(); + + pWindow->Hide(); + pWindow->Show(); + + Execute(); + } + catch (const uno::Exception &e) + { + fprintf(stderr, "fatal error: %s\n", OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr()); + nRet = EXIT_FAILURE; + } + catch (const std::exception &e) + { + fprintf(stderr, "fatal error: %s\n", e.what()); + nRet = EXIT_FAILURE; + } +} + +void vclmain::createApplication() +{ + static IconTestApp aApp; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/jpgfuzzer.cxx b/vcl/workben/jpgfuzzer.cxx new file mode 100644 index 000000000..5850deec5 --- /dev/null +++ b/vcl/workben/jpgfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <../source/filter/jpeg/jpeg.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ImportJPEG(aStream, aGraphic, GraphicFilterImportFlags::NONE, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/jpgfuzzer.options b/vcl/workben/jpgfuzzer.options new file mode 100644 index 000000000..dfcaf9cd9 --- /dev/null +++ b/vcl/workben/jpgfuzzer.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 65536 +dict = jpeg.dict diff --git a/vcl/workben/localestub/localedata_en_AU.cxx b/vcl/workben/localestub/localedata_en_AU.cxx new file mode 100644 index 000000000..04742a8bb --- /dev/null +++ b/vcl/workben/localestub/localedata_en_AU.cxx @@ -0,0 +1,1263 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x41, 0x55, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_AU(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_AU(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x43, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {0}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_AU(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_AU(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_AU(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_AU(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_AU(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_AU(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_AU(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_AU(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_AU(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x41, 0x55, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x41, 0x55, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_AU(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_AU(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_AU(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_AU(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_AU(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_AU(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_AU(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_BW.cxx b/vcl/workben/localestub/localedata_en_BW.cxx new file mode 100644 index 000000000..b79b8eaa7 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_BW.cxx @@ -0,0 +1,140 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x42, 0x57, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_BW(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_BW(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x50, 0x2d, 0x39, 0x38, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_BW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_BW(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_BW(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_BW(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_BW(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_BW(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_BW(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_BW(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_BW(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x42, 0x57, 0x50, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x50, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x42, 0x57, 0x50, 0x0}; +static const sal_Unicode currencyName0[] = {0x50, 0x75, 0x6c, 0x61, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_BW(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_BW(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_BW(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_BW(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_BW(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_BW(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_BW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_BZ.cxx b/vcl/workben/localestub/localedata_en_BZ.cxx new file mode 100644 index 000000000..d8f15e4fe --- /dev/null +++ b/vcl/workben/localestub/localedata_en_BZ.cxx @@ -0,0 +1,225 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x42, 0x5a, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_BZ(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_BZ(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x42, 0x5a, 0x24, 0x2d, 0x32, 0x38, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_BZ(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_US(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_BZ(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_BZ(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_BZ(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_BZ(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_BZ(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_BZ(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_BZ(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {0}; +static const sal_Unicode nbOfMonths[] = {0}; +static const sal_Unicode nbOfGenitiveMonths[] = {0}; +static const sal_Unicode nbOfPartitiveMonths[] = {0}; +static const sal_Unicode nbOfEras[] = {0}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayRef0, + dayRefName0, + monthRef0, + monthRefName0, + genitiveMonthRef0, + genitiveMonthRefName0, + partitiveMonthRef0, + partitiveMonthRefName0, + eraRef0, + eraRefName0, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_BZ(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x42, 0x5a, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x42, 0x5a, 0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x42, 0x5a, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_BZ(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_BZ(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_BZ(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_BZ(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_BZ(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_BZ(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_BZ(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_CA.cxx b/vcl/workben/localestub/localedata_en_CA.cxx new file mode 100644 index 000000000..5d7270595 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_CA.cxx @@ -0,0 +1,929 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x43, 0x41, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x43, 0x61, 0x6e, 0x61, 0x64, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_CA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2d, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_CA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x0}; +static const sal_Unicode replaceTo0[] = {0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2d, 0x4d, 0x2d, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {0}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {1}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_CA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2d, 0x4d, 0x2d, 0x44, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2d, 0x44, 0x0}; +static const sal_Unicode DateAcceptancePattern2[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x0}; +static const sal_Unicode DateAcceptancePattern3[] = {0x4d, 0x2f, 0x44, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 4; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, + DateAcceptancePattern2, + DateAcceptancePattern3, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_CA(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_CA(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_CA(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_CA(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_CA(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_CA(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_CA(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {4}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {0}; +static const sal_Unicode nbOfMonths[] = {0}; +static const sal_Unicode nbOfGenitiveMonths[] = {0}; +static const sal_Unicode nbOfPartitiveMonths[] = {0}; +static const sal_Unicode nbOfEras[] = {0}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayRef0, + dayRefName0, + monthRef0, + monthRefName0, + genitiveMonthRef0, + genitiveMonthRefName0, + partitiveMonthRef0, + partitiveMonthRefName0, + eraRef0, + eraRefName0, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_CA(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x43, 0x41, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x43, 0x41, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_CA(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_CA(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_CA(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_CA(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_CA(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_CA(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_CA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_GB.cxx b/vcl/workben/localestub/localedata_en_GB.cxx new file mode 100644 index 000000000..4aea47251 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_GB.cxx @@ -0,0 +1,912 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x47, 0x42, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, 0x69, 0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GB(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0xa3, 0x2d, 0x38, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex0[] = {18}; +static const sal_Unicode FormatCode0[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {0}; +static const sal_Unicode FormatType1[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex1[] = {28}; +static const sal_Unicode FormatCode1[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex2[] = {34}; +static const sal_Unicode FormatCode2[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex3[] = {35}; +static const sal_Unicode FormatCode3[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex4[] = {36}; +static const sal_Unicode FormatCode4[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex5[] = {37}; +static const sal_Unicode FormatCode5[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex6[] = {21}; +static const sal_Unicode FormatCode6[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {1}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex7[] = {20}; +static const sal_Unicode FormatCode7[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {1}; +static const sal_Unicode FormatType8[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex8[] = {19}; +static const sal_Unicode FormatCode8[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {0}; +static const sal_Unicode FormatType9[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex9[] = {22}; +static const sal_Unicode FormatCode9[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex10[] = {23}; +static const sal_Unicode FormatCode10[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {0}; +static const sal_Unicode FormatType11[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex11[] = {25}; +static const sal_Unicode FormatCode11[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {0}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex12[] = {27}; +static const sal_Unicode FormatCode12[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {0}; +static const sal_Unicode FormatType13[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex13[] = {29}; +static const sal_Unicode FormatCode13[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex14[] = {30}; +static const sal_Unicode FormatCode14[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex15[] = {24}; +static const sal_Unicode FormatCode15[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {0}; +static const sal_Unicode FormatType16[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex16[] = {26}; +static const sal_Unicode FormatCode16[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex17[] = {31}; +static const sal_Unicode FormatCode17[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex18[] = {32}; +static const sal_Unicode FormatCode18[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {0}; +static const sal_Unicode FormatType19[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {33}; +static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x20, 0x28, 0x45, 0x4e, 0x20, 0x32, 0x38, 0x36, 0x30, 0x31, 0x29, 0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {0}; +static const sal_Unicode FormatType20[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {38}; +static const sal_Unicode FormatCode20[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {39}; +static const sal_Unicode FormatCode21[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {1}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {40}; +static const sal_Unicode FormatCode22[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {41}; +static const sal_Unicode FormatCode23[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {42}; +static const sal_Unicode FormatCode24[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {43}; +static const sal_Unicode FormatCode25[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {44}; +static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {45}; +static const sal_Unicode FormatCode27[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {1}; +static const sal_Unicode FormatType28[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {46}; +static const sal_Unicode FormatCode28[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {47}; +static const sal_Unicode FormatCode29[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {1}; +static const sal_Unicode FormatType30[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex30[] = {0}; +static const sal_Unicode FormatCode30[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {1}; +static const sal_Unicode FormatType31[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex31[] = {1}; +static const sal_Unicode FormatCode31[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex32[] = {2}; +static const sal_Unicode FormatCode32[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex33[] = {3}; +static const sal_Unicode FormatCode33[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex34[] = {4}; +static const sal_Unicode FormatCode34[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x0}; +static const sal_Unicode FormatKey35[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex35[] = {5}; +static const sal_Unicode FormatCode35[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex36[] = {70}; +static const sal_Unicode FormatCode36[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex37[] = {71}; +static const sal_Unicode FormatCode37[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {1}; +static const sal_Unicode FormatType38[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex38[] = {12}; +static const sal_Unicode FormatCode38[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex39[] = {13}; +static const sal_Unicode FormatCode39[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {0}; +static const sal_Unicode FormatType40[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex40[] = {14}; +static const sal_Unicode FormatCode40[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex41[] = {15}; +static const sal_Unicode FormatCode41[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex42[] = {16}; +static const sal_Unicode FormatCode42[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex43[] = {17}; +static const sal_Unicode FormatCode43[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex44[] = {72}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex45[] = {73}; +static const sal_Unicode FormatCode45[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {1}; +static const sal_Unicode FormatType46[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex46[] = {8}; +static const sal_Unicode FormatCode46[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex47[] = {9}; +static const sal_Unicode FormatCode47[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex48[] = {6}; +static const sal_Unicode FormatCode48[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; +static const sal_Unicode FormatKey49[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement49[] = {1}; +static const sal_Unicode FormatType49[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage49[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex49[] = {7}; +static const sal_Unicode FormatCode49[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName49[] = {0x0}; +static const sal_Unicode FormatKey50[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement50[] = {0}; +static const sal_Unicode FormatType50[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage50[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex50[] = {78}; +static const sal_Unicode FormatCode50[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName50[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 51; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, + FormatCode49, + FormatDefaultName49, + FormatKey49, + FormatType49, + FormatUsage49, + Formatindex49, + defaultFormatElement49, + FormatCode50, + FormatDefaultName50, + FormatKey50, + FormatType50, + FormatUsage50, + Formatindex50, + defaultFormatElement50, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0}; +static const sal_Unicode DateAcceptancePattern2[] = {0x44, 0x2d, 0x4d, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 3; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, + DateAcceptancePattern2, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count) +{ + return getAllCalendars_en_US(count); +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x47, 0x42, 0x50, 0x0}; +static const sal_Unicode currencySymbol0[] = {0xa3, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x47, 0x42, 0x50, 0x0}; +static const sal_Unicode currencyName0[] = {0x50, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GB(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_GH.cxx b/vcl/workben/localestub/localedata_en_GH.cxx new file mode 100644 index 000000000..237df2ca8 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_GH.cxx @@ -0,0 +1,1526 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x47, 0x48, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x47, 0x68, 0x61, 0x6e, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GH(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x27, 0x0}; +static const sal_Unicode quotationEnd[] = {0x27, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x22, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x22, 0x0}; +static const sal_Unicode timeAM[] = {0x61, 0x2e, 0x6d, 0x2e, 0x0}; +static const sal_Unicode timePM[] = {0x70, 0x2e, 0x6d, 0x2e, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GH(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x20b5, 0x2d, 0x38, 0x34, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x43, 0x43, 0x43, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {0}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GH(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GH(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +static const sal_Unicode CollatorID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode CollatorRule0[] = {0x0}; +static const sal_Unicode defaultCollator0[] = {1}; + +static const sal_Unicode collationOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Int16 nbOfCollationOptions = 1; + +static const sal_Int16 nbOfCollations = 1; + + +static const sal_Unicode* LCCollatorArray[] = { + CollatorID0, + defaultCollator0, + CollatorRule0, +}; + +static const sal_Unicode* collationOptions[] = {collationOption0, NULL }; +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GH(sal_Int16& count) +{ + count = nbOfCollations; + return (sal_Unicode**)LCCollatorArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GH(sal_Int16& count) +{ + count = nbOfCollationOptions; + return (sal_Unicode**)collationOptions; +} +static const sal_Unicode searchOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Int16 nbOfSearchOptions = 1; + +static const sal_Unicode* searchOptions[] = {searchOption0, NULL }; +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GH(sal_Int16& count) +{ + count = nbOfSearchOptions; + return (sal_Unicode**)searchOptions; +} +static const sal_Unicode IndexID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode IndexModule0[] = {0x0}; +static const sal_Unicode IndexKey0[] = {0x41, 0x2d, 0x5a, 0x0}; +static const sal_Unicode defaultIndex0[] = {1}; +static const sal_Unicode defaultPhonetic0[] = {0}; + +static const sal_Unicode unicodeScript0[] = {0x30, 0x0}; +static const sal_Unicode unicodeScript1[] = {0x31, 0x0}; +static const sal_Unicode followPageWord0[] = {0x70, 0x0}; +static const sal_Unicode followPageWord1[] = {0x70, 0x70, 0x0}; +static const sal_Int16 nbOfIndexs = 1; + + +static const sal_Unicode* IndexArray[] = { + IndexID0, + IndexModule0, + IndexKey0, + defaultIndex0, + defaultPhonetic0, +}; + +static const sal_Int16 nbOfUnicodeScripts = 2; + +static const sal_Unicode* UnicodeScriptArray[] = {unicodeScript0, unicodeScript1, NULL }; + +static const sal_Int16 nbOfPageWords = 2; + +static const sal_Unicode* FollowPageWordArray[] = { + followPageWord0, + followPageWord1, + NULL +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GH(sal_Int16& count) +{ + count = nbOfIndexs; + return (sal_Unicode**)IndexArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GH(sal_Int16& count) +{ + count = nbOfUnicodeScripts; + return (sal_Unicode**)UnicodeScriptArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GH(sal_Int16& count) +{ + count = nbOfPageWords; + return (sal_Unicode**)FollowPageWordArray; +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x6e, 0x6e, 0x6f, 0x20, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GH(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {0}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x47, 0x48, 0x43, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x20b5, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x47, 0x48, 0x43, 0x0}; +static const sal_Unicode currencyName0[] = {0x43, 0x65, 0x64, 0x69, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Unicode defaultCurrency1[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0}; +static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0}; +static const sal_Unicode currencyID1[] = {0x47, 0x48, 0x53, 0x0}; +static const sal_Unicode currencySymbol1[] = {0x47, 0x48, 0x20b5, 0x0}; +static const sal_Unicode bankSymbol1[] = {0x47, 0x48, 0x53, 0x0}; +static const sal_Unicode currencyName1[] = {0x47, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x43, 0x65, 0x64, 0x69, 0x0}; +static const sal_Unicode currencyDecimalPlaces1[] = {2}; + +static const sal_Int16 currencyCount = 2; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, + currencyID1, + currencySymbol1, + bankSymbol1, + currencyName1, + defaultCurrency1, + defaultCurrencyUsedInCompatibleFormatCodes1, + currencyDecimalPlaces1, + defaultCurrencyLegacyOnly1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GH(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GH(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +static const sal_Unicode ReservedWord0[] = {0x54, 0x72, 0x75, 0x65, 0x0}; +static const sal_Unicode ReservedWord1[] = {0x46, 0x61, 0x6c, 0x73, 0x65, 0x0}; +static const sal_Unicode ReservedWord2[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x31, 0x0}; +static const sal_Unicode ReservedWord3[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x32, 0x0}; +static const sal_Unicode ReservedWord4[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x33, 0x0}; +static const sal_Unicode ReservedWord5[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x34, 0x0}; +static const sal_Unicode ReservedWord6[] = {0x41, 0x62, 0x6f, 0x76, 0x65, 0x0}; +static const sal_Unicode ReservedWord7[] = {0x42, 0x65, 0x6c, 0x6f, 0x77, 0x0}; +static const sal_Unicode ReservedWord8[] = {0x51, 0x31, 0x0}; +static const sal_Unicode ReservedWord9[] = {0x51, 0x32, 0x0}; +static const sal_Unicode ReservedWord10[] = {0x51, 0x33, 0x0}; +static const sal_Unicode ReservedWord11[] = {0x51, 0x34, 0x0}; +static const sal_Int16 nbOfReservedWords = 12; + + +static const sal_Unicode* LCReservedWordsArray[] = { + ReservedWord0, + ReservedWord1, + ReservedWord2, + ReservedWord3, + ReservedWord4, + ReservedWord5, + ReservedWord6, + ReservedWord7, + ReservedWord8, + ReservedWord9, + ReservedWord10, + ReservedWord11, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GH(sal_Int16& count) +{ + count = nbOfReservedWords; + return (sal_Unicode**)LCReservedWordsArray; +} +static const sal_Unicode forbiddenBegin[] = {0x0}; +static const sal_Unicode forbiddenEnd[] = {0x0}; +static const sal_Unicode hangingChars[] = {0x0}; + +static const sal_Unicode* LCForbiddenCharactersArray[] = { + forbiddenBegin, + forbiddenEnd, + hangingChars +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GH(sal_Int16& count) +{ + count = 3; + return (sal_Unicode**)LCForbiddenCharactersArray; +} +static const sal_Unicode EditMode[] = {0x0}; +static const sal_Unicode DictionaryMode[] = {0x0}; +static const sal_Unicode WordCountMode[] = {0x0}; +static const sal_Unicode CharacterMode[] = {0x0}; +static const sal_Unicode LineMode[] = {0x0}; + +static const sal_Unicode* LCBreakIteratorRulesArray[] = { + EditMode, + DictionaryMode, + WordCountMode, + CharacterMode, + LineMode +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GH(sal_Int16& count) +{ + count = 5; + return (sal_Unicode**)LCBreakIteratorRulesArray; +} +// ---> ContinuousNumbering +static const sal_Unicode continuousPrefix0[] = {0x0}; +static const sal_Unicode continuousNumType0[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix0[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration0[] = {0x0}; +static const sal_Unicode continuousNatNum0[] = {0x0}; +static const sal_Unicode continuousPrefix1[] = {0x0}; +static const sal_Unicode continuousNumType1[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix1[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration1[] = {0x0}; +static const sal_Unicode continuousNatNum1[] = {0x0}; +static const sal_Unicode continuousPrefix2[] = {0x28, 0x0}; +static const sal_Unicode continuousNumType2[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix2[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration2[] = {0x0}; +static const sal_Unicode continuousNatNum2[] = {0x0}; +static const sal_Unicode continuousPrefix3[] = {0x0}; +static const sal_Unicode continuousNumType3[] = {0x32, 0x0}; +static const sal_Unicode continuousSuffix3[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration3[] = {0x0}; +static const sal_Unicode continuousNatNum3[] = {0x0}; +static const sal_Unicode continuousPrefix4[] = {0x0}; +static const sal_Unicode continuousNumType4[] = {0x30, 0x0}; +static const sal_Unicode continuousSuffix4[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration4[] = {0x0}; +static const sal_Unicode continuousNatNum4[] = {0x0}; +static const sal_Unicode continuousPrefix5[] = {0x0}; +static const sal_Unicode continuousNumType5[] = {0x31, 0x0}; +static const sal_Unicode continuousSuffix5[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration5[] = {0x0}; +static const sal_Unicode continuousNatNum5[] = {0x0}; +static const sal_Unicode continuousPrefix6[] = {0x28, 0x0}; +static const sal_Unicode continuousNumType6[] = {0x31, 0x0}; +static const sal_Unicode continuousSuffix6[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration6[] = {0x0}; +static const sal_Unicode continuousNatNum6[] = {0x0}; +static const sal_Unicode continuousPrefix7[] = {0x0}; +static const sal_Unicode continuousNumType7[] = {0x33, 0x0}; +static const sal_Unicode continuousSuffix7[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration7[] = {0x0}; +static const sal_Unicode continuousNatNum7[] = {0x0}; +static const sal_Int16 continuousNbOfStyles = 8; + +static const sal_Int16 continuousNbOfAttributesPerStyle = 5; + + +static const sal_Unicode* continuousStyle0[] = { + continuousPrefix0, + continuousNumType0, + continuousSuffix0, + continuousTransliteration0, + continuousNatNum0, + 0 +}; + + +static const sal_Unicode* continuousStyle1[] = { + continuousPrefix1, + continuousNumType1, + continuousSuffix1, + continuousTransliteration1, + continuousNatNum1, + 0 +}; + + +static const sal_Unicode* continuousStyle2[] = { + continuousPrefix2, + continuousNumType2, + continuousSuffix2, + continuousTransliteration2, + continuousNatNum2, + 0 +}; + + +static const sal_Unicode* continuousStyle3[] = { + continuousPrefix3, + continuousNumType3, + continuousSuffix3, + continuousTransliteration3, + continuousNatNum3, + 0 +}; + + +static const sal_Unicode* continuousStyle4[] = { + continuousPrefix4, + continuousNumType4, + continuousSuffix4, + continuousTransliteration4, + continuousNatNum4, + 0 +}; + + +static const sal_Unicode* continuousStyle5[] = { + continuousPrefix5, + continuousNumType5, + continuousSuffix5, + continuousTransliteration5, + continuousNatNum5, + 0 +}; + + +static const sal_Unicode* continuousStyle6[] = { + continuousPrefix6, + continuousNumType6, + continuousSuffix6, + continuousTransliteration6, + continuousNatNum6, + 0 +}; + + +static const sal_Unicode* continuousStyle7[] = { + continuousPrefix7, + continuousNumType7, + continuousSuffix7, + continuousTransliteration7, + continuousNatNum7, + 0 +}; + + +static const sal_Unicode** LCContinuousNumberingLevelsArray[] = { + continuousStyle0, + continuousStyle1, + continuousStyle2, + continuousStyle3, + continuousStyle4, + continuousStyle5, + continuousStyle6, + continuousStyle7, + 0 +}; + +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GH( sal_Int16& nStyles, sal_Int16& nAttributes ) +{ + nStyles = continuousNbOfStyles; + nAttributes = continuousNbOfAttributesPerStyle; + return LCContinuousNumberingLevelsArray; +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GH(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_GM.cxx b/vcl/workben/localestub/localedata_en_GM.cxx new file mode 100644 index 000000000..318e82e3f --- /dev/null +++ b/vcl/workben/localestub/localedata_en_GM.cxx @@ -0,0 +1,140 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x47, 0x4d, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GM(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GM(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x44, 0x2d, 0x39, 0x30, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GM(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GM(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GM(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GM(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GM(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GM(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GM(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GM(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x47, 0x4d, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x44, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x47, 0x4d, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x44, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GM(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GM(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GM(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GM(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GM(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GM(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_IE.cxx b/vcl/workben/localestub/localedata_en_IE.cxx new file mode 100644 index 000000000..358890fdd --- /dev/null +++ b/vcl/workben/localestub/localedata_en_IE.cxx @@ -0,0 +1,259 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x49, 0x45, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x49, 0x72, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_IE(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x61, 0x2e, 0x6d, 0x2e, 0x0}; +static const sal_Unicode timePM[] = {0x70, 0x2e, 0x6d, 0x2e, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_IE(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x49, 0x52, 0xa3, 0x2d, 0x31, 0x38, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_IE(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_IE(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_IE(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_IE(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_IE(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_IE(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_IE(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_IE(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {0}; +static const sal_Unicode nbOfMonths[] = {0}; +static const sal_Unicode nbOfGenitiveMonths[] = {0}; +static const sal_Unicode nbOfPartitiveMonths[] = {0}; +static const sal_Unicode nbOfEras[] = {0}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayRef0, + dayRefName0, + monthRef0, + monthRefName0, + genitiveMonthRef0, + genitiveMonthRefName0, + partitiveMonthRef0, + partitiveMonthRefName0, + eraRef0, + eraRefName0, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_IE(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {0}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x45, 0x55, 0x52, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x20ac, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x45, 0x55, 0x52, 0x0}; +static const sal_Unicode currencyName0[] = {0x45, 0x75, 0x72, 0x6f, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Unicode defaultCurrency1[] = {0}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0}; +static const sal_Unicode currencyID1[] = {0x49, 0x45, 0x50, 0x0}; +static const sal_Unicode currencySymbol1[] = {0x49, 0x52, 0xa3, 0x0}; +static const sal_Unicode bankSymbol1[] = {0x49, 0x45, 0x50, 0x0}; +static const sal_Unicode currencyName1[] = {0x49, 0x72, 0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x0}; +static const sal_Unicode currencyDecimalPlaces1[] = {2}; + +static const sal_Unicode defaultCurrency2[] = {0}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes2[] = {0}; +static const sal_Unicode defaultCurrencyLegacyOnly2[] = {0}; +static const sal_Unicode currencyID2[] = {0x47, 0x42, 0x50, 0x0}; +static const sal_Unicode currencySymbol2[] = {0xa3, 0x0}; +static const sal_Unicode bankSymbol2[] = {0x47, 0x42, 0x50, 0x0}; +static const sal_Unicode currencyName2[] = {0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x0}; +static const sal_Unicode currencyDecimalPlaces2[] = {2}; + +static const sal_Int16 currencyCount = 3; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, + currencyID1, + currencySymbol1, + bankSymbol1, + currencyName1, + defaultCurrency1, + defaultCurrencyUsedInCompatibleFormatCodes1, + currencyDecimalPlaces1, + defaultCurrencyLegacyOnly1, + currencyID2, + currencySymbol2, + bankSymbol2, + currencyName2, + defaultCurrency2, + defaultCurrencyUsedInCompatibleFormatCodes2, + currencyDecimalPlaces2, + defaultCurrencyLegacyOnly2, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_IE(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_IE(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_IE(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_IE(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_IE(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_IE(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_IE(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_IN.cxx b/vcl/workben/localestub/localedata_en_IN.cxx new file mode 100644 index 000000000..2fdd21e71 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_IN.cxx @@ -0,0 +1,200 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x49, 0x4e, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x49, 0x6e, 0x64, 0x69, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_IN(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_IN(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x20b9, 0x2d, 0x34, 0x30, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_IN(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_IN(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_IN(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_IN(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_IN(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_IN(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_IN(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_IN(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0}; +static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {0}; +static const sal_Unicode nbOfMonths[] = {0}; +static const sal_Unicode nbOfGenitiveMonths[] = {0}; +static const sal_Unicode nbOfPartitiveMonths[] = {0}; +static const sal_Unicode nbOfEras[] = {0}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayRef0, + dayRefName0, + monthRef0, + monthRefName0, + genitiveMonthRef0, + genitiveMonthRefName0, + partitiveMonthRef0, + partitiveMonthRefName0, + eraRef0, + eraRefName0, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_IN(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x49, 0x4e, 0x52, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x20b9, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x49, 0x4e, 0x52, 0x0}; +static const sal_Unicode currencyName0[] = {0x52, 0x75, 0x70, 0x65, 0x65, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Unicode defaultCurrency1[] = {0}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0}; +static const sal_Unicode defaultCurrencyLegacyOnly1[] = {1}; +static const sal_Unicode currencyID1[] = {0x49, 0x4e, 0x52, 0x0}; +static const sal_Unicode currencySymbol1[] = {0x52, 0x73, 0x2e, 0x0}; +static const sal_Unicode bankSymbol1[] = {0x49, 0x4e, 0x52, 0x0}; +static const sal_Unicode currencyName1[] = {0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x0}; +static const sal_Unicode currencyDecimalPlaces1[] = {2}; + +static const sal_Int16 currencyCount = 2; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, + currencyID1, + currencySymbol1, + bankSymbol1, + currencyName1, + defaultCurrency1, + defaultCurrencyUsedInCompatibleFormatCodes1, + currencyDecimalPlaces1, + defaultCurrencyLegacyOnly1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_IN(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_IN(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_IN(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_IN(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_IN(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_IN(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_IN(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_JM.cxx b/vcl/workben/localestub/localedata_en_JM.cxx new file mode 100644 index 000000000..bcd6245e6 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_JM.cxx @@ -0,0 +1,1263 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x4a, 0x4d, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_JM(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x2c, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_JM(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x0}; +static const sal_Unicode replaceTo0[] = {0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {0}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_JM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_JM(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_JM(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_JM(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_JM(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_JM(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_JM(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_JM(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_JM(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x4a, 0x4d, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x4a, 0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x4a, 0x4d, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_JM(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_JM(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_JM(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_JM(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_JM(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_JM(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_JM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_LK.cxx b/vcl/workben/localestub/localedata_en_LK.cxx new file mode 100644 index 000000000..aa71f3abd --- /dev/null +++ b/vcl/workben/localestub/localedata_en_LK.cxx @@ -0,0 +1,144 @@ +#include <sal/types.h> + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 }; +static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 }; +static const sal_Unicode countryID[] = { 0x4c, 0x4b, 0x0 }; +static const sal_Unicode countryDefaultName[] + = { 0x53, 0x72, 0x69, 0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61, 0x0 }; +static const sal_Unicode Variant[] = { 0x0 }; + +static const sal_Unicode* LCInfoArray[] + = { langID, langDefaultName, countryID, countryDefaultName, Variant }; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_LK(sal_Int16& count) +{ + count = SAL_N_ELEMENTS(LCInfoArray); + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_LK(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] + = { 0x5b, 0x24, 0x52, 0x73, 0x2d, 0x41, 0x34, 0x30, 0x39, 0x5d, 0x0 }; +extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count, + const sal_Unicode*& from, + const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL +getAllFormats0_en_LK(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_LK(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_LK(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_LK(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_LK(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_LK(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_LK(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_LK(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_LK(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = { 1 }; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 }; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 }; +static const sal_Unicode currencyID0[] = { 0x4c, 0x4b, 0x52, 0x0 }; +static const sal_Unicode currencySymbol0[] = { 0x52, 0x73, 0x0 }; +static const sal_Unicode bankSymbol0[] = { 0x4c, 0x4b, 0x52, 0x0 }; +static const sal_Unicode currencyName0[] = { 0x53, 0x72, 0x69, 0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61, + 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x0 }; +static const sal_Unicode currencyDecimalPlaces0[] = { 2 }; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_LK(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_LK(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_LK(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_LK(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_LK(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL +getContinuousNumberingLevels_en_LK(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nLevels, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL +getOutlineNumberingLevels_en_LK(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" diff --git a/vcl/workben/localestub/localedata_en_MW.cxx b/vcl/workben/localestub/localedata_en_MW.cxx new file mode 100644 index 000000000..5f21ab3e9 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_MW.cxx @@ -0,0 +1,140 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x4d, 0x57, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_MW(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_MW(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x4d, 0x4b, 0x2d, 0x38, 0x38, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_MW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_MW(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_MW(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_MW(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_MW(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_MW(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_MW(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_MW(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_MW(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x4d, 0x57, 0x4b, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x4d, 0x4b, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x4d, 0x57, 0x4b, 0x0}; +static const sal_Unicode currencyName0[] = {0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e, 0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_MW(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_MW(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_MW(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_MW(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_MW(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_MW(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_MW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_MY.cxx b/vcl/workben/localestub/localedata_en_MY.cxx new file mode 100644 index 000000000..b24ff2363 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_MY.cxx @@ -0,0 +1,118 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x4d, 0x59, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_MY(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_MY(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x52, 0x4d, 0x2d, 0x34, 0x34, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_MY(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_MY(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_MY(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_MY(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_MY(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_MY(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_MY(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_MY(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_MY(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getAllCurrencies_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_MY(sal_Int16& count) +{ + return getAllCurrencies_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_MY(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_MY(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_MY(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_MY(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_MY(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_MY(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_NA.cxx b/vcl/workben/localestub/localedata_en_NA.cxx new file mode 100644 index 000000000..970c7547a --- /dev/null +++ b/vcl/workben/localestub/localedata_en_NA.cxx @@ -0,0 +1,1280 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x4e, 0x41, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_NA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_NA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x38, 0x30, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {0}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_NA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_NA(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_NA(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_NA(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_NA(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_NA(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_NA(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_NA(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_NA(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x4e, 0x41, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x4e, 0x41, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Unicode defaultCurrency1[] = {0}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0}; +static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0}; +static const sal_Unicode currencyID1[] = {0x5a, 0x41, 0x52, 0x0}; +static const sal_Unicode currencySymbol1[] = {0x52, 0x0}; +static const sal_Unicode bankSymbol1[] = {0x5a, 0x41, 0x52, 0x0}; +static const sal_Unicode currencyName1[] = {0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x0}; +static const sal_Unicode currencyDecimalPlaces1[] = {2}; + +static const sal_Int16 currencyCount = 2; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, + currencyID1, + currencySymbol1, + bankSymbol1, + currencyName1, + defaultCurrency1, + defaultCurrencyUsedInCompatibleFormatCodes1, + currencyDecimalPlaces1, + defaultCurrencyLegacyOnly1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_NA(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_NA(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_NA(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_NA(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_NA(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_NA(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_NA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_NG.cxx b/vcl/workben/localestub/localedata_en_NG.cxx new file mode 100644 index 000000000..5d3514516 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_NG.cxx @@ -0,0 +1,142 @@ +#include <sal/types.h> + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 }; +static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 }; +static const sal_Unicode countryID[] = { 0x4e, 0x47, 0x0 }; +static const sal_Unicode countryDefaultName[] = { 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x0 }; +static const sal_Unicode Variant[] = { 0x0 }; + +static const sal_Unicode* LCInfoArray[] + = { langID, langDefaultName, countryID, countryDefaultName, Variant }; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_NG(sal_Int16& count) +{ + count = SAL_N_ELEMENTS(LCInfoArray); + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_NG(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] + = { 0x5b, 0x24, 0x20a6, 0x2d, 0x41, 0x38, 0x30, 0x39, 0x5d, 0x0 }; +extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count, + const sal_Unicode*& from, + const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL +getAllFormats0_en_NG(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_NG(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_NG(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_NG(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_NG(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_NG(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_NG(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_NG(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_NG(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = { 1 }; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 }; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 }; +static const sal_Unicode currencyID0[] = { 0x4e, 0x47, 0x4e, 0x0 }; +static const sal_Unicode currencySymbol0[] = { 0x20a6, 0x0 }; +static const sal_Unicode bankSymbol0[] = { 0x4e, 0x47, 0x4e, 0x0 }; +static const sal_Unicode currencyName0[] = { 0x4e, 0x61, 0x69, 0x72, 0x61, 0x0 }; +static const sal_Unicode currencyDecimalPlaces0[] = { 2 }; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_NG(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_NG(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_NG(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_NG(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_NG(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL +getContinuousNumberingLevels_en_NG(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nLevels, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL +getOutlineNumberingLevels_en_NG(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" diff --git a/vcl/workben/localestub/localedata_en_NZ.cxx b/vcl/workben/localestub/localedata_en_NZ.cxx new file mode 100644 index 000000000..fc63a44ff --- /dev/null +++ b/vcl/workben/localestub/localedata_en_NZ.cxx @@ -0,0 +1,563 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x4e, 0x5a, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_NZ(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_NZ(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x34, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_AU(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_NZ(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_AU(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_AU(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_NZ(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_AU(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_NZ(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_NZ(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_NZ(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_NZ(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_NZ(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_NZ(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_NZ(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x4e, 0x5a, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x4e, 0x5a, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_NZ(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_NZ(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_NZ(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_NZ(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_NZ(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_NZ(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_NZ(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_PH.cxx b/vcl/workben/localestub/localedata_en_PH.cxx new file mode 100644 index 000000000..07c1b72a2 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_PH.cxx @@ -0,0 +1,140 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x50, 0x48, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_PH(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode ** SAL_CALL getLocaleItem_en_CA(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_PH(sal_Int16& count) +{ + return getLocaleItem_en_CA(count); +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x50, 0x68, 0x70, 0x2d, 0x33, 0x34, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_PH(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_US(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_PH(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_PH(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_PH(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_PH(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_PH(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_PH(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_PH(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +extern sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_PH(sal_Int16& count) +{ + return getAllCalendars_en_US(count); +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x50, 0x48, 0x50, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x50, 0x68, 0x70, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x50, 0x48, 0x50, 0x0}; +static const sal_Unicode currencyName0[] = {0x50, 0x65, 0x73, 0x6f, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_PH(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_PH(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_PH(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_PH(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_PH(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_PH(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_PH(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_TT.cxx b/vcl/workben/localestub/localedata_en_TT.cxx new file mode 100644 index 000000000..0a99e9491 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_TT.cxx @@ -0,0 +1,563 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x54, 0x54, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_TT(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_TT(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x54, 0x54, 0x24, 0x2d, 0x32, 0x43, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_TT(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_US(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_TT(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_TT(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_TT(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_TT(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_TT(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_TT(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_TT(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_TT(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x54, 0x54, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x54, 0x54, 0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x54, 0x54, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_TT(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_TT(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_TT(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_TT(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_TT(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_TT(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_TT(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_US.cxx b/vcl/workben/localestub/localedata_en_US.cxx new file mode 100644 index 000000000..6f09c68ab --- /dev/null +++ b/vcl/workben/localestub/localedata_en_US.cxx @@ -0,0 +1,2609 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x55, 0x53, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_US(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x55, 0x53, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_US(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x34, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {80}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {81}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {0}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex19[] = {82}; +static const sal_Unicode FormatCode19[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {0}; +static const sal_Unicode FormatType20[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex20[] = {83}; +static const sal_Unicode FormatCode20[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {18}; +static const sal_Unicode FormatCode21[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {1}; +static const sal_Unicode FormatType22[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {19}; +static const sal_Unicode FormatCode22[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {1}; +static const sal_Unicode FormatType23[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {20}; +static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {21}; +static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {22}; +static const sal_Unicode FormatCode25[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {23}; +static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {24}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {25}; +static const sal_Unicode FormatCode28[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {26}; +static const sal_Unicode FormatCode29[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {27}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {28}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {29}; +static const sal_Unicode FormatCode32[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {30}; +static const sal_Unicode FormatCode33[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {31}; +static const sal_Unicode FormatCode34[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {32}; +static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {33}; +static const sal_Unicode FormatCode36[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {34}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {35}; +static const sal_Unicode FormatCode38[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {36}; +static const sal_Unicode FormatCode39[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {0}; +static const sal_Unicode FormatType40[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {37}; +static const sal_Unicode FormatCode40[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {0}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {38}; +static const sal_Unicode FormatCode41[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {39}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {40}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {1}; +static const sal_Unicode FormatType44[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {41}; +static const sal_Unicode FormatCode44[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {1}; +static const sal_Unicode FormatType45[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {42}; +static const sal_Unicode FormatCode45[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {43}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {0}; +static const sal_Unicode FormatType47[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {44}; +static const sal_Unicode FormatCode47[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {45}; +static const sal_Unicode FormatCode48[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; +static const sal_Unicode FormatKey49[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement49[] = {1}; +static const sal_Unicode FormatType49[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage49[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex49[] = {46}; +static const sal_Unicode FormatCode49[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName49[] = {0x0}; +static const sal_Unicode FormatKey50[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement50[] = {0}; +static const sal_Unicode FormatType50[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage50[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex50[] = {47}; +static const sal_Unicode FormatCode50[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName50[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 51; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, + FormatCode49, + FormatDefaultName49, + FormatKey49, + FormatType49, + FormatUsage49, + Formatindex49, + defaultFormatElement49, + FormatCode50, + FormatDefaultName50, + FormatKey50, + FormatType50, + FormatUsage50, + Formatindex50, + defaultFormatElement50, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +static const sal_Unicode replaceFrom1[] = {0x0}; +static const sal_Unicode replaceTo1[] = {0x0}; +static const sal_Unicode FormatKey51[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement51[] = {0}; +static const sal_Unicode FormatType51[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage51[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex51[] = {60}; +static const sal_Unicode FormatCode51[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName51[] = {0x0}; +static const sal_Unicode FormatKey52[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement52[] = {0}; +static const sal_Unicode FormatType52[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage52[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex52[] = {61}; +static const sal_Unicode FormatCode52[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName52[] = {0x0}; +static const sal_Unicode FormatKey53[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement53[] = {0}; +static const sal_Unicode FormatType53[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage53[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex53[] = {62}; +static const sal_Unicode FormatCode53[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName53[] = {0x0}; +static const sal_Unicode FormatKey54[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement54[] = {0}; +static const sal_Unicode FormatType54[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage54[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex54[] = {63}; +static const sal_Unicode FormatCode54[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName54[] = {0x0}; +static const sal_Unicode FormatKey55[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement55[] = {0}; +static const sal_Unicode FormatType55[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage55[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex55[] = {64}; +static const sal_Unicode FormatCode55[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName55[] = {0x0}; +static const sal_Unicode FormatKey56[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement56[] = {0}; +static const sal_Unicode FormatType56[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage56[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex56[] = {65}; +static const sal_Unicode FormatCode56[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName56[] = {0x0}; +static const sal_Unicode FormatKey57[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement57[] = {0}; +static const sal_Unicode FormatType57[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage57[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex57[] = {66}; +static const sal_Unicode FormatCode57[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName57[] = {0x0}; +static const sal_Unicode FormatKey58[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement58[] = {0}; +static const sal_Unicode FormatType58[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage58[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex58[] = {67}; +static const sal_Unicode FormatCode58[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName58[] = {0x0}; +static const sal_Unicode FormatKey59[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement59[] = {0}; +static const sal_Unicode FormatType59[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage59[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex59[] = {68}; +static const sal_Unicode FormatCode59[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName59[] = {0x0}; +static const sal_Unicode FormatKey60[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement60[] = {0}; +static const sal_Unicode FormatType60[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage60[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex60[] = {69}; +static const sal_Unicode FormatCode60[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName60[] = {0x0}; + +static const sal_Int16 FormatElementsCount1 = 10; +static const sal_Unicode* FormatElementsArray1[] = { + FormatCode51, + FormatDefaultName51, + FormatKey51, + FormatType51, + FormatUsage51, + Formatindex51, + defaultFormatElement51, + FormatCode52, + FormatDefaultName52, + FormatKey52, + FormatType52, + FormatUsage52, + Formatindex52, + defaultFormatElement52, + FormatCode53, + FormatDefaultName53, + FormatKey53, + FormatType53, + FormatUsage53, + Formatindex53, + defaultFormatElement53, + FormatCode54, + FormatDefaultName54, + FormatKey54, + FormatType54, + FormatUsage54, + Formatindex54, + defaultFormatElement54, + FormatCode55, + FormatDefaultName55, + FormatKey55, + FormatType55, + FormatUsage55, + Formatindex55, + defaultFormatElement55, + FormatCode56, + FormatDefaultName56, + FormatKey56, + FormatType56, + FormatUsage56, + Formatindex56, + defaultFormatElement56, + FormatCode57, + FormatDefaultName57, + FormatKey57, + FormatType57, + FormatUsage57, + Formatindex57, + defaultFormatElement57, + FormatCode58, + FormatDefaultName58, + FormatKey58, + FormatType58, + FormatUsage58, + Formatindex58, + defaultFormatElement58, + FormatCode59, + FormatDefaultName59, + FormatKey59, + FormatType59, + FormatUsage59, + Formatindex59, + defaultFormatElement59, + FormatCode60, + FormatDefaultName60, + FormatKey60, + FormatType60, + FormatUsage60, + Formatindex60, + defaultFormatElement60, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats1_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount1; + from = replaceFrom1; + to = replaceTo1; + return (sal_Unicode**)FormatElementsArray1; +} +static const sal_Unicode CollatorID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode CollatorRule0[] = {0x0}; +static const sal_Unicode defaultCollator0[] = {1}; + +static const sal_Unicode collationOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Int16 nbOfCollationOptions = 1; + +static const sal_Int16 nbOfCollations = 1; + + +static const sal_Unicode* LCCollatorArray[] = { + CollatorID0, + defaultCollator0, + CollatorRule0, +}; + +static const sal_Unicode* collationOptions[] = {collationOption0, NULL }; +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count) +{ + count = nbOfCollations; + return (sal_Unicode**)LCCollatorArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count) +{ + count = nbOfCollationOptions; + return (sal_Unicode**)collationOptions; +} +static const sal_Unicode searchOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Int16 nbOfSearchOptions = 1; + +static const sal_Unicode* searchOptions[] = {searchOption0, NULL }; +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count) +{ + count = nbOfSearchOptions; + return (sal_Unicode**)searchOptions; +} +static const sal_Unicode IndexID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0}; +static const sal_Unicode IndexModule0[] = {0x0}; +static const sal_Unicode IndexKey0[] = {0x41, 0x2d, 0x5a, 0x0}; +static const sal_Unicode defaultIndex0[] = {1}; +static const sal_Unicode defaultPhonetic0[] = {0}; + +static const sal_Unicode unicodeScript0[] = {0x30, 0x0}; +static const sal_Unicode unicodeScript1[] = {0x31, 0x0}; +static const sal_Unicode followPageWord0[] = {0x70, 0x2e, 0x0}; +static const sal_Unicode followPageWord1[] = {0x70, 0x70, 0x2e, 0x0}; +static const sal_Int16 nbOfIndexs = 1; + + +static const sal_Unicode* IndexArray[] = { + IndexID0, + IndexModule0, + IndexKey0, + defaultIndex0, + defaultPhonetic0, +}; + +static const sal_Int16 nbOfUnicodeScripts = 2; + +static const sal_Unicode* UnicodeScriptArray[] = {unicodeScript0, unicodeScript1, NULL }; + +static const sal_Int16 nbOfPageWords = 2; + +static const sal_Unicode* FollowPageWordArray[] = { + followPageWord0, + followPageWord1, + NULL +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count) +{ + count = nbOfIndexs; + return (sal_Unicode**)IndexArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count) +{ + count = nbOfUnicodeScripts; + return (sal_Unicode**)UnicodeScriptArray; +} +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count) +{ + count = nbOfPageWords; + return (sal_Unicode**)FollowPageWordArray; +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Unicode calendarID1[] = {0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode defaultCalendar1[] = {0}; +static const sal_Unicode dayID10[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName10[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName10[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName10[] = {0x53, 0x0}; +static const sal_Unicode dayID11[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName11[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName11[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName11[] = {0x4d, 0x0}; +static const sal_Unicode dayID12[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName12[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName12[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName12[] = {0x54, 0x0}; +static const sal_Unicode dayID13[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName13[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName13[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName13[] = {0x57, 0x0}; +static const sal_Unicode dayID14[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName14[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName14[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName14[] = {0x54, 0x0}; +static const sal_Unicode dayID15[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName15[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName15[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName15[] = {0x46, 0x0}; +static const sal_Unicode dayID16[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName16[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName16[] = {0x53, 0x68, 0x61, 0x62, 0x62, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultNarrowName16[] = {0x53, 0x0}; +static const sal_Unicode monthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultNarrowName10[] = {0x4e, 0x0}; +static const sal_Unicode monthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName11[] = {0x49, 0x0}; +static const sal_Unicode monthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultNarrowName12[] = {0x53, 0x0}; +static const sal_Unicode monthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode monthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode monthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode monthDefaultNarrowName13[] = {0x54, 0x0}; +static const sal_Unicode monthID14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode monthDefaultNarrowName14[] = {0x41, 0x0}; +static const sal_Unicode monthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName15[] = {0x45, 0x0}; +static const sal_Unicode monthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode monthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode monthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode monthDefaultNarrowName16[] = {0x54, 0x0}; +static const sal_Unicode monthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultNarrowName17[] = {0x48, 0x0}; +static const sal_Unicode monthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode monthDefaultNarrowName18[] = {0x4b, 0x0}; +static const sal_Unicode monthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName19[] = {0x54, 0x0}; +static const sal_Unicode monthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName110[] = {0x53, 0x0}; +static const sal_Unicode monthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName111[] = {0x41, 0x0}; +static const sal_Unicode monthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode monthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode monthDefaultNarrowName112[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName10[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName11[] = {0x49, 0x0}; +static const sal_Unicode genitiveMonthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName12[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName13[] = {0x54, 0x0}; +static const sal_Unicode genitiveMonthID14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName14[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName15[] = {0x45, 0x0}; +static const sal_Unicode genitiveMonthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName16[] = {0x54, 0x0}; +static const sal_Unicode genitiveMonthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName17[] = {0x48, 0x0}; +static const sal_Unicode genitiveMonthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName18[] = {0x4b, 0x0}; +static const sal_Unicode genitiveMonthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName19[] = {0x54, 0x0}; +static const sal_Unicode genitiveMonthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName110[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName111[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName112[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName10[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName11[] = {0x49, 0x0}; +static const sal_Unicode partitiveMonthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName12[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName13[] = {0x54, 0x0}; +static const sal_Unicode partitiveMonthID14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName14[] = {0x41, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName14[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName15[] = {0x45, 0x0}; +static const sal_Unicode partitiveMonthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName16[] = {0x54, 0x0}; +static const sal_Unicode partitiveMonthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName17[] = {0x48, 0x0}; +static const sal_Unicode partitiveMonthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName18[] = {0x4b, 0x0}; +static const sal_Unicode partitiveMonthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName19[] = {0x54, 0x0}; +static const sal_Unicode partitiveMonthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName110[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName111[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName112[] = {0x41, 0x0}; +static const sal_Unicode eraID10[] = {0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName10[] = {0x42, 0x43, 0x45, 0x0}; +static const sal_Unicode eraDefaultFullName10[] = {0x42, 0x43, 0x45, 0x0}; +static const sal_Unicode eraID11[] = {0x61, 0x66, 0x74, 0x65, 0x72, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName11[] = {0x43, 0x45, 0x0}; +static const sal_Unicode eraDefaultFullName11[] = {0x43, 0x45, 0x0}; +static const sal_Unicode startDayOfWeek1[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek1[] = {1}; +static const sal_Int16 calendarsCount = 2; + +static const sal_Unicode nbOfDays[] = {7, 7}; +static const sal_Unicode nbOfMonths[] = {12, 13}; +static const sal_Unicode nbOfGenitiveMonths[] = {12, 13}; +static const sal_Unicode nbOfPartitiveMonths[] = {12, 13}; +static const sal_Unicode nbOfEras[] = {2, 2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, + calendarID1, + defaultCalendar1, + dayID10, + dayDefaultAbbrvName10, + dayDefaultFullName10, + dayDefaultNarrowName10, + dayID11, + dayDefaultAbbrvName11, + dayDefaultFullName11, + dayDefaultNarrowName11, + dayID12, + dayDefaultAbbrvName12, + dayDefaultFullName12, + dayDefaultNarrowName12, + dayID13, + dayDefaultAbbrvName13, + dayDefaultFullName13, + dayDefaultNarrowName13, + dayID14, + dayDefaultAbbrvName14, + dayDefaultFullName14, + dayDefaultNarrowName14, + dayID15, + dayDefaultAbbrvName15, + dayDefaultFullName15, + dayDefaultNarrowName15, + dayID16, + dayDefaultAbbrvName16, + dayDefaultFullName16, + dayDefaultNarrowName16, + monthID10, + monthDefaultAbbrvName10, + monthDefaultFullName10, + monthDefaultNarrowName10, + monthID11, + monthDefaultAbbrvName11, + monthDefaultFullName11, + monthDefaultNarrowName11, + monthID12, + monthDefaultAbbrvName12, + monthDefaultFullName12, + monthDefaultNarrowName12, + monthID13, + monthDefaultAbbrvName13, + monthDefaultFullName13, + monthDefaultNarrowName13, + monthID14, + monthDefaultAbbrvName14, + monthDefaultFullName14, + monthDefaultNarrowName14, + monthID15, + monthDefaultAbbrvName15, + monthDefaultFullName15, + monthDefaultNarrowName15, + monthID16, + monthDefaultAbbrvName16, + monthDefaultFullName16, + monthDefaultNarrowName16, + monthID17, + monthDefaultAbbrvName17, + monthDefaultFullName17, + monthDefaultNarrowName17, + monthID18, + monthDefaultAbbrvName18, + monthDefaultFullName18, + monthDefaultNarrowName18, + monthID19, + monthDefaultAbbrvName19, + monthDefaultFullName19, + monthDefaultNarrowName19, + monthID110, + monthDefaultAbbrvName110, + monthDefaultFullName110, + monthDefaultNarrowName110, + monthID111, + monthDefaultAbbrvName111, + monthDefaultFullName111, + monthDefaultNarrowName111, + monthID112, + monthDefaultAbbrvName112, + monthDefaultFullName112, + monthDefaultNarrowName112, + genitiveMonthID10, + genitiveMonthDefaultAbbrvName10, + genitiveMonthDefaultFullName10, + genitiveMonthDefaultNarrowName10, + genitiveMonthID11, + genitiveMonthDefaultAbbrvName11, + genitiveMonthDefaultFullName11, + genitiveMonthDefaultNarrowName11, + genitiveMonthID12, + genitiveMonthDefaultAbbrvName12, + genitiveMonthDefaultFullName12, + genitiveMonthDefaultNarrowName12, + genitiveMonthID13, + genitiveMonthDefaultAbbrvName13, + genitiveMonthDefaultFullName13, + genitiveMonthDefaultNarrowName13, + genitiveMonthID14, + genitiveMonthDefaultAbbrvName14, + genitiveMonthDefaultFullName14, + genitiveMonthDefaultNarrowName14, + genitiveMonthID15, + genitiveMonthDefaultAbbrvName15, + genitiveMonthDefaultFullName15, + genitiveMonthDefaultNarrowName15, + genitiveMonthID16, + genitiveMonthDefaultAbbrvName16, + genitiveMonthDefaultFullName16, + genitiveMonthDefaultNarrowName16, + genitiveMonthID17, + genitiveMonthDefaultAbbrvName17, + genitiveMonthDefaultFullName17, + genitiveMonthDefaultNarrowName17, + genitiveMonthID18, + genitiveMonthDefaultAbbrvName18, + genitiveMonthDefaultFullName18, + genitiveMonthDefaultNarrowName18, + genitiveMonthID19, + genitiveMonthDefaultAbbrvName19, + genitiveMonthDefaultFullName19, + genitiveMonthDefaultNarrowName19, + genitiveMonthID110, + genitiveMonthDefaultAbbrvName110, + genitiveMonthDefaultFullName110, + genitiveMonthDefaultNarrowName110, + genitiveMonthID111, + genitiveMonthDefaultAbbrvName111, + genitiveMonthDefaultFullName111, + genitiveMonthDefaultNarrowName111, + genitiveMonthID112, + genitiveMonthDefaultAbbrvName112, + genitiveMonthDefaultFullName112, + genitiveMonthDefaultNarrowName112, + partitiveMonthID10, + partitiveMonthDefaultAbbrvName10, + partitiveMonthDefaultFullName10, + partitiveMonthDefaultNarrowName10, + partitiveMonthID11, + partitiveMonthDefaultAbbrvName11, + partitiveMonthDefaultFullName11, + partitiveMonthDefaultNarrowName11, + partitiveMonthID12, + partitiveMonthDefaultAbbrvName12, + partitiveMonthDefaultFullName12, + partitiveMonthDefaultNarrowName12, + partitiveMonthID13, + partitiveMonthDefaultAbbrvName13, + partitiveMonthDefaultFullName13, + partitiveMonthDefaultNarrowName13, + partitiveMonthID14, + partitiveMonthDefaultAbbrvName14, + partitiveMonthDefaultFullName14, + partitiveMonthDefaultNarrowName14, + partitiveMonthID15, + partitiveMonthDefaultAbbrvName15, + partitiveMonthDefaultFullName15, + partitiveMonthDefaultNarrowName15, + partitiveMonthID16, + partitiveMonthDefaultAbbrvName16, + partitiveMonthDefaultFullName16, + partitiveMonthDefaultNarrowName16, + partitiveMonthID17, + partitiveMonthDefaultAbbrvName17, + partitiveMonthDefaultFullName17, + partitiveMonthDefaultNarrowName17, + partitiveMonthID18, + partitiveMonthDefaultAbbrvName18, + partitiveMonthDefaultFullName18, + partitiveMonthDefaultNarrowName18, + partitiveMonthID19, + partitiveMonthDefaultAbbrvName19, + partitiveMonthDefaultFullName19, + partitiveMonthDefaultNarrowName19, + partitiveMonthID110, + partitiveMonthDefaultAbbrvName110, + partitiveMonthDefaultFullName110, + partitiveMonthDefaultNarrowName110, + partitiveMonthID111, + partitiveMonthDefaultAbbrvName111, + partitiveMonthDefaultFullName111, + partitiveMonthDefaultNarrowName111, + partitiveMonthID112, + partitiveMonthDefaultAbbrvName112, + partitiveMonthDefaultFullName112, + partitiveMonthDefaultNarrowName112, + eraID10, + eraDefaultAbbrvName10, + eraDefaultFullName10, + eraID11, + eraDefaultAbbrvName11, + eraDefaultFullName11, + startDayOfWeek1, + minimalDaysInFirstWeek1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x55, 0x53, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x55, 0x53, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x55, 0x53, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_US(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +static const sal_Unicode Transliteration0[] = {0x53, 0x45, 0x4e, 0x54, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Unicode Transliteration1[] = {0x4c, 0x4f, 0x57, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Unicode Transliteration2[] = {0x55, 0x50, 0x50, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Unicode Transliteration3[] = {0x54, 0x49, 0x54, 0x4c, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Unicode Transliteration4[] = {0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Unicode Transliteration5[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0}; +static const sal_Int16 nbOfTransliterations = 6; + + +static const sal_Unicode* LCTransliterationsArray[] = { + Transliteration0, + Transliteration1, + Transliteration2, + Transliteration3, + Transliteration4, + Transliteration5, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count) +{ + count = nbOfTransliterations; + return (sal_Unicode**)LCTransliterationsArray; +} +static const sal_Unicode ReservedWord0[] = {0x74, 0x72, 0x75, 0x65, 0x0}; +static const sal_Unicode ReservedWord1[] = {0x66, 0x61, 0x6c, 0x73, 0x65, 0x0}; +static const sal_Unicode ReservedWord2[] = {0x31, 0x73, 0x74, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0}; +static const sal_Unicode ReservedWord3[] = {0x32, 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0}; +static const sal_Unicode ReservedWord4[] = {0x33, 0x72, 0x64, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0}; +static const sal_Unicode ReservedWord5[] = {0x34, 0x74, 0x68, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0}; +static const sal_Unicode ReservedWord6[] = {0x61, 0x62, 0x6f, 0x76, 0x65, 0x0}; +static const sal_Unicode ReservedWord7[] = {0x62, 0x65, 0x6c, 0x6f, 0x77, 0x0}; +static const sal_Unicode ReservedWord8[] = {0x51, 0x31, 0x0}; +static const sal_Unicode ReservedWord9[] = {0x51, 0x32, 0x0}; +static const sal_Unicode ReservedWord10[] = {0x51, 0x33, 0x0}; +static const sal_Unicode ReservedWord11[] = {0x51, 0x34, 0x0}; +static const sal_Int16 nbOfReservedWords = 12; + + +static const sal_Unicode* LCReservedWordsArray[] = { + ReservedWord0, + ReservedWord1, + ReservedWord2, + ReservedWord3, + ReservedWord4, + ReservedWord5, + ReservedWord6, + ReservedWord7, + ReservedWord8, + ReservedWord9, + ReservedWord10, + ReservedWord11, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count) +{ + count = nbOfReservedWords; + return (sal_Unicode**)LCReservedWordsArray; +} +static const sal_Unicode forbiddenBegin[] = {0x0}; +static const sal_Unicode forbiddenEnd[] = {0x0}; +static const sal_Unicode hangingChars[] = {0x0}; + +static const sal_Unicode* LCForbiddenCharactersArray[] = { + forbiddenBegin, + forbiddenEnd, + hangingChars +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count) +{ + count = 3; + return (sal_Unicode**)LCForbiddenCharactersArray; +} +static const sal_Unicode EditMode[] = {0x0}; +static const sal_Unicode DictionaryMode[] = {0x0}; +static const sal_Unicode WordCountMode[] = {0x0}; +static const sal_Unicode CharacterMode[] = {0x0}; +static const sal_Unicode LineMode[] = {0x0}; + +static const sal_Unicode* LCBreakIteratorRulesArray[] = { + EditMode, + DictionaryMode, + WordCountMode, + CharacterMode, + LineMode +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count) +{ + count = 5; + return (sal_Unicode**)LCBreakIteratorRulesArray; +} +// ---> ContinuousNumbering +static const sal_Unicode continuousPrefix0[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType0[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix0[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration0[] = {0x0}; +static const sal_Unicode continuousNatNum0[] = {0x0}; +static const sal_Unicode continuousPrefix1[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType1[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix1[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration1[] = {0x0}; +static const sal_Unicode continuousNatNum1[] = {0x0}; +static const sal_Unicode continuousPrefix2[] = {0x28, 0x0}; +static const sal_Unicode continuousNumType2[] = {0x34, 0x0}; +static const sal_Unicode continuousSuffix2[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration2[] = {0x0}; +static const sal_Unicode continuousNatNum2[] = {0x0}; +static const sal_Unicode continuousPrefix3[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType3[] = {0x32, 0x0}; +static const sal_Unicode continuousSuffix3[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration3[] = {0x0}; +static const sal_Unicode continuousNatNum3[] = {0x0}; +static const sal_Unicode continuousPrefix4[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType4[] = {0x30, 0x0}; +static const sal_Unicode continuousSuffix4[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration4[] = {0x0}; +static const sal_Unicode continuousNatNum4[] = {0x0}; +static const sal_Unicode continuousPrefix5[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType5[] = {0x31, 0x0}; +static const sal_Unicode continuousSuffix5[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration5[] = {0x0}; +static const sal_Unicode continuousNatNum5[] = {0x0}; +static const sal_Unicode continuousPrefix6[] = {0x28, 0x0}; +static const sal_Unicode continuousNumType6[] = {0x31, 0x0}; +static const sal_Unicode continuousSuffix6[] = {0x29, 0x0}; +static const sal_Unicode continuousTransliteration6[] = {0x0}; +static const sal_Unicode continuousNatNum6[] = {0x0}; +static const sal_Unicode continuousPrefix7[] = {0x20, 0x0}; +static const sal_Unicode continuousNumType7[] = {0x33, 0x0}; +static const sal_Unicode continuousSuffix7[] = {0x2e, 0x0}; +static const sal_Unicode continuousTransliteration7[] = {0x0}; +static const sal_Unicode continuousNatNum7[] = {0x0}; +static const sal_Int16 continuousNbOfStyles = 8; + +static const sal_Int16 continuousNbOfAttributesPerStyle = 5; + + +static const sal_Unicode* continuousStyle0[] = { + continuousPrefix0, + continuousNumType0, + continuousSuffix0, + continuousTransliteration0, + continuousNatNum0, + 0 +}; + + +static const sal_Unicode* continuousStyle1[] = { + continuousPrefix1, + continuousNumType1, + continuousSuffix1, + continuousTransliteration1, + continuousNatNum1, + 0 +}; + + +static const sal_Unicode* continuousStyle2[] = { + continuousPrefix2, + continuousNumType2, + continuousSuffix2, + continuousTransliteration2, + continuousNatNum2, + 0 +}; + + +static const sal_Unicode* continuousStyle3[] = { + continuousPrefix3, + continuousNumType3, + continuousSuffix3, + continuousTransliteration3, + continuousNatNum3, + 0 +}; + + +static const sal_Unicode* continuousStyle4[] = { + continuousPrefix4, + continuousNumType4, + continuousSuffix4, + continuousTransliteration4, + continuousNatNum4, + 0 +}; + + +static const sal_Unicode* continuousStyle5[] = { + continuousPrefix5, + continuousNumType5, + continuousSuffix5, + continuousTransliteration5, + continuousNatNum5, + 0 +}; + + +static const sal_Unicode* continuousStyle6[] = { + continuousPrefix6, + continuousNumType6, + continuousSuffix6, + continuousTransliteration6, + continuousNatNum6, + 0 +}; + + +static const sal_Unicode* continuousStyle7[] = { + continuousPrefix7, + continuousNumType7, + continuousSuffix7, + continuousTransliteration7, + continuousNatNum7, + 0 +}; + + +static const sal_Unicode** LCContinuousNumberingLevelsArray[] = { + continuousStyle0, + continuousStyle1, + continuousStyle2, + continuousStyle3, + continuousStyle4, + continuousStyle5, + continuousStyle6, + continuousStyle7, + 0 +}; + +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US( sal_Int16& nStyles, sal_Int16& nAttributes ) +{ + nStyles = continuousNbOfStyles; + nAttributes = continuousNbOfAttributesPerStyle; + return LCContinuousNumberingLevelsArray; +} +// ---> OutlineNumbering +static const sal_Unicode outlinePrefix00[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType00[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix00[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar00[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName00[] = {0x0}; +static const sal_Unicode outlineParentNumbering00[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin00[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance00[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset00[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration00[] = {0x0}; +static const sal_Unicode outlineNatNum00[] = {0x0}; +static const sal_Unicode outlinePrefix01[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType01[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix01[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar01[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName01[] = {0x0}; +static const sal_Unicode outlineParentNumbering01[] = {0x31, 0x0}; +static const sal_Unicode outlineLeftMargin01[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance01[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset01[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration01[] = {0x0}; +static const sal_Unicode outlineNatNum01[] = {0x0}; +static const sal_Unicode outlinePrefix02[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType02[] = {0x31, 0x0}; +static const sal_Unicode outlineSuffix02[] = {0x29, 0x0}; +static const sal_Unicode outlineBulletChar02[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName02[] = {0x0}; +static const sal_Unicode outlineParentNumbering02[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin02[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance02[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset02[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration02[] = {0x0}; +static const sal_Unicode outlineNatNum02[] = {0x0}; +static const sal_Unicode outlinePrefix03[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType03[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix03[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar03[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName03[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering03[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin03[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance03[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset03[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration03[] = {0x0}; +static const sal_Unicode outlineNatNum03[] = {0x0}; +static const sal_Unicode outlinePrefix04[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType04[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix04[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar04[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName04[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering04[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin04[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance04[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset04[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration04[] = {0x0}; +static const sal_Unicode outlineNatNum04[] = {0x0}; +static const sal_Unicode outlinePrefix10[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType10[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix10[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar10[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName10[] = {0x0}; +static const sal_Unicode outlineParentNumbering10[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin10[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance10[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset10[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration10[] = {0x0}; +static const sal_Unicode outlineNatNum10[] = {0x0}; +static const sal_Unicode outlinePrefix11[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType11[] = {0x31, 0x0}; +static const sal_Unicode outlineSuffix11[] = {0x29, 0x0}; +static const sal_Unicode outlineBulletChar11[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName11[] = {0x0}; +static const sal_Unicode outlineParentNumbering11[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin11[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance11[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset11[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration11[] = {0x0}; +static const sal_Unicode outlineNatNum11[] = {0x0}; +static const sal_Unicode outlinePrefix12[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType12[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix12[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar12[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName12[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering12[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin12[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance12[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset12[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration12[] = {0x0}; +static const sal_Unicode outlineNatNum12[] = {0x0}; +static const sal_Unicode outlinePrefix13[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType13[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix13[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar13[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName13[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering13[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin13[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance13[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset13[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration13[] = {0x0}; +static const sal_Unicode outlineNatNum13[] = {0x0}; +static const sal_Unicode outlinePrefix14[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType14[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix14[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar14[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName14[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering14[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin14[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance14[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset14[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration14[] = {0x0}; +static const sal_Unicode outlineNatNum14[] = {0x0}; +static const sal_Unicode outlinePrefix20[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType20[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix20[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar20[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName20[] = {0x0}; +static const sal_Unicode outlineParentNumbering20[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin20[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance20[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset20[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration20[] = {0x0}; +static const sal_Unicode outlineNatNum20[] = {0x0}; +static const sal_Unicode outlinePrefix21[] = {0x28, 0x0}; +static const sal_Unicode outlineNumType21[] = {0x31, 0x0}; +static const sal_Unicode outlineSuffix21[] = {0x29, 0x0}; +static const sal_Unicode outlineBulletChar21[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName21[] = {0x0}; +static const sal_Unicode outlineParentNumbering21[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin21[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance21[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset21[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration21[] = {0x0}; +static const sal_Unicode outlineNatNum21[] = {0x0}; +static const sal_Unicode outlinePrefix22[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType22[] = {0x33, 0x0}; +static const sal_Unicode outlineSuffix22[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar22[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName22[] = {0x0}; +static const sal_Unicode outlineParentNumbering22[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin22[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance22[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset22[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration22[] = {0x0}; +static const sal_Unicode outlineNatNum22[] = {0x0}; +static const sal_Unicode outlinePrefix23[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType23[] = {0x30, 0x0}; +static const sal_Unicode outlineSuffix23[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar23[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName23[] = {0x0}; +static const sal_Unicode outlineParentNumbering23[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin23[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance23[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset23[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration23[] = {0x0}; +static const sal_Unicode outlineNatNum23[] = {0x0}; +static const sal_Unicode outlinePrefix24[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType24[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix24[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar24[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName24[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering24[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin24[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance24[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset24[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration24[] = {0x0}; +static const sal_Unicode outlineNatNum24[] = {0x0}; +static const sal_Unicode outlinePrefix30[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType30[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix30[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar30[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName30[] = {0x0}; +static const sal_Unicode outlineParentNumbering30[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin30[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance30[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset30[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration30[] = {0x0}; +static const sal_Unicode outlineNatNum30[] = {0x0}; +static const sal_Unicode outlinePrefix31[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType31[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix31[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar31[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName31[] = {0x0}; +static const sal_Unicode outlineParentNumbering31[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin31[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance31[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset31[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration31[] = {0x0}; +static const sal_Unicode outlineNatNum31[] = {0x0}; +static const sal_Unicode outlinePrefix32[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType32[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix32[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar32[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName32[] = {0x0}; +static const sal_Unicode outlineParentNumbering32[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin32[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance32[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset32[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration32[] = {0x0}; +static const sal_Unicode outlineNatNum32[] = {0x0}; +static const sal_Unicode outlinePrefix33[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType33[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix33[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar33[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName33[] = {0x0}; +static const sal_Unicode outlineParentNumbering33[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin33[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance33[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset33[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration33[] = {0x0}; +static const sal_Unicode outlineNatNum33[] = {0x0}; +static const sal_Unicode outlinePrefix34[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType34[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix34[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar34[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName34[] = {0x0}; +static const sal_Unicode outlineParentNumbering34[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin34[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance34[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset34[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration34[] = {0x0}; +static const sal_Unicode outlineNatNum34[] = {0x0}; +static const sal_Unicode outlinePrefix40[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType40[] = {0x32, 0x0}; +static const sal_Unicode outlineSuffix40[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar40[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName40[] = {0x0}; +static const sal_Unicode outlineParentNumbering40[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin40[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance40[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset40[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration40[] = {0x0}; +static const sal_Unicode outlineNatNum40[] = {0x0}; +static const sal_Unicode outlinePrefix41[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType41[] = {0x30, 0x0}; +static const sal_Unicode outlineSuffix41[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar41[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName41[] = {0x0}; +static const sal_Unicode outlineParentNumbering41[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin41[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance41[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset41[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration41[] = {0x0}; +static const sal_Unicode outlineNatNum41[] = {0x0}; +static const sal_Unicode outlinePrefix42[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType42[] = {0x33, 0x0}; +static const sal_Unicode outlineSuffix42[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar42[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName42[] = {0x0}; +static const sal_Unicode outlineParentNumbering42[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin42[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance42[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset42[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration42[] = {0x0}; +static const sal_Unicode outlineNatNum42[] = {0x0}; +static const sal_Unicode outlinePrefix43[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType43[] = {0x31, 0x0}; +static const sal_Unicode outlineSuffix43[] = {0x29, 0x0}; +static const sal_Unicode outlineBulletChar43[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName43[] = {0x0}; +static const sal_Unicode outlineParentNumbering43[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin43[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance43[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset43[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration43[] = {0x0}; +static const sal_Unicode outlineNatNum43[] = {0x0}; +static const sal_Unicode outlinePrefix44[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType44[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix44[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar44[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName44[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering44[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin44[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance44[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset44[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration44[] = {0x0}; +static const sal_Unicode outlineNatNum44[] = {0x0}; +static const sal_Unicode outlinePrefix50[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType50[] = {0x30, 0x0}; +static const sal_Unicode outlineSuffix50[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar50[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName50[] = {0x0}; +static const sal_Unicode outlineParentNumbering50[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin50[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance50[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset50[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration50[] = {0x0}; +static const sal_Unicode outlineNatNum50[] = {0x0}; +static const sal_Unicode outlinePrefix51[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType51[] = {0x32, 0x0}; +static const sal_Unicode outlineSuffix51[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar51[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName51[] = {0x0}; +static const sal_Unicode outlineParentNumbering51[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin51[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance51[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset51[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration51[] = {0x0}; +static const sal_Unicode outlineNatNum51[] = {0x0}; +static const sal_Unicode outlinePrefix52[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType52[] = {0x31, 0x0}; +static const sal_Unicode outlineSuffix52[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar52[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName52[] = {0x0}; +static const sal_Unicode outlineParentNumbering52[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin52[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance52[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset52[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration52[] = {0x0}; +static const sal_Unicode outlineNatNum52[] = {0x0}; +static const sal_Unicode outlinePrefix53[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType53[] = {0x33, 0x0}; +static const sal_Unicode outlineSuffix53[] = {0x2e, 0x0}; +static const sal_Unicode outlineBulletChar53[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName53[] = {0x0}; +static const sal_Unicode outlineParentNumbering53[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin53[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance53[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset53[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration53[] = {0x0}; +static const sal_Unicode outlineNatNum53[] = {0x0}; +static const sal_Unicode outlinePrefix54[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType54[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix54[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar54[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName54[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering54[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin54[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance54[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset54[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration54[] = {0x0}; +static const sal_Unicode outlineNatNum54[] = {0x0}; +static const sal_Unicode outlinePrefix60[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType60[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix60[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar60[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName60[] = {0x0}; +static const sal_Unicode outlineParentNumbering60[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin60[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance60[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset60[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration60[] = {0x0}; +static const sal_Unicode outlineNatNum60[] = {0x0}; +static const sal_Unicode outlinePrefix61[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType61[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix61[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar61[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName61[] = {0x0}; +static const sal_Unicode outlineParentNumbering61[] = {0x31, 0x0}; +static const sal_Unicode outlineLeftMargin61[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance61[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset61[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration61[] = {0x0}; +static const sal_Unicode outlineNatNum61[] = {0x0}; +static const sal_Unicode outlinePrefix62[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType62[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix62[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar62[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName62[] = {0x0}; +static const sal_Unicode outlineParentNumbering62[] = {0x32, 0x0}; +static const sal_Unicode outlineLeftMargin62[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance62[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset62[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration62[] = {0x0}; +static const sal_Unicode outlineNatNum62[] = {0x0}; +static const sal_Unicode outlinePrefix63[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType63[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix63[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar63[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName63[] = {0x0}; +static const sal_Unicode outlineParentNumbering63[] = {0x33, 0x0}; +static const sal_Unicode outlineLeftMargin63[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance63[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset63[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration63[] = {0x0}; +static const sal_Unicode outlineNatNum63[] = {0x0}; +static const sal_Unicode outlinePrefix64[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType64[] = {0x34, 0x0}; +static const sal_Unicode outlineSuffix64[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar64[] = {0x30, 0x30, 0x32, 0x30, 0x0}; +static const sal_Unicode outlineBulletFontName64[] = {0x0}; +static const sal_Unicode outlineParentNumbering64[] = {0x34, 0x0}; +static const sal_Unicode outlineLeftMargin64[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance64[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset64[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration64[] = {0x0}; +static const sal_Unicode outlineNatNum64[] = {0x0}; +static const sal_Unicode outlinePrefix70[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType70[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix70[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar70[] = {0x32, 0x37, 0x41, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName70[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering70[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin70[] = {0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance70[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset70[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration70[] = {0x0}; +static const sal_Unicode outlineNatNum70[] = {0x0}; +static const sal_Unicode outlinePrefix71[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType71[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix71[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar71[] = {0x45, 0x30, 0x30, 0x36, 0x0}; +static const sal_Unicode outlineBulletFontName71[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering71[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin71[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance71[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset71[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration71[] = {0x0}; +static const sal_Unicode outlineNatNum71[] = {0x0}; +static const sal_Unicode outlinePrefix72[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType72[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix72[] = {0x29, 0x0}; +static const sal_Unicode outlineBulletChar72[] = {0x45, 0x30, 0x30, 0x34, 0x0}; +static const sal_Unicode outlineBulletFontName72[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering72[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin72[] = {0x31, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance72[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset72[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration72[] = {0x0}; +static const sal_Unicode outlineNatNum72[] = {0x0}; +static const sal_Unicode outlinePrefix73[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType73[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix73[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar73[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName73[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering73[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin73[] = {0x31, 0x35, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance73[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset73[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration73[] = {0x0}; +static const sal_Unicode outlineNatNum73[] = {0x0}; +static const sal_Unicode outlinePrefix74[] = {0x20, 0x0}; +static const sal_Unicode outlineNumType74[] = {0x36, 0x0}; +static const sal_Unicode outlineSuffix74[] = {0x20, 0x0}; +static const sal_Unicode outlineBulletChar74[] = {0x32, 0x30, 0x32, 0x32, 0x0}; +static const sal_Unicode outlineBulletFontName74[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0}; +static const sal_Unicode outlineParentNumbering74[] = {0x30, 0x0}; +static const sal_Unicode outlineLeftMargin74[] = {0x32, 0x30, 0x30, 0x0}; +static const sal_Unicode outlineSymbolTextDistance74[] = {0x35, 0x30, 0x0}; +static const sal_Unicode outlineFirstLineOffset74[] = {0x30, 0x0}; +static const sal_Unicode outlineTransliteration74[] = {0x0}; +static const sal_Unicode outlineNatNum74[] = {0x0}; +static const sal_Int16 outlineNbOfStyles = 8; + +static const sal_Int16 outlineNbOfLevelsPerStyle = 5; + +static const sal_Int16 outlineNbOfAttributesPerLevel = 11; + +static const sal_Unicode* outlineStyle0Level0[] = { outlinePrefix00, outlineNumType00, outlineSuffix00, outlineBulletChar00, outlineBulletFontName00, outlineParentNumbering00, outlineLeftMargin00, outlineSymbolTextDistance00, outlineFirstLineOffset00, outlineTransliteration00, outlineNatNum00, NULL }; +static const sal_Unicode* outlineStyle0Level1[] = { outlinePrefix01, outlineNumType01, outlineSuffix01, outlineBulletChar01, outlineBulletFontName01, outlineParentNumbering01, outlineLeftMargin01, outlineSymbolTextDistance01, outlineFirstLineOffset01, outlineTransliteration01, outlineNatNum01, NULL }; +static const sal_Unicode* outlineStyle0Level2[] = { outlinePrefix02, outlineNumType02, outlineSuffix02, outlineBulletChar02, outlineBulletFontName02, outlineParentNumbering02, outlineLeftMargin02, outlineSymbolTextDistance02, outlineFirstLineOffset02, outlineTransliteration02, outlineNatNum02, NULL }; +static const sal_Unicode* outlineStyle0Level3[] = { outlinePrefix03, outlineNumType03, outlineSuffix03, outlineBulletChar03, outlineBulletFontName03, outlineParentNumbering03, outlineLeftMargin03, outlineSymbolTextDistance03, outlineFirstLineOffset03, outlineTransliteration03, outlineNatNum03, NULL }; +static const sal_Unicode* outlineStyle0Level4[] = { outlinePrefix04, outlineNumType04, outlineSuffix04, outlineBulletChar04, outlineBulletFontName04, outlineParentNumbering04, outlineLeftMargin04, outlineSymbolTextDistance04, outlineFirstLineOffset04, outlineTransliteration04, outlineNatNum04, NULL }; +static const sal_Unicode* outlineStyle1Level0[] = { outlinePrefix10, outlineNumType10, outlineSuffix10, outlineBulletChar10, outlineBulletFontName10, outlineParentNumbering10, outlineLeftMargin10, outlineSymbolTextDistance10, outlineFirstLineOffset10, outlineTransliteration10, outlineNatNum10, NULL }; +static const sal_Unicode* outlineStyle1Level1[] = { outlinePrefix11, outlineNumType11, outlineSuffix11, outlineBulletChar11, outlineBulletFontName11, outlineParentNumbering11, outlineLeftMargin11, outlineSymbolTextDistance11, outlineFirstLineOffset11, outlineTransliteration11, outlineNatNum11, NULL }; +static const sal_Unicode* outlineStyle1Level2[] = { outlinePrefix12, outlineNumType12, outlineSuffix12, outlineBulletChar12, outlineBulletFontName12, outlineParentNumbering12, outlineLeftMargin12, outlineSymbolTextDistance12, outlineFirstLineOffset12, outlineTransliteration12, outlineNatNum12, NULL }; +static const sal_Unicode* outlineStyle1Level3[] = { outlinePrefix13, outlineNumType13, outlineSuffix13, outlineBulletChar13, outlineBulletFontName13, outlineParentNumbering13, outlineLeftMargin13, outlineSymbolTextDistance13, outlineFirstLineOffset13, outlineTransliteration13, outlineNatNum13, NULL }; +static const sal_Unicode* outlineStyle1Level4[] = { outlinePrefix14, outlineNumType14, outlineSuffix14, outlineBulletChar14, outlineBulletFontName14, outlineParentNumbering14, outlineLeftMargin14, outlineSymbolTextDistance14, outlineFirstLineOffset14, outlineTransliteration14, outlineNatNum14, NULL }; +static const sal_Unicode* outlineStyle2Level0[] = { outlinePrefix20, outlineNumType20, outlineSuffix20, outlineBulletChar20, outlineBulletFontName20, outlineParentNumbering20, outlineLeftMargin20, outlineSymbolTextDistance20, outlineFirstLineOffset20, outlineTransliteration20, outlineNatNum20, NULL }; +static const sal_Unicode* outlineStyle2Level1[] = { outlinePrefix21, outlineNumType21, outlineSuffix21, outlineBulletChar21, outlineBulletFontName21, outlineParentNumbering21, outlineLeftMargin21, outlineSymbolTextDistance21, outlineFirstLineOffset21, outlineTransliteration21, outlineNatNum21, NULL }; +static const sal_Unicode* outlineStyle2Level2[] = { outlinePrefix22, outlineNumType22, outlineSuffix22, outlineBulletChar22, outlineBulletFontName22, outlineParentNumbering22, outlineLeftMargin22, outlineSymbolTextDistance22, outlineFirstLineOffset22, outlineTransliteration22, outlineNatNum22, NULL }; +static const sal_Unicode* outlineStyle2Level3[] = { outlinePrefix23, outlineNumType23, outlineSuffix23, outlineBulletChar23, outlineBulletFontName23, outlineParentNumbering23, outlineLeftMargin23, outlineSymbolTextDistance23, outlineFirstLineOffset23, outlineTransliteration23, outlineNatNum23, NULL }; +static const sal_Unicode* outlineStyle2Level4[] = { outlinePrefix24, outlineNumType24, outlineSuffix24, outlineBulletChar24, outlineBulletFontName24, outlineParentNumbering24, outlineLeftMargin24, outlineSymbolTextDistance24, outlineFirstLineOffset24, outlineTransliteration24, outlineNatNum24, NULL }; +static const sal_Unicode* outlineStyle3Level0[] = { outlinePrefix30, outlineNumType30, outlineSuffix30, outlineBulletChar30, outlineBulletFontName30, outlineParentNumbering30, outlineLeftMargin30, outlineSymbolTextDistance30, outlineFirstLineOffset30, outlineTransliteration30, outlineNatNum30, NULL }; +static const sal_Unicode* outlineStyle3Level1[] = { outlinePrefix31, outlineNumType31, outlineSuffix31, outlineBulletChar31, outlineBulletFontName31, outlineParentNumbering31, outlineLeftMargin31, outlineSymbolTextDistance31, outlineFirstLineOffset31, outlineTransliteration31, outlineNatNum31, NULL }; +static const sal_Unicode* outlineStyle3Level2[] = { outlinePrefix32, outlineNumType32, outlineSuffix32, outlineBulletChar32, outlineBulletFontName32, outlineParentNumbering32, outlineLeftMargin32, outlineSymbolTextDistance32, outlineFirstLineOffset32, outlineTransliteration32, outlineNatNum32, NULL }; +static const sal_Unicode* outlineStyle3Level3[] = { outlinePrefix33, outlineNumType33, outlineSuffix33, outlineBulletChar33, outlineBulletFontName33, outlineParentNumbering33, outlineLeftMargin33, outlineSymbolTextDistance33, outlineFirstLineOffset33, outlineTransliteration33, outlineNatNum33, NULL }; +static const sal_Unicode* outlineStyle3Level4[] = { outlinePrefix34, outlineNumType34, outlineSuffix34, outlineBulletChar34, outlineBulletFontName34, outlineParentNumbering34, outlineLeftMargin34, outlineSymbolTextDistance34, outlineFirstLineOffset34, outlineTransliteration34, outlineNatNum34, NULL }; +static const sal_Unicode* outlineStyle4Level0[] = { outlinePrefix40, outlineNumType40, outlineSuffix40, outlineBulletChar40, outlineBulletFontName40, outlineParentNumbering40, outlineLeftMargin40, outlineSymbolTextDistance40, outlineFirstLineOffset40, outlineTransliteration40, outlineNatNum40, NULL }; +static const sal_Unicode* outlineStyle4Level1[] = { outlinePrefix41, outlineNumType41, outlineSuffix41, outlineBulletChar41, outlineBulletFontName41, outlineParentNumbering41, outlineLeftMargin41, outlineSymbolTextDistance41, outlineFirstLineOffset41, outlineTransliteration41, outlineNatNum41, NULL }; +static const sal_Unicode* outlineStyle4Level2[] = { outlinePrefix42, outlineNumType42, outlineSuffix42, outlineBulletChar42, outlineBulletFontName42, outlineParentNumbering42, outlineLeftMargin42, outlineSymbolTextDistance42, outlineFirstLineOffset42, outlineTransliteration42, outlineNatNum42, NULL }; +static const sal_Unicode* outlineStyle4Level3[] = { outlinePrefix43, outlineNumType43, outlineSuffix43, outlineBulletChar43, outlineBulletFontName43, outlineParentNumbering43, outlineLeftMargin43, outlineSymbolTextDistance43, outlineFirstLineOffset43, outlineTransliteration43, outlineNatNum43, NULL }; +static const sal_Unicode* outlineStyle4Level4[] = { outlinePrefix44, outlineNumType44, outlineSuffix44, outlineBulletChar44, outlineBulletFontName44, outlineParentNumbering44, outlineLeftMargin44, outlineSymbolTextDistance44, outlineFirstLineOffset44, outlineTransliteration44, outlineNatNum44, NULL }; +static const sal_Unicode* outlineStyle5Level0[] = { outlinePrefix50, outlineNumType50, outlineSuffix50, outlineBulletChar50, outlineBulletFontName50, outlineParentNumbering50, outlineLeftMargin50, outlineSymbolTextDistance50, outlineFirstLineOffset50, outlineTransliteration50, outlineNatNum50, NULL }; +static const sal_Unicode* outlineStyle5Level1[] = { outlinePrefix51, outlineNumType51, outlineSuffix51, outlineBulletChar51, outlineBulletFontName51, outlineParentNumbering51, outlineLeftMargin51, outlineSymbolTextDistance51, outlineFirstLineOffset51, outlineTransliteration51, outlineNatNum51, NULL }; +static const sal_Unicode* outlineStyle5Level2[] = { outlinePrefix52, outlineNumType52, outlineSuffix52, outlineBulletChar52, outlineBulletFontName52, outlineParentNumbering52, outlineLeftMargin52, outlineSymbolTextDistance52, outlineFirstLineOffset52, outlineTransliteration52, outlineNatNum52, NULL }; +static const sal_Unicode* outlineStyle5Level3[] = { outlinePrefix53, outlineNumType53, outlineSuffix53, outlineBulletChar53, outlineBulletFontName53, outlineParentNumbering53, outlineLeftMargin53, outlineSymbolTextDistance53, outlineFirstLineOffset53, outlineTransliteration53, outlineNatNum53, NULL }; +static const sal_Unicode* outlineStyle5Level4[] = { outlinePrefix54, outlineNumType54, outlineSuffix54, outlineBulletChar54, outlineBulletFontName54, outlineParentNumbering54, outlineLeftMargin54, outlineSymbolTextDistance54, outlineFirstLineOffset54, outlineTransliteration54, outlineNatNum54, NULL }; +static const sal_Unicode* outlineStyle6Level0[] = { outlinePrefix60, outlineNumType60, outlineSuffix60, outlineBulletChar60, outlineBulletFontName60, outlineParentNumbering60, outlineLeftMargin60, outlineSymbolTextDistance60, outlineFirstLineOffset60, outlineTransliteration60, outlineNatNum60, NULL }; +static const sal_Unicode* outlineStyle6Level1[] = { outlinePrefix61, outlineNumType61, outlineSuffix61, outlineBulletChar61, outlineBulletFontName61, outlineParentNumbering61, outlineLeftMargin61, outlineSymbolTextDistance61, outlineFirstLineOffset61, outlineTransliteration61, outlineNatNum61, NULL }; +static const sal_Unicode* outlineStyle6Level2[] = { outlinePrefix62, outlineNumType62, outlineSuffix62, outlineBulletChar62, outlineBulletFontName62, outlineParentNumbering62, outlineLeftMargin62, outlineSymbolTextDistance62, outlineFirstLineOffset62, outlineTransliteration62, outlineNatNum62, NULL }; +static const sal_Unicode* outlineStyle6Level3[] = { outlinePrefix63, outlineNumType63, outlineSuffix63, outlineBulletChar63, outlineBulletFontName63, outlineParentNumbering63, outlineLeftMargin63, outlineSymbolTextDistance63, outlineFirstLineOffset63, outlineTransliteration63, outlineNatNum63, NULL }; +static const sal_Unicode* outlineStyle6Level4[] = { outlinePrefix64, outlineNumType64, outlineSuffix64, outlineBulletChar64, outlineBulletFontName64, outlineParentNumbering64, outlineLeftMargin64, outlineSymbolTextDistance64, outlineFirstLineOffset64, outlineTransliteration64, outlineNatNum64, NULL }; +static const sal_Unicode* outlineStyle7Level0[] = { outlinePrefix70, outlineNumType70, outlineSuffix70, outlineBulletChar70, outlineBulletFontName70, outlineParentNumbering70, outlineLeftMargin70, outlineSymbolTextDistance70, outlineFirstLineOffset70, outlineTransliteration70, outlineNatNum70, NULL }; +static const sal_Unicode* outlineStyle7Level1[] = { outlinePrefix71, outlineNumType71, outlineSuffix71, outlineBulletChar71, outlineBulletFontName71, outlineParentNumbering71, outlineLeftMargin71, outlineSymbolTextDistance71, outlineFirstLineOffset71, outlineTransliteration71, outlineNatNum71, NULL }; +static const sal_Unicode* outlineStyle7Level2[] = { outlinePrefix72, outlineNumType72, outlineSuffix72, outlineBulletChar72, outlineBulletFontName72, outlineParentNumbering72, outlineLeftMargin72, outlineSymbolTextDistance72, outlineFirstLineOffset72, outlineTransliteration72, outlineNatNum72, NULL }; +static const sal_Unicode* outlineStyle7Level3[] = { outlinePrefix73, outlineNumType73, outlineSuffix73, outlineBulletChar73, outlineBulletFontName73, outlineParentNumbering73, outlineLeftMargin73, outlineSymbolTextDistance73, outlineFirstLineOffset73, outlineTransliteration73, outlineNatNum73, NULL }; +static const sal_Unicode* outlineStyle7Level4[] = { outlinePrefix74, outlineNumType74, outlineSuffix74, outlineBulletChar74, outlineBulletFontName74, outlineParentNumbering74, outlineLeftMargin74, outlineSymbolTextDistance74, outlineFirstLineOffset74, outlineTransliteration74, outlineNatNum74, NULL }; + +static const sal_Unicode** outlineStyle0[] = { outlineStyle0Level0, outlineStyle0Level1, outlineStyle0Level2, outlineStyle0Level3, outlineStyle0Level4, NULL }; +static const sal_Unicode** outlineStyle1[] = { outlineStyle1Level0, outlineStyle1Level1, outlineStyle1Level2, outlineStyle1Level3, outlineStyle1Level4, NULL }; +static const sal_Unicode** outlineStyle2[] = { outlineStyle2Level0, outlineStyle2Level1, outlineStyle2Level2, outlineStyle2Level3, outlineStyle2Level4, NULL }; +static const sal_Unicode** outlineStyle3[] = { outlineStyle3Level0, outlineStyle3Level1, outlineStyle3Level2, outlineStyle3Level3, outlineStyle3Level4, NULL }; +static const sal_Unicode** outlineStyle4[] = { outlineStyle4Level0, outlineStyle4Level1, outlineStyle4Level2, outlineStyle4Level3, outlineStyle4Level4, NULL }; +static const sal_Unicode** outlineStyle5[] = { outlineStyle5Level0, outlineStyle5Level1, outlineStyle5Level2, outlineStyle5Level3, outlineStyle5Level4, NULL }; +static const sal_Unicode** outlineStyle6[] = { outlineStyle6Level0, outlineStyle6Level1, outlineStyle6Level2, outlineStyle6Level3, outlineStyle6Level4, NULL }; +static const sal_Unicode** outlineStyle7[] = { outlineStyle7Level0, outlineStyle7Level1, outlineStyle7Level2, outlineStyle7Level3, outlineStyle7Level4, NULL }; + +static const sal_Unicode*** LCOutlineNumberingLevelsArray[] = { + outlineStyle0, + outlineStyle1, + outlineStyle2, + outlineStyle3, + outlineStyle4, + outlineStyle5, + outlineStyle6, + outlineStyle7, + NULL +}; + +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US( sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes ) +{ + nStyles = outlineNbOfStyles; + nLevels = outlineNbOfLevelsPerStyle; + nAttributes = outlineNbOfAttributesPerLevel; + return LCOutlineNumberingLevelsArray; +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_ZA.cxx b/vcl/workben/localestub/localedata_en_ZA.cxx new file mode 100644 index 000000000..ecd9a9cde --- /dev/null +++ b/vcl/workben/localestub/localedata_en_ZA.cxx @@ -0,0 +1,1263 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x5a, 0x41, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_ZA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_ZA(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0}; +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x52, 0x2d, 0x31, 0x43, 0x30, 0x39, 0x5d, 0x0}; +static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement0[] = {1}; +static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex0[] = {0}; +static const sal_Unicode FormatCode0[] = {0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0}; +static const sal_Unicode FormatDefaultName0[] = {0x0}; +static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement1[] = {1}; +static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex1[] = {1}; +static const sal_Unicode FormatCode1[] = {0x30, 0x0}; +static const sal_Unicode FormatDefaultName1[] = {0x0}; +static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement2[] = {0}; +static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex2[] = {2}; +static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName2[] = {0x0}; +static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement3[] = {0}; +static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex3[] = {3}; +static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName3[] = {0x0}; +static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement4[] = {0}; +static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex4[] = {4}; +static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName4[] = {0x0}; +static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement5[] = {0}; +static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex5[] = {5}; +static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName5[] = {0x0}; +static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement6[] = {0}; +static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex6[] = {70}; +static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName6[] = {0x0}; +static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement7[] = {0}; +static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex7[] = {71}; +static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0}; +static const sal_Unicode FormatDefaultName7[] = {0x0}; +static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement8[] = {0}; +static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex8[] = {6}; +static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName8[] = {0x0}; +static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement9[] = {1}; +static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex9[] = {7}; +static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName9[] = {0x0}; +static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement10[] = {0}; +static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex10[] = {78}; +static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName10[] = {0x0}; +static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement11[] = {1}; +static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex11[] = {8}; +static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName11[] = {0x0}; +static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement12[] = {1}; +static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0}; +static const sal_Unicode Formatindex12[] = {9}; +static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0}; +static const sal_Unicode FormatDefaultName12[] = {0x0}; +static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement13[] = {1}; +static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex13[] = {12}; +static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName13[] = {0x0}; +static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement14[] = {0}; +static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex14[] = {13}; +static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName14[] = {0x0}; +static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement15[] = {0}; +static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex15[] = {14}; +static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName15[] = {0x0}; +static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement16[] = {1}; +static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex16[] = {15}; +static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName16[] = {0x0}; +static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement17[] = {0}; +static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex17[] = {16}; +static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0}; +static const sal_Unicode FormatDefaultName17[] = {0x0}; +static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement18[] = {0}; +static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0}; +static const sal_Unicode Formatindex18[] = {17}; +static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0}; +static const sal_Unicode FormatDefaultName18[] = {0x0}; +static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement19[] = {1}; +static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex19[] = {18}; +static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName19[] = {0x0}; +static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement20[] = {1}; +static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex20[] = {19}; +static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName20[] = {0x0}; +static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement21[] = {1}; +static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex21[] = {20}; +static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName21[] = {0x0}; +static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement22[] = {0}; +static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex22[] = {21}; +static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName22[] = {0x0}; +static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement23[] = {0}; +static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex23[] = {22}; +static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName23[] = {0x0}; +static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement24[] = {0}; +static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex24[] = {23}; +static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName24[] = {0x0}; +static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement25[] = {0}; +static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex25[] = {24}; +static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName25[] = {0x0}; +static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement26[] = {0}; +static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex26[] = {25}; +static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName26[] = {0x0}; +static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement27[] = {0}; +static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex27[] = {26}; +static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName27[] = {0x0}; +static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement28[] = {0}; +static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex28[] = {27}; +static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName28[] = {0x0}; +static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement29[] = {0}; +static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex29[] = {28}; +static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName29[] = {0x0}; +static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement30[] = {0}; +static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex30[] = {29}; +static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName30[] = {0x0}; +static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement31[] = {0}; +static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0}; +static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex31[] = {30}; +static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName31[] = {0x0}; +static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0}; +static const sal_Unicode defaultFormatElement32[] = {0}; +static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex32[] = {31}; +static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName32[] = {0x0}; +static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0}; +static const sal_Unicode defaultFormatElement33[] = {0}; +static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex33[] = {32}; +static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName33[] = {0x0}; +static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0}; +static const sal_Unicode defaultFormatElement34[] = {0}; +static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex34[] = {33}; +static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0}; +static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement35[] = {0}; +static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex35[] = {34}; +static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName35[] = {0x0}; +static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement36[] = {0}; +static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex36[] = {35}; +static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0}; +static const sal_Unicode FormatDefaultName36[] = {0x0}; +static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement37[] = {0}; +static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex37[] = {36}; +static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName37[] = {0x0}; +static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement38[] = {0}; +static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex38[] = {37}; +static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0}; +static const sal_Unicode FormatDefaultName38[] = {0x0}; +static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement39[] = {0}; +static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0}; +static const sal_Unicode Formatindex39[] = {38}; +static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0}; +static const sal_Unicode FormatDefaultName39[] = {0x0}; +static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement40[] = {1}; +static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex40[] = {39}; +static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName40[] = {0x0}; +static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement41[] = {1}; +static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex41[] = {40}; +static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName41[] = {0x0}; +static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0}; +static const sal_Unicode defaultFormatElement42[] = {0}; +static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex42[] = {41}; +static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName42[] = {0x0}; +static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0}; +static const sal_Unicode defaultFormatElement43[] = {0}; +static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex43[] = {42}; +static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName43[] = {0x0}; +static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0}; +static const sal_Unicode defaultFormatElement44[] = {0}; +static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex44[] = {43}; +static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName44[] = {0x0}; +static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0}; +static const sal_Unicode defaultFormatElement45[] = {0}; +static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0}; +static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex45[] = {44}; +static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName45[] = {0x0}; +static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0}; +static const sal_Unicode defaultFormatElement46[] = {0}; +static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex46[] = {45}; +static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0}; +static const sal_Unicode FormatDefaultName46[] = {0x0}; +static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0}; +static const sal_Unicode defaultFormatElement47[] = {1}; +static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex47[] = {46}; +static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0}; +static const sal_Unicode FormatDefaultName47[] = {0x0}; +static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0}; +static const sal_Unicode defaultFormatElement48[] = {0}; +static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0}; +static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0}; +static const sal_Unicode Formatindex48[] = {47}; +static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0}; +static const sal_Unicode FormatDefaultName48[] = {0x0}; + +static const sal_Int16 FormatElementsCount0 = 49; +static const sal_Unicode* FormatElementsArray0[] = { + FormatCode0, + FormatDefaultName0, + FormatKey0, + FormatType0, + FormatUsage0, + Formatindex0, + defaultFormatElement0, + FormatCode1, + FormatDefaultName1, + FormatKey1, + FormatType1, + FormatUsage1, + Formatindex1, + defaultFormatElement1, + FormatCode2, + FormatDefaultName2, + FormatKey2, + FormatType2, + FormatUsage2, + Formatindex2, + defaultFormatElement2, + FormatCode3, + FormatDefaultName3, + FormatKey3, + FormatType3, + FormatUsage3, + Formatindex3, + defaultFormatElement3, + FormatCode4, + FormatDefaultName4, + FormatKey4, + FormatType4, + FormatUsage4, + Formatindex4, + defaultFormatElement4, + FormatCode5, + FormatDefaultName5, + FormatKey5, + FormatType5, + FormatUsage5, + Formatindex5, + defaultFormatElement5, + FormatCode6, + FormatDefaultName6, + FormatKey6, + FormatType6, + FormatUsage6, + Formatindex6, + defaultFormatElement6, + FormatCode7, + FormatDefaultName7, + FormatKey7, + FormatType7, + FormatUsage7, + Formatindex7, + defaultFormatElement7, + FormatCode8, + FormatDefaultName8, + FormatKey8, + FormatType8, + FormatUsage8, + Formatindex8, + defaultFormatElement8, + FormatCode9, + FormatDefaultName9, + FormatKey9, + FormatType9, + FormatUsage9, + Formatindex9, + defaultFormatElement9, + FormatCode10, + FormatDefaultName10, + FormatKey10, + FormatType10, + FormatUsage10, + Formatindex10, + defaultFormatElement10, + FormatCode11, + FormatDefaultName11, + FormatKey11, + FormatType11, + FormatUsage11, + Formatindex11, + defaultFormatElement11, + FormatCode12, + FormatDefaultName12, + FormatKey12, + FormatType12, + FormatUsage12, + Formatindex12, + defaultFormatElement12, + FormatCode13, + FormatDefaultName13, + FormatKey13, + FormatType13, + FormatUsage13, + Formatindex13, + defaultFormatElement13, + FormatCode14, + FormatDefaultName14, + FormatKey14, + FormatType14, + FormatUsage14, + Formatindex14, + defaultFormatElement14, + FormatCode15, + FormatDefaultName15, + FormatKey15, + FormatType15, + FormatUsage15, + Formatindex15, + defaultFormatElement15, + FormatCode16, + FormatDefaultName16, + FormatKey16, + FormatType16, + FormatUsage16, + Formatindex16, + defaultFormatElement16, + FormatCode17, + FormatDefaultName17, + FormatKey17, + FormatType17, + FormatUsage17, + Formatindex17, + defaultFormatElement17, + FormatCode18, + FormatDefaultName18, + FormatKey18, + FormatType18, + FormatUsage18, + Formatindex18, + defaultFormatElement18, + FormatCode19, + FormatDefaultName19, + FormatKey19, + FormatType19, + FormatUsage19, + Formatindex19, + defaultFormatElement19, + FormatCode20, + FormatDefaultName20, + FormatKey20, + FormatType20, + FormatUsage20, + Formatindex20, + defaultFormatElement20, + FormatCode21, + FormatDefaultName21, + FormatKey21, + FormatType21, + FormatUsage21, + Formatindex21, + defaultFormatElement21, + FormatCode22, + FormatDefaultName22, + FormatKey22, + FormatType22, + FormatUsage22, + Formatindex22, + defaultFormatElement22, + FormatCode23, + FormatDefaultName23, + FormatKey23, + FormatType23, + FormatUsage23, + Formatindex23, + defaultFormatElement23, + FormatCode24, + FormatDefaultName24, + FormatKey24, + FormatType24, + FormatUsage24, + Formatindex24, + defaultFormatElement24, + FormatCode25, + FormatDefaultName25, + FormatKey25, + FormatType25, + FormatUsage25, + Formatindex25, + defaultFormatElement25, + FormatCode26, + FormatDefaultName26, + FormatKey26, + FormatType26, + FormatUsage26, + Formatindex26, + defaultFormatElement26, + FormatCode27, + FormatDefaultName27, + FormatKey27, + FormatType27, + FormatUsage27, + Formatindex27, + defaultFormatElement27, + FormatCode28, + FormatDefaultName28, + FormatKey28, + FormatType28, + FormatUsage28, + Formatindex28, + defaultFormatElement28, + FormatCode29, + FormatDefaultName29, + FormatKey29, + FormatType29, + FormatUsage29, + Formatindex29, + defaultFormatElement29, + FormatCode30, + FormatDefaultName30, + FormatKey30, + FormatType30, + FormatUsage30, + Formatindex30, + defaultFormatElement30, + FormatCode31, + FormatDefaultName31, + FormatKey31, + FormatType31, + FormatUsage31, + Formatindex31, + defaultFormatElement31, + FormatCode32, + FormatDefaultName32, + FormatKey32, + FormatType32, + FormatUsage32, + Formatindex32, + defaultFormatElement32, + FormatCode33, + FormatDefaultName33, + FormatKey33, + FormatType33, + FormatUsage33, + Formatindex33, + defaultFormatElement33, + FormatCode34, + FormatDefaultName34, + FormatKey34, + FormatType34, + FormatUsage34, + Formatindex34, + defaultFormatElement34, + FormatCode35, + FormatDefaultName35, + FormatKey35, + FormatType35, + FormatUsage35, + Formatindex35, + defaultFormatElement35, + FormatCode36, + FormatDefaultName36, + FormatKey36, + FormatType36, + FormatUsage36, + Formatindex36, + defaultFormatElement36, + FormatCode37, + FormatDefaultName37, + FormatKey37, + FormatType37, + FormatUsage37, + Formatindex37, + defaultFormatElement37, + FormatCode38, + FormatDefaultName38, + FormatKey38, + FormatType38, + FormatUsage38, + Formatindex38, + defaultFormatElement38, + FormatCode39, + FormatDefaultName39, + FormatKey39, + FormatType39, + FormatUsage39, + Formatindex39, + defaultFormatElement39, + FormatCode40, + FormatDefaultName40, + FormatKey40, + FormatType40, + FormatUsage40, + Formatindex40, + defaultFormatElement40, + FormatCode41, + FormatDefaultName41, + FormatKey41, + FormatType41, + FormatUsage41, + Formatindex41, + defaultFormatElement41, + FormatCode42, + FormatDefaultName42, + FormatKey42, + FormatType42, + FormatUsage42, + Formatindex42, + defaultFormatElement42, + FormatCode43, + FormatDefaultName43, + FormatKey43, + FormatType43, + FormatUsage43, + Formatindex43, + defaultFormatElement43, + FormatCode44, + FormatDefaultName44, + FormatKey44, + FormatType44, + FormatUsage44, + Formatindex44, + defaultFormatElement44, + FormatCode45, + FormatDefaultName45, + FormatKey45, + FormatType45, + FormatUsage45, + Formatindex45, + defaultFormatElement45, + FormatCode46, + FormatDefaultName46, + FormatKey46, + FormatType46, + FormatUsage46, + Formatindex46, + defaultFormatElement46, + FormatCode47, + FormatDefaultName47, + FormatKey47, + FormatType47, + FormatUsage47, + Formatindex47, + defaultFormatElement47, + FormatCode48, + FormatDefaultName48, + FormatKey48, + FormatType48, + FormatUsage48, + Formatindex48, + defaultFormatElement48, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_ZA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + count = FormatElementsCount0; + from = replaceFrom0; + to = replaceTo0; + return (sal_Unicode**)FormatElementsArray0; +} +static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0}; +static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0}; +static const sal_Int16 DateAcceptancePatternsCount = 2; +static const sal_Unicode* DateAcceptancePatternsArray[] = { + DateAcceptancePattern0, + DateAcceptancePattern1, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_ZA(sal_Int16& count) +{ + count = DateAcceptancePatternsCount; + return (sal_Unicode**)DateAcceptancePatternsArray; +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_ZA(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_ZA(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_ZA(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_ZA(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_ZA(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_ZA(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_ZA(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x5a, 0x41, 0x52, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x52, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x5a, 0x41, 0x52, 0x0}; +static const sal_Unicode currencyName0[] = {0x52, 0x61, 0x6e, 0x64, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_ZA(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_ZA(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_ZA(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_ZA(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_ZA(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_ZA(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_ZA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localedata_en_ZM.cxx b/vcl/workben/localestub/localedata_en_ZM.cxx new file mode 100644 index 000000000..0e61cd7bf --- /dev/null +++ b/vcl/workben/localestub/localedata_en_ZM.cxx @@ -0,0 +1,142 @@ +#include <sal/types.h> + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 }; +static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 }; +static const sal_Unicode countryID[] = { 0x5a, 0x4d, 0x0 }; +static const sal_Unicode countryDefaultName[] = { 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x0 }; +static const sal_Unicode Variant[] = { 0x0 }; + +static const sal_Unicode* LCInfoArray[] + = { langID, langDefaultName, countryID, countryDefaultName, Variant }; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_ZM(sal_Int16& count) +{ + count = SAL_N_ELEMENTS(LCInfoArray); + return (sal_Unicode**)LCInfoArray; +} +extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_ZM(sal_Int16& count) +{ + return getLocaleItem_en_GB(count); +} +static const sal_Unicode replaceTo0[] + = { 0x5b, 0x24, 0x4b, 0x2d, 0x41, 0x30, 0x30, 0x39, 0x5d, 0x0 }; +extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count, + const sal_Unicode*& from, + const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL +getAllFormats0_en_ZM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_GB(count, from, tmp); +} +extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_ZM(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_ZM(sal_Int16& count) +{ + return getCollatorImplementation_en_GB(count); +} +extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_ZM(sal_Int16& count) +{ + return getCollationOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_ZM(sal_Int16& count) +{ + return getSearchOptions_en_GB(count); +} +extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_ZM(sal_Int16& count) +{ + return getIndexAlgorithm_en_GB(count); +} +extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_ZM(sal_Int16& count) +{ + return getUnicodeScripts_en_GB(count); +} +extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_ZM(sal_Int16& count) +{ + return getFollowPageWords_en_GB(count); +} +extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_ZM(sal_Int16& count) +{ + return getAllCalendars_en_GB(count); +} +static const sal_Unicode defaultCurrency0[] = { 1 }; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 }; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 }; +static const sal_Unicode currencyID0[] = { 0x5a, 0x4d, 0x57, 0x0 }; +static const sal_Unicode currencySymbol0[] = { 0x4b, 0x0 }; +static const sal_Unicode bankSymbol0[] = { 0x5a, 0x4d, 0x57, 0x0 }; +static const sal_Unicode currencyName0[] = { 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x0 }; +static const sal_Unicode currencyDecimalPlaces0[] = { 2 }; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_ZM(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_ZM(sal_Int16& count) +{ + return getTransliterations_en_GB(count); +} +extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_ZM(sal_Int16& count) +{ + return getForbiddenCharacters_en_GB(count); +} +extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_ZM(sal_Int16& count) +{ + return getBreakIteratorRules_en_GB(count); +} +extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_ZM(sal_Int16& count) +{ + return getReservedWords_en_GB(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL +getContinuousNumberingLevels_en_ZM(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_GB(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, + sal_Int16& nLevels, + sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL +getOutlineNumberingLevels_en_ZM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes); +} +} // extern "C" diff --git a/vcl/workben/localestub/localedata_en_ZW.cxx b/vcl/workben/localestub/localedata_en_ZW.cxx new file mode 100644 index 000000000..be6797418 --- /dev/null +++ b/vcl/workben/localestub/localedata_en_ZW.cxx @@ -0,0 +1,563 @@ +#include <sal/types.h> + + +#include <stdio.h> + +extern "C" { + +static const sal_Unicode langID[] = {0x65, 0x6e, 0x0}; +static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0}; +static const sal_Unicode countryID[] = {0x5a, 0x57, 0x0}; +static const sal_Unicode countryDefaultName[] = {0x5a, 0x69, 0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x0}; +static const sal_Unicode Variant[] = {0x0}; + +static const sal_Unicode* LCInfoArray[] = { + langID, + langDefaultName, + countryID, + countryDefaultName, + Variant +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_ZW(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCInfoArray; +} + + +static const sal_Unicode LC_CTYPE_Unoid[] = {0x0}; +static const sal_Unicode dateSeparator[] = {0x2f, 0x0}; +static const sal_Unicode thousandSeparator[] = {0x2c, 0x0}; +static const sal_Unicode decimalSeparator[] = {0x2e, 0x0}; +static const sal_Unicode timeSeparator[] = {0x3a, 0x0}; +static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0}; +static const sal_Unicode listSeparator[] = {0x3b, 0x0}; +static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0}; +static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0}; +static const sal_Unicode quotationStart[] = {0x2018, 0x0}; +static const sal_Unicode quotationEnd[] = {0x2019, 0x0}; +static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0}; +static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0}; +static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0}; +static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0}; +static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0}; + +static const sal_Unicode* LCType[] = { + LC_CTYPE_Unoid, + dateSeparator, + thousandSeparator, + decimalSeparator, + timeSeparator, + time100SecSeparator, + listSeparator, + quotationStart, + quotationEnd, + doubleQuotationStart, + doubleQuotationEnd, + timeAM, + timePM, + measurementSystem, + LongDateDayOfWeekSeparator, + LongDateDaySeparator, + LongDateMonthSeparator, + LongDateYearSeparator +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_ZW(sal_Int16& count) +{ + count = 0; + return (sal_Unicode**)LCType; +} +static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x5a, 0x24, 0x2d, 0x33, 0x30, 0x30, 0x39, 0x5d, 0x0}; +extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to); +SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_ZW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to) +{ + to = replaceTo0; + const sal_Unicode* tmp; + return getAllFormats0_en_US(count, from, tmp); +} +extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_ZW(sal_Int16& count) +{ + return getDateAcceptancePatterns_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_ZW(sal_Int16& count) +{ + return getCollatorImplementation_en_US(count); +} +extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_ZW(sal_Int16& count) +{ + return getCollationOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_ZW(sal_Int16& count) +{ + return getSearchOptions_en_US(count); +} +extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_ZW(sal_Int16& count) +{ + return getIndexAlgorithm_en_US(count); +} +extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_ZW(sal_Int16& count) +{ + return getUnicodeScripts_en_US(count); +} +extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_ZW(sal_Int16& count) +{ + return getFollowPageWords_en_US(count); +} +static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0}; +static const sal_Unicode defaultCalendar0[] = {1}; +static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0}; +static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0}; +static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0}; +static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0}; +static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0}; +static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0}; +static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0}; +static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0}; +static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0}; +static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0}; +static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0}; +static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0}; +static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0}; +static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0}; +static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0}; +static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0}; +static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0}; +static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0}; +static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0}; +static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0}; +static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0}; +static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0}; +static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0}; +static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0}; +static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0}; +static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0}; + +static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0}; +static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0}; +static const sal_Unicode minimalDaysInFirstWeek0[] = {1}; +static const sal_Int16 calendarsCount = 1; + +static const sal_Unicode nbOfDays[] = {7}; +static const sal_Unicode nbOfMonths[] = {12}; +static const sal_Unicode nbOfGenitiveMonths[] = {12}; +static const sal_Unicode nbOfPartitiveMonths[] = {12}; +static const sal_Unicode nbOfEras[] = {2}; +static const sal_Unicode* calendars[] = { + nbOfDays, + nbOfMonths, + nbOfGenitiveMonths, + nbOfPartitiveMonths, + nbOfEras, + calendarID0, + defaultCalendar0, + dayID00, + dayDefaultAbbrvName00, + dayDefaultFullName00, + dayDefaultNarrowName00, + dayID01, + dayDefaultAbbrvName01, + dayDefaultFullName01, + dayDefaultNarrowName01, + dayID02, + dayDefaultAbbrvName02, + dayDefaultFullName02, + dayDefaultNarrowName02, + dayID03, + dayDefaultAbbrvName03, + dayDefaultFullName03, + dayDefaultNarrowName03, + dayID04, + dayDefaultAbbrvName04, + dayDefaultFullName04, + dayDefaultNarrowName04, + dayID05, + dayDefaultAbbrvName05, + dayDefaultFullName05, + dayDefaultNarrowName05, + dayID06, + dayDefaultAbbrvName06, + dayDefaultFullName06, + dayDefaultNarrowName06, + monthID00, + monthDefaultAbbrvName00, + monthDefaultFullName00, + monthDefaultNarrowName00, + monthID01, + monthDefaultAbbrvName01, + monthDefaultFullName01, + monthDefaultNarrowName01, + monthID02, + monthDefaultAbbrvName02, + monthDefaultFullName02, + monthDefaultNarrowName02, + monthID03, + monthDefaultAbbrvName03, + monthDefaultFullName03, + monthDefaultNarrowName03, + monthID04, + monthDefaultAbbrvName04, + monthDefaultFullName04, + monthDefaultNarrowName04, + monthID05, + monthDefaultAbbrvName05, + monthDefaultFullName05, + monthDefaultNarrowName05, + monthID06, + monthDefaultAbbrvName06, + monthDefaultFullName06, + monthDefaultNarrowName06, + monthID07, + monthDefaultAbbrvName07, + monthDefaultFullName07, + monthDefaultNarrowName07, + monthID08, + monthDefaultAbbrvName08, + monthDefaultFullName08, + monthDefaultNarrowName08, + monthID09, + monthDefaultAbbrvName09, + monthDefaultFullName09, + monthDefaultNarrowName09, + monthID010, + monthDefaultAbbrvName010, + monthDefaultFullName010, + monthDefaultNarrowName010, + monthID011, + monthDefaultAbbrvName011, + monthDefaultFullName011, + monthDefaultNarrowName011, + genitiveMonthID00, + genitiveMonthDefaultAbbrvName00, + genitiveMonthDefaultFullName00, + genitiveMonthDefaultNarrowName00, + genitiveMonthID01, + genitiveMonthDefaultAbbrvName01, + genitiveMonthDefaultFullName01, + genitiveMonthDefaultNarrowName01, + genitiveMonthID02, + genitiveMonthDefaultAbbrvName02, + genitiveMonthDefaultFullName02, + genitiveMonthDefaultNarrowName02, + genitiveMonthID03, + genitiveMonthDefaultAbbrvName03, + genitiveMonthDefaultFullName03, + genitiveMonthDefaultNarrowName03, + genitiveMonthID04, + genitiveMonthDefaultAbbrvName04, + genitiveMonthDefaultFullName04, + genitiveMonthDefaultNarrowName04, + genitiveMonthID05, + genitiveMonthDefaultAbbrvName05, + genitiveMonthDefaultFullName05, + genitiveMonthDefaultNarrowName05, + genitiveMonthID06, + genitiveMonthDefaultAbbrvName06, + genitiveMonthDefaultFullName06, + genitiveMonthDefaultNarrowName06, + genitiveMonthID07, + genitiveMonthDefaultAbbrvName07, + genitiveMonthDefaultFullName07, + genitiveMonthDefaultNarrowName07, + genitiveMonthID08, + genitiveMonthDefaultAbbrvName08, + genitiveMonthDefaultFullName08, + genitiveMonthDefaultNarrowName08, + genitiveMonthID09, + genitiveMonthDefaultAbbrvName09, + genitiveMonthDefaultFullName09, + genitiveMonthDefaultNarrowName09, + genitiveMonthID010, + genitiveMonthDefaultAbbrvName010, + genitiveMonthDefaultFullName010, + genitiveMonthDefaultNarrowName010, + genitiveMonthID011, + genitiveMonthDefaultAbbrvName011, + genitiveMonthDefaultFullName011, + genitiveMonthDefaultNarrowName011, + partitiveMonthID00, + partitiveMonthDefaultAbbrvName00, + partitiveMonthDefaultFullName00, + partitiveMonthDefaultNarrowName00, + partitiveMonthID01, + partitiveMonthDefaultAbbrvName01, + partitiveMonthDefaultFullName01, + partitiveMonthDefaultNarrowName01, + partitiveMonthID02, + partitiveMonthDefaultAbbrvName02, + partitiveMonthDefaultFullName02, + partitiveMonthDefaultNarrowName02, + partitiveMonthID03, + partitiveMonthDefaultAbbrvName03, + partitiveMonthDefaultFullName03, + partitiveMonthDefaultNarrowName03, + partitiveMonthID04, + partitiveMonthDefaultAbbrvName04, + partitiveMonthDefaultFullName04, + partitiveMonthDefaultNarrowName04, + partitiveMonthID05, + partitiveMonthDefaultAbbrvName05, + partitiveMonthDefaultFullName05, + partitiveMonthDefaultNarrowName05, + partitiveMonthID06, + partitiveMonthDefaultAbbrvName06, + partitiveMonthDefaultFullName06, + partitiveMonthDefaultNarrowName06, + partitiveMonthID07, + partitiveMonthDefaultAbbrvName07, + partitiveMonthDefaultFullName07, + partitiveMonthDefaultNarrowName07, + partitiveMonthID08, + partitiveMonthDefaultAbbrvName08, + partitiveMonthDefaultFullName08, + partitiveMonthDefaultNarrowName08, + partitiveMonthID09, + partitiveMonthDefaultAbbrvName09, + partitiveMonthDefaultFullName09, + partitiveMonthDefaultNarrowName09, + partitiveMonthID010, + partitiveMonthDefaultAbbrvName010, + partitiveMonthDefaultFullName010, + partitiveMonthDefaultNarrowName010, + partitiveMonthID011, + partitiveMonthDefaultAbbrvName011, + partitiveMonthDefaultFullName011, + partitiveMonthDefaultNarrowName011, + eraID00, + eraDefaultAbbrvName00, + eraDefaultFullName00, + eraID01, + eraDefaultAbbrvName01, + eraDefaultFullName01, + startDayOfWeek0, + minimalDaysInFirstWeek0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_ZW(sal_Int16& count) +{ + count = calendarsCount; + return (sal_Unicode**)calendars; +} +static const sal_Unicode defaultCurrency0[] = {1}; +static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1}; +static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0}; +static const sal_Unicode currencyID0[] = {0x5a, 0x57, 0x44, 0x0}; +static const sal_Unicode currencySymbol0[] = {0x5a, 0x24, 0x0}; +static const sal_Unicode bankSymbol0[] = {0x5a, 0x57, 0x44, 0x0}; +static const sal_Unicode currencyName0[] = {0x5a, 0x69, 0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0}; +static const sal_Unicode currencyDecimalPlaces0[] = {2}; + +static const sal_Int16 currencyCount = 1; + +static const sal_Unicode* currencies[] = { + currencyID0, + currencySymbol0, + bankSymbol0, + currencyName0, + defaultCurrency0, + defaultCurrencyUsedInCompatibleFormatCodes0, + currencyDecimalPlaces0, + defaultCurrencyLegacyOnly0, +}; + +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_ZW(sal_Int16& count) +{ + count = currencyCount; + return (sal_Unicode**)currencies; +} +extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_ZW(sal_Int16& count) +{ + return getTransliterations_en_US(count); +} +extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_ZW(sal_Int16& count) +{ + return getForbiddenCharacters_en_US(count); +} +extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_ZW(sal_Int16& count) +{ + return getBreakIteratorRules_en_US(count); +} +extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count); +SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_ZW(sal_Int16& count) +{ + return getReservedWords_en_US(count); +} +// ---> ContinuousNumbering +extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_ZW(sal_Int16& nStyles, sal_Int16& nAttributes) +{ + return getContinuousNumberingLevels_en_US(nStyles, nAttributes); +} +// ---> OutlineNumbering +extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes); +SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_ZW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes) +{ + return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes); +} +} // extern "C" + diff --git a/vcl/workben/localestub/localestub.cxx b/vcl/workben/localestub/localestub.cxx new file mode 100644 index 000000000..66942f1c6 --- /dev/null +++ b/vcl/workben/localestub/localestub.cxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <sal/types.h> + +extern "C" const sal_Unicode* getSTC_CharData_T2S() { return nullptr; } +extern "C" const sal_uInt16* getSTC_CharIndex_T2S() { return nullptr; } +extern "C" const sal_Unicode* getSTC_CharData_S2V() { return nullptr; } +extern "C" const sal_uInt16* getSTC_CharIndex_S2V() { return nullptr; } +extern "C" const sal_Unicode* getSTC_CharData_S2T() { return nullptr; } +extern "C" const sal_uInt16* getSTC_CharIndex_S2T() { return nullptr; } +extern "C" const sal_Unicode *getSTC_WordData(sal_Int32&) { return nullptr; } +extern "C" const sal_uInt16 *getSTC_WordIndex_T2S(sal_Int32&) { return nullptr; } +extern "C" const sal_uInt16 *getSTC_WordEntry_T2S() { return nullptr; } +extern "C" const sal_uInt16 *getSTC_WordIndex_S2T(sal_Int32&) { return nullptr; } +extern "C" const sal_uInt16 *getSTC_WordEntry_S2T() { return nullptr; } +extern "C" sal_uInt16** get_zh_zhuyin() { return nullptr; } +extern "C" sal_uInt16** get_zh_pinyin() { return nullptr; } +extern "C" const sal_Unicode* getHangul2HanjaData() { return nullptr; } +extern "C" const void* getHangul2HanjaIndex() { return nullptr; } +extern "C" sal_Int16 getHangul2HanjaIndexCount() { return 0; } +extern "C" const sal_uInt16* getHanja2HangulIndex() { return nullptr; } +extern "C" const sal_Unicode* getHanja2HangulData() { return 0; } +extern "C" sal_uInt16** get_indexdata_ko_dict(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_TW_radical(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_TW_stroke(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_radical(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_pinyin(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_stroke(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_indexdata_zh_zhuyin(sal_Int16*) { return nullptr; } +extern "C" sal_uInt16** get_ko_phonetic(sal_Int16*) { return nullptr; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/lwpfuzzer.cxx b/vcl/workben/lwpfuzzer.cxx new file mode 100644 index 000000000..fc0704542 --- /dev/null +++ b/vcl/workben/lwpfuzzer.cxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool TestImportLWP(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportLWP(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/lwpfuzzer.options b/vcl/workben/lwpfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/lwpfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/metfuzzer.cxx b/vcl/workben/metfuzzer.cxx new file mode 100644 index 000000000..fd5064329 --- /dev/null +++ b/vcl/workben/metfuzzer.cxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool imeGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)imeGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/metfuzzer.options b/vcl/workben/metfuzzer.options new file mode 100644 index 000000000..84ac4eb4e --- /dev/null +++ b/vcl/workben/metfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 49152 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/mmlfuzzer.cxx b/vcl/workben/mmlfuzzer.cxx new file mode 100644 index 000000000..8811c2743 --- /dev/null +++ b/vcl/workben/mmlfuzzer.cxx @@ -0,0 +1,29 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" bool TestImportMML(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportMML(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/mmlfuzzer.options b/vcl/workben/mmlfuzzer.options new file mode 100644 index 000000000..120b6953b --- /dev/null +++ b/vcl/workben/mmlfuzzer.options @@ -0,0 +1,5 @@ +[libfuzzer] +max_len = 65536 +dict = xml.dict +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/mtfdemo.cxx b/vcl/workben/mtfdemo.cxx new file mode 100644 index 000000000..ea987186c --- /dev/null +++ b/vcl/workben/mtfdemo.cxx @@ -0,0 +1,165 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <comphelper/processfactory.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <com/sun/star/registry/XSimpleRegistry.hpp> +#include <com/sun/star/ucb/UniversalContentBroker.hpp> + +#include <vcl/vclmain.hxx> +#include <vcl/layout.hxx> +#include <vcl/gdimtf.hxx> +#include <vcl/wmf.hxx> + +#include <tools/diagnose_ex.h> +#include <tools/urlobj.hxx> +#include <tools/stream.hxx> +#include <tools/vcompat.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/virdev.hxx> +#include <sal/log.hxx> + +#include <cstdlib> + +using namespace css; + +namespace { + +class DemoMtfWin : public WorkWindow +{ + GDIMetaFile maMtf; + +public: + explicit DemoMtfWin(const OUString& rFileName) + : WorkWindow(nullptr, WB_APP | WB_STDWORK) + { + SvFileStream aFileStream(rFileName, StreamMode::READ); + + if (aFileStream.IsOpen()) + { + ReadWindowMetafile(aFileStream, maMtf); + } + else + { + Application::Abort("Can't read metafile"); + } + } + + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; +}; + +} + +void DemoMtfWin::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) +{ + maMtf.Play(this, maMtf.GetActionSize()); + + WorkWindow::Paint(rRenderContext, rRect); +} + +namespace { + +class DemoMtfApp : public Application +{ + VclPtr<DemoMtfWin> mpWin; + OUString maFileName; + + static void showHelp() + { + fprintf(stderr, "Usage: mtfdemo --help | FILE\n"); + fprintf(stderr, "A VCL test app that displays Windows metafiles\n"); + std::exit(0); + } + +public: + + DemoMtfApp() + : mpWin(nullptr) + { + } + + virtual int Main() override + { + try + { + mpWin = VclPtr<DemoMtfWin>::Create(maFileName); + mpWin->SetText("Display metafile"); + + mpWin->Show(); + + Application::Execute(); + } + catch (const css::uno::Exception&) + { + TOOLS_WARN_EXCEPTION("vcl.app", "Fatal"); + return 1; + } + catch (const std::exception& e) + { + SAL_WARN("vcl.app", "Fatal: " << e.what()); + return 1; + } + return 0; + } + +private: + uno::Reference<lang::XMultiServiceFactory> xMSF; + void Init() override + { + try + { + const sal_uInt16 nCmdParams = GetCommandLineParamCount(); + + if (nCmdParams == 0) + showHelp(); + else + { + OUString aArg = GetCommandLineParam(0); + + if (aArg == "--help" || aArg == "-h") + showHelp(); + else + maFileName = aArg; + } + + uno::Reference<uno::XComponentContext> xComponentContext + = ::cppu::defaultBootstrap_InitialComponentContext(); + xMSF.set(xComponentContext->getServiceManager(), uno::UNO_QUERY); + if(!xMSF.is()) + Application::Abort("Bootstrap failure - no service manager"); + + ::comphelper::setProcessServiceFactory(xMSF); + } + catch (const uno::Exception &e) + { + Application::Abort("Bootstrap exception " + e.Message); + } + } + + void DeInit() override + { + uno::Reference< lang::XComponent >( + comphelper::getProcessComponentContext(), + uno::UNO_QUERY_THROW)-> dispose(); + ::comphelper::setProcessServiceFactory(nullptr); + } + +}; + +} + +void vclmain::createApplication() +{ + static DemoMtfApp aApp; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/mtpfuzzer.cxx b/vcl/workben/mtpfuzzer.cxx new file mode 100644 index 000000000..8ed271ced --- /dev/null +++ b/vcl/workben/mtpfuzzer.cxx @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping* lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { { 0, 0 } }; + + return map; +} + +const lib_to_constructor_mapping* lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { { 0, 0 } }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; } + +extern "C" bool TestImportMathType(SvStream& rStream); + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportMathType(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/mtpfuzzer.options b/vcl/workben/mtpfuzzer.options new file mode 100644 index 000000000..9e9bf3455 --- /dev/null +++ b/vcl/workben/mtpfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 16384 diff --git a/vcl/workben/olefuzzer.cxx b/vcl/workben/olefuzzer.cxx new file mode 100644 index 000000000..4d67ab57e --- /dev/null +++ b/vcl/workben/olefuzzer.cxx @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool TestImportOLE2(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + TestImportOLE2(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/olefuzzer.options b/vcl/workben/olefuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/olefuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pcdfuzzer.cxx b/vcl/workben/pcdfuzzer.cxx new file mode 100644 index 000000000..ccd036753 --- /dev/null +++ b/vcl/workben/pcdfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool icdGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)icdGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pcdfuzzer.options b/vcl/workben/pcdfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/pcdfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pctfuzzer.cxx b/vcl/workben/pctfuzzer.cxx new file mode 100644 index 000000000..a916920c4 --- /dev/null +++ b/vcl/workben/pctfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool iptGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)iptGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pctfuzzer.options b/vcl/workben/pctfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/pctfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pcxfuzzer.cxx b/vcl/workben/pcxfuzzer.cxx new file mode 100644 index 000000000..e2b72fb7e --- /dev/null +++ b/vcl/workben/pcxfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool ipxGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ipxGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pcxfuzzer.options b/vcl/workben/pcxfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/pcxfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pngfuzzer.cxx b/vcl/workben/pngfuzzer.cxx new file mode 100644 index 000000000..2a3357830 --- /dev/null +++ b/vcl/workben/pngfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/pngread.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + vcl::PNGReader aReader(aStream); + (void)aReader.Read(); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pngfuzzer.options b/vcl/workben/pngfuzzer.options new file mode 100644 index 000000000..d62b77341 --- /dev/null +++ b/vcl/workben/pngfuzzer.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 65536 +dict = png.dict diff --git a/vcl/workben/ppmfuzzer.cxx b/vcl/workben/ppmfuzzer.cxx new file mode 100644 index 000000000..854d457c5 --- /dev/null +++ b/vcl/workben/ppmfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool ipbGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ipbGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/ppmfuzzer.options b/vcl/workben/ppmfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/ppmfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pptfuzzer.cxx b/vcl/workben/pptfuzzer.cxx new file mode 100644 index 000000000..d7f6b73f9 --- /dev/null +++ b/vcl/workben/pptfuzzer.cxx @@ -0,0 +1,135 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * sd_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); +void * ucb_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation( void *, void * ); +void * com_sun_star_drawing_SvxShapeCollection_get_implementation( void *, void * ); +void * SfxDocumentMetaData_get_implementation( void *, void * ); +void * unoxml_component_getFactory( const char* , void* , void* ); +void * com_sun_star_animations_AnimateColor_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateMotion_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateSet_get_implementation( void *, void * ); +void * com_sun_star_animations_AnimateTransform_get_implementation( void *, void * ); +void * com_sun_star_animations_Animate_get_implementation( void *, void * ); +void * com_sun_star_animations_Audio_get_implementation( void *, void * ); +void * com_sun_star_animations_Command_get_implementation( void *, void * ); +void * com_sun_star_animations_IterateContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_ParallelTimeContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_SequenceTimeContainer_get_implementation( void *, void * ); +void * com_sun_star_animations_TransitionFilter_get_implementation( void *, void * ); +void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * ); +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { "libsdlo.a", sd_component_getFactory }, + { "libunoxmllo.a", unoxml_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { "libucb1.a", ucb_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation", com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation }, + { "com_sun_star_drawing_SvxShapeCollection_get_implementation", com_sun_star_drawing_SvxShapeCollection_get_implementation }, + { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation }, + { "com_sun_star_animations_AnimateColor_get_implementation", com_sun_star_animations_AnimateColor_get_implementation }, + { "com_sun_star_animations_AnimateMotion_get_implementation", com_sun_star_animations_AnimateMotion_get_implementation }, + { "com_sun_star_animations_AnimateSet_get_implementation", com_sun_star_animations_AnimateSet_get_implementation }, + { "com_sun_star_animations_AnimateTransform_get_implementation", com_sun_star_animations_AnimateTransform_get_implementation }, + { "com_sun_star_animations_Animate_get_implementation", com_sun_star_animations_Animate_get_implementation }, + { "com_sun_star_animations_Audio_get_implementation", com_sun_star_animations_Audio_get_implementation }, + { "com_sun_star_animations_Command_get_implementation", com_sun_star_animations_Command_get_implementation }, + { "com_sun_star_animations_IterateContainer_get_implementation", com_sun_star_animations_IterateContainer_get_implementation }, + { "com_sun_star_animations_ParallelTimeContainer_get_implementation", com_sun_star_animations_ParallelTimeContainer_get_implementation }, + { "com_sun_star_animations_SequenceTimeContainer_get_implementation", com_sun_star_animations_SequenceTimeContainer_get_implementation }, + { "com_sun_star_animations_TransitionFilter_get_implementation", com_sun_star_animations_TransitionFilter_get_implementation }, + { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag }, + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SdCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportPPT(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + if (__lsan_disable) + __lsan_disable(); + + CommonInitialize(argc, argv); + + comphelper::getProcessServiceFactory()->createInstance("com.sun.star.comp.Draw.PresentationDocument"); + + if (__lsan_enable) + __lsan_enable(); + + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportPPT(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pptfuzzer.options b/vcl/workben/pptfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/pptfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/pptxfuzzer.cxx b/vcl/workben/pptxfuzzer.cxx new file mode 100644 index 000000000..976b53d9b --- /dev/null +++ b/vcl/workben/pptxfuzzer.cxx @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" bool TestImportPPTX(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" void* SdCreateDialogFactory() { return nullptr; } + +extern "C" void* com_sun_star_comp_Draw_VisioImportFilter_get_implementation() { return nullptr; } + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportPPTX(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/pptxfuzzer.options b/vcl/workben/pptxfuzzer.options new file mode 100644 index 000000000..db9a3e8c6 --- /dev/null +++ b/vcl/workben/pptxfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 98304 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/psdfuzzer.cxx b/vcl/workben/psdfuzzer.cxx new file mode 100644 index 000000000..a1bb1823d --- /dev/null +++ b/vcl/workben/psdfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool ipdGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ipdGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/psdfuzzer.options b/vcl/workben/psdfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/psdfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/qpwfuzzer.cxx b/vcl/workben/qpwfuzzer.cxx new file mode 100644 index 000000000..0b1fe6362 --- /dev/null +++ b/vcl/workben/qpwfuzzer.cxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_Collator_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_Collator_get_implementation", com_sun_star_i18n_Collator_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* ScCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportQPW(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportQPW(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/qpwfuzzer.options b/vcl/workben/qpwfuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/qpwfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/rasfuzzer.cxx b/vcl/workben/rasfuzzer.cxx new file mode 100644 index 000000000..734180b59 --- /dev/null +++ b/vcl/workben/rasfuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool iraGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)iraGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/rasfuzzer.options b/vcl/workben/rasfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/rasfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/rtffuzzer.cxx b/vcl/workben/rtffuzzer.cxx new file mode 100644 index 000000000..5f2ac75e8 --- /dev/null +++ b/vcl/workben/rtffuzzer.cxx @@ -0,0 +1,90 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_comp_Writer_RtfFilter_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_comp_Writer_RtfFilter_get_implementation", com_sun_star_comp_Writer_RtfFilter_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportRTF(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportRTF(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/rtffuzzer.options b/vcl/workben/rtffuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/rtffuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/scrtffuzzer.cxx b/vcl/workben/scrtffuzzer.cxx new file mode 100644 index 000000000..779519f34 --- /dev/null +++ b/vcl/workben/scrtffuzzer.cxx @@ -0,0 +1,83 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void* i18npool_component_getFactory(const char*, void*, void*); + +void* com_sun_star_i18n_LocaleDataImpl_get_implementation(void*, void*); +void* com_sun_star_i18n_BreakIterator_Unicode_get_implementation(void*, void*); +void* com_sun_star_i18n_BreakIterator_get_implementation(void*, void*); +void* com_sun_star_comp_framework_Desktop_get_implementation(void*, void*); +void* com_sun_star_i18n_CharacterClassification_Unicode_get_implementation(void*, void*); +void* com_sun_star_i18n_CharacterClassification_get_implementation(void*, void*); +void* com_sun_star_i18n_NativeNumberSupplier_get_implementation(void*, void*); +void* com_sun_star_i18n_NumberFormatCodeMapper_get_implementation(void*, void*); +void* com_sun_star_i18n_Transliteration_get_implementation(void*, void*); +} + +const lib_to_factory_mapping* lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] + = { { "libi18npoollo.a", i18npool_component_getFactory }, { 0, 0 } }; + + return map; +} + +const lib_to_constructor_mapping* lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] + = { { "com_sun_star_i18n_LocaleDataImpl_get_implementation", + com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", + com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", + com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", + com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", + com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", + com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", + com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", + com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", + com_sun_star_i18n_Transliteration_get_implementation }, + { 0, 0 } }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; } + +extern "C" void* ScCreateDialogFactory() { return nullptr; } + +extern "C" bool TestImportCalcRTF(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportCalcRTF(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/scrtffuzzer.options b/vcl/workben/scrtffuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/scrtffuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/sftfuzzer.cxx b/vcl/workben/sftfuzzer.cxx new file mode 100644 index 000000000..fc951ddc1 --- /dev/null +++ b/vcl/workben/sftfuzzer.cxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <vcl/font.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping* lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { { 0, 0 } }; + + return map; +} + +const lib_to_constructor_mapping* lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { { 0, 0 } }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; } + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + (void)vcl::Font::identifyFont(data, size); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/sftfuzzer.options b/vcl/workben/sftfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/sftfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/slkfuzzer.cxx b/vcl/workben/slkfuzzer.cxx new file mode 100644 index 000000000..9b8463bdc --- /dev/null +++ b/vcl/workben/slkfuzzer.cxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_Collator_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_Collator_get_implementation", com_sun_star_i18n_Collator_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* ScCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportSLK(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportSLK(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/slkfuzzer.options b/vcl/workben/slkfuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/slkfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/svdem.cxx b/vcl/workben/svdem.cxx new file mode 100644 index 000000000..399a3683f --- /dev/null +++ b/vcl/workben/svdem.cxx @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 . + */ + +#include <sal/main.h> +#include <sal/log.hxx> +#include <tools/diagnose_ex.h> +#include <tools/extendapplicationenvironment.hxx> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +// Forward declaration +static void Main(); + +SAL_IMPLEMENT_MAIN() +{ + try + { + tools::extendApplicationEnvironment(); + + Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext(); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + + comphelper::setProcessServiceFactory( xServiceManager ); + + InitVCL(); + ::Main(); + DeInitVCL(); + } + catch (const Exception&) + { + TOOLS_WARN_EXCEPTION("vcl.app", "Fatal"); + return 1; + } + catch (const std::exception &e) + { + fprintf(stderr, "fatal error: %s\n", e.what()); + return 1; + } + + return 0; +} + +namespace { + +class MyWin : public WorkWindow +{ +public: + MyWin( vcl::Window* pParent, WinBits nWinStyle ); +}; + +} + +void Main() +{ + ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_APP | WB_STDWORK ); + aMainWin->SetText("VCL - Workbench"); + aMainWin->Show(); + + Application::Execute(); +} + +MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) : + WorkWindow( pParent, nWinStyle ) +{ +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/svmfuzzer.cxx b/vcl/workben/svmfuzzer.cxx new file mode 100644 index 000000000..5ef7366c1 --- /dev/null +++ b/vcl/workben/svmfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/gdimtf.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + GDIMetaFile aGDIMetaFile; + ReadGDIMetaFile(aStream, aGDIMetaFile); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/svmfuzzer.options b/vcl/workben/svmfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/svmfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/svpclient.cxx b/vcl/workben/svpclient.cxx new file mode 100644 index 000000000..5d7cf8b9a --- /dev/null +++ b/vcl/workben/svpclient.cxx @@ -0,0 +1,283 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 . + */ + +#include <sal/main.h> +#include <sal/log.hxx> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/button.hxx> +#include <vcl/lstbox.hxx> +#include <vcl/fixed.hxx> +#include <vcl/bitmapex.hxx> +#include <vcl/graphicfilter.hxx> +#include <vcl/graph.hxx> +#include <tools/diagnose_ex.h> +#include <tools/extendapplicationenvironment.hxx> +#include <tools/stream.hxx> + +#include <rtl/strbuf.hxx> +#include <rtl/ustrbuf.hxx> + +#include <math.h> + +#include <errno.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +// Forward declaration +static void Main(); + +SAL_IMPLEMENT_MAIN() +{ + try + { + tools::extendApplicationEnvironment(); + + // create the global service-manager + Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext(); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + + comphelper::setProcessServiceFactory( xServiceManager ); + + InitVCL(); + ::Main(); + DeInitVCL(); + } + catch (const Exception&) + { + TOOLS_WARN_EXCEPTION("vcl", "Fatal"); + return 1; + } + catch (const std::exception& e) + { + SAL_WARN("vcl", "Fatal: " << e.what()); + return 1; + } + + return 0; +} + +namespace { + +class MyWin : public WorkWindow +{ + VclPtr<PushButton> m_aListButton; + VclPtr<ListBox> m_aSvpBitmaps; + VclPtr<FixedImage> m_aImage; + VclPtr<PushButton> m_aQuitButton; +public: + MyWin( vcl::Window* pParent, WinBits nWinStyle ); + + virtual bool Close() override; + virtual ~MyWin() override { disposeOnce(); } + virtual void dispose() override; + + void parseList( const OString& rList ); + static OString processCommand( const OString& rCommand ); + + DECL_LINK( ListHdl, Button*, void ); + DECL_LINK( SelectHdl, ListBox&, void ); + DECL_STATIC_LINK( MyWin, QuitHdl, Button*, void ); +}; + +} + +void Main() +{ + ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_STDWORK ); + aMainWin->SetText( "SvpClient" ); + aMainWin->Show(); + + Application::Execute(); +} + +MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) : + WorkWindow( pParent, nWinStyle ), + m_aListButton(VclPtr<PushButton>::Create(this, 0)), + m_aSvpBitmaps(VclPtr<ListBox>::Create(this, WB_BORDER)), + m_aImage(VclPtr<FixedImage>::Create(this, WB_BORDER)), + m_aQuitButton(VclPtr<PushButton>::Create(this, 0)) +{ + m_aListButton->SetPosSizePixel( Point( 10, 10 ), Size( 120, 25 ) ); + m_aListButton->SetText( "List Elements" ); + m_aListButton->SetClickHdl( LINK( this, MyWin, ListHdl ) ); + m_aListButton->Show(); + + m_aSvpBitmaps->SetPosSizePixel( Point( 10, 40 ), Size( 150, 150 ) ); + m_aSvpBitmaps->SetSelectHdl( LINK( this, MyWin, SelectHdl ) ); + m_aSvpBitmaps->Show(); + + m_aImage->SetPosSizePixel( Point( 170, 10 ), Size( 400, 400 ) ); + m_aImage->Show(); + + m_aQuitButton->SetPosSizePixel( Point( 10, 300 ), Size( 120,25 ) ); + m_aQuitButton->SetText( "Quit SVP server" ); + m_aQuitButton->SetClickHdl( LINK( this, MyWin, QuitHdl ) ); + m_aQuitButton->Show(); +} + +bool MyWin::Close() +{ + bool bRet = WorkWindow::Close(); + if( bRet ) + Application::Quit(); + return bRet; +} + +void MyWin::dispose() +{ + m_aListButton.disposeAndClear(); + m_aSvpBitmaps.disposeAndClear(); + m_aImage.disposeAndClear(); + m_aQuitButton.disposeAndClear(); + WorkWindow::dispose(); +} + +void MyWin::parseList( const OString& rList ) +{ + sal_Int32 nTokenPos = 0; + OUString aElementType; + m_aSvpBitmaps->Clear(); + while( nTokenPos >= 0 ) + { + OString aLine = rList.getToken( 0, '\n', nTokenPos ); + if( ! aLine.getLength() || *aLine.getStr() == '#' ) + continue; + + if( aLine.startsWith( "ElementType: " ) ) + aElementType = OStringToOUString( aLine.copy( 13 ), RTL_TEXTENCODING_ASCII_US ); + else + { + OUString aNewElement = + aElementType + ": " + + OStringToOUString( aLine, RTL_TEXTENCODING_ASCII_US ); + m_aSvpBitmaps->InsertEntry( aNewElement ); + } + } +} + +OString MyWin::processCommand( const OString& rCommand ) +{ + static const char* pEnv = getenv("SVP_LISTENER_PORT"); + OStringBuffer aAnswer; + int nPort = (pEnv && *pEnv) ? atoi(pEnv) : 8000; + int nSocket = socket( PF_INET, SOCK_STREAM, 0 ); + if( nSocket >= 0) + { + struct sockaddr_in addr; + memset(&addr, 0, sizeof(struct sockaddr_in)); + addr.sin_family = AF_INET; + addr.sin_port = htons(nPort); + addr.sin_addr.s_addr = INADDR_ANY; + if( connect( nSocket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr) ) ) + { + perror( "SvpElementContainer: connect() failed" ); + } + else + { + ssize_t nBytes = 0; + ssize_t fd = write( nSocket, rCommand.getStr(), rCommand.getLength() ); + + if (fd == 0) + SAL_WARN("vcl", "Connection closed on other end"); + else if (fd < 0) + SAL_WARN("vcl", "Error writing to socket: " << strerror( errno )); + + fd = write( nSocket, "\n", 1 ); + + if (fd == 0) + SAL_WARN("vcl", "Connection closed on other end"); + else if (fd < 0) + SAL_WARN("vcl", "Error writing to socket: " << strerror( errno )); + + + char buf[256]; + do + { + nBytes = read( nSocket, buf, sizeof(buf) ); + aAnswer.append( buf, nBytes ); + } while( nBytes == sizeof( buf ) ); + } + close(nSocket); + } + else + perror( "SvpElementContainer: socket() failed\n" ); + return aAnswer.makeStringAndClear(); +} + +IMPL_LINK_NOARG( MyWin, ListHdl, Button*, void) +{ + parseList( processCommand( "list" ) ); +} + +IMPL_STATIC_LINK_NOARG( MyWin, QuitHdl, Button*, void) +{ + processCommand( "quit" ); +} + +IMPL_LINK_NOARG( MyWin, SelectHdl, ListBox&, void) +{ + OUString aEntry = m_aSvpBitmaps->GetSelectedEntry(); + sal_Int32 nPos = aEntry.indexOf( ": " ); + if( nPos == -1 ) + return; + + OString aCommand = + "get " + + OUStringToOString( aEntry.copy( nPos+2 ), RTL_TEXTENCODING_ASCII_US ); + OString aAnswer( processCommand( aCommand ) ); + SvMemoryStream aStream( aAnswer.getLength() ); + aStream.WriteBytes( aAnswer.getStr(), aAnswer.getLength() ); + aStream.Seek( STREAM_SEEK_TO_BEGIN ); + + Graphic aGraphicResult; + GraphicFilter &rFilter = GraphicFilter::GetGraphicFilter(); + rFilter.ImportGraphic( aGraphicResult, OUString("import"), aStream ); + + BitmapEx aBitmap = aGraphicResult.GetBitmapEx(); + + SAL_INFO("vcl", "got bitmap of size " << aBitmap.GetSizePixel().Width() << "x" << aBitmap.GetSizePixel().Height()); + Size aFixedSize( aBitmap.GetSizePixel() ); + aFixedSize.AdjustWidth(10 ); + aFixedSize.AdjustHeight(10 ); + m_aImage->SetSizePixel( aFixedSize ); + m_aImage->SetImage( Image( aBitmap ) ); + +} + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/svptest.cxx b/vcl/workben/svptest.cxx new file mode 100644 index 000000000..06937d225 --- /dev/null +++ b/vcl/workben/svptest.cxx @@ -0,0 +1,328 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 . + */ + +#include <sal/main.h> +#include <sal/log.hxx> +#include <tools/diagnose_ex.h> +#include <tools/extendapplicationenvironment.hxx> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/gradient.hxx> +#include <vcl/lineinfo.hxx> +#include <vcl/bitmap.hxx> +#include <vcl/bitmapaccess.hxx> +#include <vcl/metric.hxx> +#include <vcl/vclptr.hxx> +#include <bitmapwriteaccess.hxx> + +#include <rtl/ustrbuf.hxx> + +#include <math.h> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +// Forward declaration +static void Main(); + +SAL_IMPLEMENT_MAIN() +{ + try + { + tools::extendApplicationEnvironment(); + + Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext(); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + + comphelper::setProcessServiceFactory( xServiceManager ); + + InitVCL(); + ::Main(); + DeInitVCL(); + } + catch (const Exception&) + { + TOOLS_WARN_EXCEPTION("vcl.app", "Fatal"); + return 1; + } + catch (const std::exception &e) + { + fprintf(stderr, "fatal error: %s\n", e.what()); + return 1; + } + + return 0; +} + +namespace { + +class MyWin : public WorkWindow +{ + Bitmap m_aBitmap; +public: + MyWin( vcl::Window* pParent, WinBits nWinStyle ); + + virtual void Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect ) override; +}; + +} + +void Main() +{ + ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_APP | WB_STDWORK ); + aMainWin->SetText( "VCL - Workbench" ); + aMainWin->Show(); + + Application::Execute(); +} + +MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) : + WorkWindow( pParent, nWinStyle ), + m_aBitmap( Size( 256, 256 ), 32 ) +{ + // prepare an alpha mask + BitmapWriteAccess* pAcc = m_aBitmap.AcquireWriteAccess(); + for( int nX = 0; nX < 256; nX++ ) + { + for( int nY = 0; nY < 256; nY++ ) + { + double fRed = 255.0-1.5*sqrt(static_cast<double>(nX*nX+nY*nY)); + if( fRed < 0.0 ) + fRed = 0.0; + double fGreen = 255.0-1.5*sqrt(static_cast<double>((255-nX)*(255-nX)+nY*nY)); + if( fGreen < 0.0 ) + fGreen = 0.0; + double fBlue = 255.0-1.5*sqrt(static_cast<double>((128-nX)*(128-nX)+(255-nY)*(255-nY))); + if( fBlue < 0.0 ) + fBlue = 0.0; + pAcc->SetPixel( nY, nX, BitmapColor( sal_uInt8(fRed), sal_uInt8(fGreen), sal_uInt8(fBlue) ) ); + } + } + Bitmap::ReleaseAccess( pAcc ); +} + +static Point project( const Point& rPoint ) +{ + const double angle_x = M_PI / 6.0; + const double angle_z = M_PI / 6.0; + + // transform planar coordinates to 3d + double x = rPoint.X(); + double y = rPoint.Y(); + + // rotate around X axis + double x1 = x; + double y1 = y * cos( angle_x ); + double z1 = y * sin( angle_x ); + + // rotate around Z axis + double x2 = x1 * cos( angle_z ) + y1 * sin( angle_z ); + //double y2 = y1 * cos( angle_z ) - x1 * sin( angle_z ); + double z2 = z1; + + return Point( static_cast<sal_Int32>(x2), static_cast<sal_Int32>(z2) ); +} + +static Color approachColor( const Color& rFrom, const Color& rTo ) +{ + Color aColor; + sal_uInt8 nDiff; + // approach red + if( rFrom.GetRed() < rTo.GetRed() ) + { + nDiff = rTo.GetRed() - rFrom.GetRed(); + aColor.SetRed( rFrom.GetRed() + std::min<sal_uInt8>( nDiff, 10 ) ); + } + else if( rFrom.GetRed() > rTo.GetRed() ) + { + nDiff = rFrom.GetRed() - rTo.GetRed(); + aColor.SetRed( rFrom.GetRed() - std::min<sal_uInt8>( nDiff, 10 ) ); + } + else + aColor.SetRed( rFrom.GetRed() ); + + // approach Green + if( rFrom.GetGreen() < rTo.GetGreen() ) + { + nDiff = rTo.GetGreen() - rFrom.GetGreen(); + aColor.SetGreen( rFrom.GetGreen() + std::min<sal_uInt8>( nDiff, 10 ) ); + } + else if( rFrom.GetGreen() > rTo.GetGreen() ) + { + nDiff = rFrom.GetGreen() - rTo.GetGreen(); + aColor.SetGreen( rFrom.GetGreen() - std::min<sal_uInt8>( nDiff, 10 ) ); + } + else + aColor.SetGreen( rFrom.GetGreen() ); + + // approach blue + if( rFrom.GetBlue() < rTo.GetBlue() ) + { + nDiff = rTo.GetBlue() - rFrom.GetBlue(); + aColor.SetBlue( rFrom.GetBlue() + std::min<sal_uInt8>( nDiff, 10 ) ); + } + else if( rFrom.GetBlue() > rTo.GetBlue() ) + { + nDiff = rFrom.GetBlue() - rTo.GetBlue(); + aColor.SetBlue( rFrom.GetBlue() - std::min<sal_uInt8>( nDiff, 10 ) ); + } + else + aColor.SetBlue( rFrom.GetBlue() ); + + return aColor; +} + +#define DELTA 5.0 +void MyWin::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) +{ + WorkWindow::Paint(rRenderContext, rRect); + + rRenderContext.Push(); + MapMode aMapMode(MapUnit::Map100thMM); + + rRenderContext.SetMapMode(aMapMode); + + Size aPaperSize = rRenderContext.GetOutputSize(); + Point aCenter(aPaperSize.Width() / 2 - 300, + (aPaperSize.Height() - 8400) / 2 + 8400); + Point aP1(aPaperSize.Width() / 48, 0), aP2(aPaperSize.Width() / 40, 0); + Point aPoint; + + rRenderContext.DrawRect(tools::Rectangle(Point(0, 0), aPaperSize)); + rRenderContext.DrawRect(tools::Rectangle(Point(100, 100), + Size(aPaperSize.Width() - 200, + aPaperSize.Height() - 200))); + rRenderContext.DrawRect(tools::Rectangle(Point(200, 200), + Size(aPaperSize.Width() - 400, + aPaperSize.Height() - 400))); + rRenderContext.DrawRect(tools::Rectangle(Point(300, 300), + Size(aPaperSize.Width() - 600, + aPaperSize.Height() - 600))); + + const int nFontCount = rRenderContext.GetDevFontCount(); + const int nFontSamples = (nFontCount < 15) ? nFontCount : 15; + for (int i = 0; i < nFontSamples; ++i) + { + + FontMetric aFont = rRenderContext.GetDevFont((i * nFontCount) / nFontSamples); + aFont.SetFontHeight(400 + (i % 7) * 100); + aFont.SetOrientation(i * (3600 / nFontSamples)); + rRenderContext.SetFont(aFont); + + sal_uInt8 nRed = (i << 6) & 0xC0; + sal_uInt8 nGreen = (i << 4) & 0xC0; + sal_uInt8 nBlue = (i << 2) & 0xC0; + rRenderContext.SetTextColor(Color(nRed, nGreen, nBlue)); + + OUString aPrintText = "SVP test program"; + + rRenderContext.DrawText(tools::Rectangle(Point((aPaperSize.Width() - 4000) / 2, 2000), + Size(aPaperSize.Width() - 2100, aPaperSize.Height() - 4000)), + aPrintText, + DrawTextFlags::MultiLine); + } + + rRenderContext.SetFillColor(); + DrawRect(tools::Rectangle(Point(aPaperSize.Width() - 4000, 1000), + Size(3000, 3000))); + rRenderContext.DrawBitmap(Point(aPaperSize.Width() - 4000, 1000), + Size( 3000,3000 ), + m_aBitmap); + + Color const aWhite(0xff, 0xff, 0xff); + Color const aBlack(0, 0, 0); + Color const aLightRed(0xff, 0, 0); + Color const aDarkRed(0x40, 0, 0); + Color const aLightBlue(0, 0, 0xff); + Color const aDarkBlue(0,0,0x40); + Color const aLightGreen(0, 0xff, 0); + Color const aDarkGreen(0, 0x40, 0); + + Gradient aGradient(GradientStyle::Linear, aBlack, aWhite); + aGradient.SetAngle(900); + rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 4500), + Size(aPaperSize.Width() - 2000, 500)), + aGradient); + aGradient.SetStartColor(aDarkRed); + aGradient.SetEndColor(aLightBlue); + rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 5300), + Size(aPaperSize.Width() - 2000, 500)), + aGradient); + aGradient.SetStartColor(aDarkBlue); + aGradient.SetEndColor(aLightGreen); + rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 6100), + Size(aPaperSize.Width() - 2000, 500)), + aGradient); + aGradient.SetStartColor(aDarkGreen); + aGradient.SetEndColor(aLightRed); + rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 6900), + Size(aPaperSize.Width() - 2000, 500)), + aGradient); + + LineInfo aLineInfo(LineStyle::Solid, 200); + const double sind = sin(basegfx::deg2rad(DELTA)); + const double cosd = cos(basegfx::deg2rad(DELTA)); + const double factor = 1 + (DELTA / 1000.0); + int n = 0; + Color aLineColor(0, 0, 0); + Color aApproachColor(0, 0, 200); + + while (aP2.X() < aCenter.X() && n++ < 680) + { + aLineInfo.SetWidth(n / 3); + aLineColor = approachColor(aLineColor, aApproachColor); + rRenderContext.SetLineColor(aLineColor); + + // switch approach color + if (aApproachColor.IsRGBEqual(aLineColor)) + { + if (aApproachColor.GetRed()) + aApproachColor = Color(0, 0, 200); + else if (aApproachColor.GetGreen()) + aApproachColor = Color(200, 0, 0); + else + aApproachColor = Color(0, 200, 0); + } + + rRenderContext.DrawLine(project(aP1) + aCenter, + project(aP2) + aCenter, + aLineInfo); + aPoint.setX( static_cast<int>((static_cast<double>(aP1.X())*cosd - static_cast<double>(aP1.Y())*sind)*factor) ); + aPoint.setY( static_cast<int>((static_cast<double>(aP1.Y())*cosd + static_cast<double>(aP1.X())*sind)*factor) ); + aP1 = aPoint; + aPoint.setX( static_cast<int>((static_cast<double>(aP2.X())*cosd - static_cast<double>(aP2.Y())*sind)*factor) ); + aPoint.setY( static_cast<int>((static_cast<double>(aP2.Y())*cosd + static_cast<double>(aP2.X())*sind)*factor) ); + aP2 = aPoint; + } + rRenderContext.Pop(); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/tgafuzzer.cxx b/vcl/workben/tgafuzzer.cxx new file mode 100644 index 000000000..47ba63b71 --- /dev/null +++ b/vcl/workben/tgafuzzer.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool itgGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)itgGraphicImport(aStream, aGraphic, nullptr); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/tgafuzzer.options b/vcl/workben/tgafuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/tgafuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/tiffuzzer.cxx b/vcl/workben/tiffuzzer.cxx new file mode 100644 index 000000000..2ca83d7b0 --- /dev/null +++ b/vcl/workben/tiffuzzer.cxx @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" bool itiGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + try + { + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)itiGraphicImport(aStream, aGraphic, nullptr); + } + catch (...) + { + } + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/tiffuzzer.options b/vcl/workben/tiffuzzer.options new file mode 100644 index 000000000..f0ed890b6 --- /dev/null +++ b/vcl/workben/tiffuzzer.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 65536 +dict = tiff.dict diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx new file mode 100644 index 000000000..13bdfed95 --- /dev/null +++ b/vcl/workben/vcldemo.cxx @@ -0,0 +1,2450 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <sal/config.h> + +#include <memory> + +#include <config_features.h> + +#include <math.h> +#include <rtl/math.hxx> +#include <sal/log.hxx> + +#include <comphelper/processfactory.hxx> +#include <comphelper/random.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <com/sun/star/registry/XSimpleRegistry.hpp> +#include <com/sun/star/ucb/UniversalContentBroker.hpp> +#include <com/sun/star/uno/Reference.hxx> +#include <com/sun/star/uno/Sequence.hxx> +#include <com/sun/star/container/XNameAccess.hpp> +#include <o3tl/safeint.hxx> +#include <osl/time.h> +#include <vcl/gradient.hxx> +#include <vcl/vclmain.hxx> +#include <vcl/layout.hxx> +#include <vcl/ptrstyle.hxx> +#include <salhelper/thread.hxx> + +#include <tools/diagnose_ex.h> +#include <tools/urlobj.hxx> +#include <tools/stream.hxx> +#include <vcl/svapp.hxx> +#include <vcl/pngread.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/virdev.hxx> +#include <vcl/graphicfilter.hxx> +#include <vcl/button.hxx> +#include <vcl/toolkit/combobox.hxx> +#include <vcl/toolbox.hxx> +#include <vcl/pngwrite.hxx> +#include <vcl/floatwin.hxx> +#include <vcl/bitmapaccess.hxx> +#include <vcl/help.hxx> +#include <vcl/menu.hxx> +#include <vcl/ImageTree.hxx> +#include <vcl/BitmapEmbossGreyFilter.hxx> +#include <bitmapwriteaccess.hxx> + +#include <basegfx/numeric/ftools.hxx> +#include <basegfx/matrix/b2dhommatrix.hxx> +#include <opengl/zone.hxx> + +// internal headers for OpenGLTests class. +#if HAVE_FEATURE_OPENGL +#include <salgdi.hxx> +#include <salframe.hxx> +#include <opengl/gdiimpl.hxx> +#include <opengl/texture.hxx> +#include <opengl/framebuffer.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> +#endif + +#define FIXME_SELF_INTERSECTING_WORKING 0 +#define FIXME_BOUNCE_BUTTON 0 +#define THUMB_REPEAT_FACTOR 10 + +using namespace com::sun::star; + +namespace { + double getTimeNow() + { + TimeValue aValue; + osl_getSystemTime(&aValue); + return static_cast<double>(aValue.Seconds) * 1000 + + static_cast<double>(aValue.Nanosec) / (1000*1000); + } + +} + +namespace { + +enum RenderStyle { + RENDER_THUMB, // small view <n> to a page + RENDER_EXPANDED, // expanded view of this renderer +}; + +class DemoRenderer +{ + Bitmap maIntroBW; + BitmapEx maIntro; + + int mnSegmentsX; + int mnSegmentsY; + + struct RenderContext { + RenderStyle meStyle; + bool mbVDev; + DemoRenderer *mpDemoRenderer; + Size maSize; + }; + struct RegionRenderer { + public: + RegionRenderer() : + sumTime(0), + countTime(0) + { } + virtual ~RegionRenderer() {} + virtual OUString getName() = 0; + virtual sal_uInt16 getAccelerator() = 0; + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) = 0; + // repeating count for profiling (to exceed the poor time resolution on Windows) + virtual sal_uInt16 getTestRepeatCount() = 0; +#define RENDER_DETAILS(name,key,repeat) \ + virtual OUString getName() override \ + { return SAL_STRINGIFY(name); } \ + virtual sal_uInt16 getAccelerator() override \ + { return key; } \ + virtual sal_uInt16 getTestRepeatCount() override \ + { return repeat; } + + double sumTime; + int countTime; + }; + + std::vector< RegionRenderer * > maRenderers; + sal_Int32 mnSelectedRenderer; + sal_Int32 iterCount; + + void InitRenderers(); + +public: + DemoRenderer() : mnSegmentsX(0) + , mnSegmentsY(0) + , mnSelectedRenderer(-1) + , iterCount(0) +#if FIXME_BOUNCE_BUTTON + , mpButton(NULL) + , mpButtonWin(NULL) + , mnBounceX(1) + , mnBounceY(1) +#endif + { + if (!Application::LoadBrandBitmap("intro", maIntro)) + Application::Abort("Failed to load intro image"); + + maIntroBW = maIntro.GetBitmap(); + + BitmapEx aTmpBmpEx(maIntroBW); + BitmapFilter::Filter(aTmpBmpEx, BitmapEmbossGreyFilter(0, 0)); + maIntroBW = aTmpBmpEx.GetBitmap(); + + InitRenderers(); + mnSegmentsY = rtl::math::round(std::sqrt(maRenderers.size()), 0, + rtl_math_RoundingMode_Down); + mnSegmentsX = (maRenderers.size() + mnSegmentsY - 1)/mnSegmentsY; + } + + OUString getRendererList(); + double getAndResetBenchmark(RenderStyle style); + void selectRenderer(const OUString &rName); + int selectNextRenderer(); + void setIterCount(sal_Int32 iterCount); + sal_Int32 getIterCount() const; + void addTime(int i, double t); + + Size maSize; + void SetSizePixel(const Size &rSize) { maSize = rSize; } + const Size& GetSizePixel() const { return maSize; } + + +// more of a 'Window' concept - push upwards ? +#if FIXME_BOUNCE_BUTTON + // Bouncing windows on click ... + PushButton *mpButton; + FloatingWindow *mpButtonWin; + AutoTimer maBounce; + int mnBounceX, mnBounceY; + DECL_LINK(BounceTimerCb, Timer*, void); +#endif + + bool MouseButtonDown(const MouseEvent& rMEvt); + void KeyInput(const KeyEvent& rKEvt); + + static std::vector<tools::Rectangle> partition(const tools::Rectangle &rRect, int nX, int nY) + { + std::vector<tools::Rectangle> aRegions = partition(rRect.GetSize(), nX, nY); + for (auto & region : aRegions) + region.Move(rRect.Left(), rRect.Top()); + + return aRegions; + } + + static std::vector<tools::Rectangle> partition(const RenderContext &rCtx, int nX, int nY) + { + return partition(rCtx.maSize, nX, nY); + } + + static std::vector<tools::Rectangle> partition(Size aSize, int nX, int nY) + { + tools::Rectangle r; + std::vector<tools::Rectangle> aRegions; + + // Make small cleared area for these guys + long nBorderSize = std::min(aSize.Height() / 32, aSize.Width() / 32); + long nBoxWidth = (aSize.Width() - nBorderSize*(nX+1)) / nX; + long nBoxHeight = (aSize.Height() - nBorderSize*(nY+1)) / nY; + for (int y = 0; y < nY; y++) + { + for (int x = 0; x < nX; x++) + { + r.SetPos(Point(nBorderSize + (nBorderSize + nBoxWidth) * x, + nBorderSize + (nBorderSize + nBoxHeight) * y)); + r.SetSize(Size(nBoxWidth, nBoxHeight)); + aRegions.push_back(r); + } + } + + return aRegions; + } + + static void clearRects(OutputDevice &rDev, std::vector<tools::Rectangle> &rRects) + { + for (size_t i = 0; i < rRects.size(); i++) + { + // knock up a nice little border + rDev.SetLineColor(COL_GRAY); + rDev.SetFillColor(COL_LIGHTGRAY); + if (i % 2) + { + int nBorderSize = rRects[i].GetWidth() / 5; + rDev.DrawRect(rRects[i], nBorderSize, nBorderSize); + } + else + rDev.DrawRect(rRects[i]); + } + } + + static void drawBackground(OutputDevice &rDev, const tools::Rectangle& r) + { + rDev.Erase(); + Gradient aGradient; + aGradient.SetStartColor(COL_BLUE); + aGradient.SetEndColor(COL_GREEN); + aGradient.SetStyle(GradientStyle::Linear); + rDev.DrawGradient(r, aGradient); + } + + struct DrawLines : public RegionRenderer + { + RENDER_DETAILS(lines,KEY_L,100) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + if (rCtx.meStyle == RENDER_EXPANDED) + { + AntialiasingFlags nOldAA = rDev.GetAntialiasing(); + rDev.SetAntialiasing(AntialiasingFlags::EnableB2dDraw); + + std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx, 4, 4)); + DemoRenderer::clearRects(rDev, aRegions); + +#if 0 // FIXME: get this through to the backend ... + double nTransparency[] = { + 1.0, 1.0, 1.0, 1.0, + 0.8, 0.8, 0.8, 0.8, + 0.5, 0.5, 0.5, 0.5, + 0.1, 0.1, 0.1, 0.1 + }; +#endif + drawing::LineCap const eLineCaps[] = { + drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT, + drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT, + drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT, + drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT + }; + basegfx::B2DLineJoin const eJoins[] = { + basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round, + basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round, + basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round, + basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round + }; + double const aLineWidths[] = { + 10.0, 15.0, 20.0, 10.0, + 10.0, 15.0, 20.0, 10.0, + 10.0, 15.0, 20.0, 10.0, + 0.1, 1.0, 10.0, 50.0 + }; + for (size_t i = 0; i < aRegions.size(); i++) + { + // Half of them not-anti-aliased .. + if (i >= aRegions.size()/2) + rDev.SetAntialiasing(nOldAA); + + static const struct { + double nX, nY; + } aPoints[] = { + { 0.2, 0.2 }, { 0.8, 0.3 }, { 0.7, 0.8 } + }; + rDev.SetLineColor(COL_BLACK); + basegfx::B2DPolygon aPoly; + tools::Rectangle aSub(aRegions[i]); + for (size_t j = 0; j < SAL_N_ELEMENTS(aPoints); j++) + { + aPoly.append(basegfx::B2DPoint(aSub.Left() + aSub.GetWidth() * aPoints[j].nX, + aSub.Top() + aSub.GetHeight() * aPoints[j].nY)); + } + rDev.DrawPolyLine(aPoly, aLineWidths[i], eJoins[i], eLineCaps[i]); + } + } + else + { + rDev.SetFillColor(COL_LIGHTRED); + rDev.SetLineColor(COL_BLACK); + rDev.DrawRect(r); + + for(long i=0; i<r.GetHeight(); i+=15) + rDev.DrawLine(Point(r.Left(), r.Top()+i), Point(r.Right(), r.Bottom()-i)); + for(long i=0; i<r.GetWidth(); i+=15) + rDev.DrawLine(Point(r.Left()+i, r.Bottom()), Point(r.Right()-i, r.Top())); + + // Should draw a white-line across the middle + Color aLastPixel(COL_WHITE); + Point aCenter((r.Left() + r.Right())/2 - 4, + (r.Top() + r.Bottom())/2 - 4); + for(int i=0; i<8; i++) + { + rDev.DrawPixel(aCenter, aLastPixel); + aLastPixel = rDev.GetPixel(aCenter); + aCenter.Move(1,1); + } + } + } + }; + + struct DrawText : public RegionRenderer + { + RENDER_DETAILS(text,KEY_T,1) + + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + if (rCtx.meStyle == RENDER_EXPANDED) + { + std::vector<tools::Rectangle> aToplevelRegions( + DemoRenderer::partition(rCtx, 1, 3)); + std::vector<tools::Rectangle> aSubRegions( + DemoRenderer::partition(aToplevelRegions[0], 4, 2)); + tools::Rectangle aBottom(aToplevelRegions[1].TopLeft(), + aToplevelRegions[2].BottomRight()); + DemoRenderer::clearRects(rDev,aSubRegions); + static struct { + bool mbClip; + bool mbArabicText; + bool mbRotate; + } const aRenderData[] = { + { false, false, false }, + { false, true, false }, + { false, true, true }, + { false, false, true }, + { true, false, true }, + { true, true, true }, + { true, true, false }, + { true, false, false }, + }; + + size_t i = 0; + for (int y = 0; y < 2; y++) + { + for (int x = 0; x < 4; x++) + { + assert(i < SAL_N_ELEMENTS(aRenderData)); + drawText(rDev, aSubRegions[i], aRenderData[i].mbClip, + aRenderData[i].mbArabicText, aRenderData[i].mbRotate); + i++; + } + } + + drawComplex(rDev, aBottom); + } + else + { + drawText(rDev, r, false, false, false); + } + } + + static void drawText (OutputDevice &rDev, tools::Rectangle r, bool bClip, bool bArabicText, bool bRotate) + { + rDev.SetClipRegion( vcl::Region(r) ); + + OUString const aLatinText("Click any rect to zoom!!!!"); + + const unsigned char pTextUTF8[] = { + 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xad, 0xd9, 0x90, + 0xd8, 0xaf, 0xd9, 0x92, 0x20, 0xd8, 0xa5, 0xd8, + 0xab, 0xd9, 0x8d, 0xd9, 0x86, 0xd9, 0x8a, 0xd9, + 0x86, 0x20, 0xd8, 0xab, 0xd9, 0x84, 0xd8, 0xa7, + 0xd8, 0xab, 0xd8, 0xa9, 0xd9, 0x8c, 0x00 + }; + OUString aArabicText( reinterpret_cast<char const *>(pTextUTF8), + SAL_N_ELEMENTS( pTextUTF8 ) - 1, + RTL_TEXTENCODING_UTF8 ); + + OUString aText; + + // To have more text displayed one after the other (overlapping, and in different colours), then + // change this value + const int nPrintNumCopies=1; + + if (bArabicText) + aText = aArabicText; + else + aText = aLatinText; + + std::vector<OUString> aFontNames; + + static Color const nCols[] = { + COL_BLACK, COL_BLUE, COL_GREEN, COL_CYAN, COL_RED, COL_MAGENTA, + COL_BROWN, COL_GRAY, COL_LIGHTGRAY, COL_LIGHTBLUE, COL_LIGHTGREEN, + COL_LIGHTCYAN, COL_LIGHTRED, COL_LIGHTMAGENTA, COL_YELLOW, COL_WHITE + }; + + // a few fonts to start with + const char *pNames[] = { + "Times", "Liberation Sans", "Arial", "Linux Biolinum G", "Linux Libertine Display G" + }; + + for (size_t i = 0; i < SAL_N_ELEMENTS(pNames); i++) + aFontNames.push_back(OUString::createFromAscii(pNames[i])); + + if (bClip && !bRotate) + { + // only show the first quarter of the text + tools::Rectangle aRect( r.TopLeft(), Size( r.GetWidth()/2, r.GetHeight()/2 ) ); + rDev.SetClipRegion( vcl::Region( aRect ) ); + } + + for (int i = 1; i < nPrintNumCopies+1; i++) + { + int nFontHeight=0, nFontIndex=0, nFontColorIndex=0; + + if (nPrintNumCopies == 1) + { + float const nFontMagnitude = 0.25f; + // random font size to avoid buffering + nFontHeight = 1 + nFontMagnitude * (0.9 + comphelper::rng::uniform_real_distribution(0.0, std::nextafter(0.1, DBL_MAX))) * (r.Bottom() - r.Top()); + nFontIndex=0; + nFontColorIndex=0; + } + else + { + // random font size to avoid buffering + nFontHeight = 1 + i * (0.9 + comphelper::rng::uniform_real_distribution(0.0, std::nextafter(0.1, DBL_MAX))) * (r.Top() - r.Bottom()) / nPrintNumCopies; + nFontIndex = (i % aFontNames.size()); + nFontColorIndex=(i % aFontNames.size()); + } + + rDev.SetTextColor(nCols[nFontColorIndex]); + vcl::Font aFont( aFontNames[nFontIndex], Size(0, nFontHeight )); + + if (bRotate) + { + tools::Rectangle aFontRect = r; + + int nHeight = r.GetHeight(); + + // move the text to the bottom of the bounding rect before rotating + aFontRect.AdjustTop(nHeight/2 ); + aFontRect.AdjustBottom(nHeight ); + + aFont.SetOrientation(45 * 10); // 45 degrees + + rDev.SetFont(aFont); + rDev.DrawText(aFontRect, aText); + + if (bClip) + { + tools::Rectangle aClipRect( Point( r.Left(), r.Top() + ( r.GetHeight()/2 ) ) , Size( r.GetWidth()/2, r.GetHeight()/2 ) ); + rDev.SetClipRegion( vcl::Region( aClipRect ) ); + } + else + rDev.SetClipRegion( vcl::Region(r) ); + } + else + { + rDev.SetFont(aFont); + rDev.DrawText(r, aText); + } + } + + rDev.SetClipRegion(); + } + + static void drawComplex (OutputDevice &rDev, tools::Rectangle r) + { + const unsigned char pInvalid[] = { 0xfe, 0x1f, 0 }; + const unsigned char pDiacritic1[] = { 0x61, 0xcc, 0x8a, 0xcc, 0x8c, 0 }; + const unsigned char pDiacritic2[] = { 0x61, 0xcc, 0x88, 0xcc, 0x86, 0 }; + const unsigned char pDiacritic3[] = { 0x61, 0xcc, 0x8b, 0xcc, 0x87, 0 }; + const unsigned char pJustification[] = { + 0x64, 0x20, 0xc3, 0xa1, 0xc3, 0xa9, 0x77, 0xc4, 0x8d, + 0xc5, 0xa1, 0xc3, 0xbd, 0xc5, 0x99, 0x20, 0xc4, 0x9b, 0 + }; + const unsigned char pEmojis[] = { + 0xf0, 0x9f, 0x8d, 0x80, 0xf0, 0x9f, 0x91, 0x98, + 0xf0, 0x9f, 0x92, 0x8a, 0xf0, 0x9f, 0x92, 0x99, + 0xf0, 0x9f, 0x92, 0xa4, 0xf0, 0x9f, 0x94, 0x90, 0 + }; + const unsigned char pThreeBowlG[] = { + 0xe2, 0x9a, 0x82, 0xe2, 0x99, 0xa8, 0xc4, 0x9e, 0 + }; + const unsigned char pWavesAndDomino[] = { + 0xe2, 0x99, 0x92, 0xf0, 0x9f, 0x81, 0xa0, + 0xf0, 0x9f, 0x82, 0x93, 0 + }; + const unsigned char pSpadesAndBits[] = { + 0xf0, 0x9f, 0x82, 0xa1, 0xc2, 0xa2, 0xc2, 0xa2, 0 + }; + + static struct { + const char *mpFont; + const char *mpString; + } const aRuns[] = { +#define SET(font,string) { font, reinterpret_cast<const char *>(string) } + {"sans", "a"}, // logical font - no 'sans' font. + {"opensymbol", "#$%"}, // font fallback - $ is missing. + SET("sans", pInvalid), // unicode invalid character + // tdf#96266 - stacking diacritics + SET("carlito", pDiacritic1), + SET("carlito", pDiacritic2), + SET("carlito", pDiacritic3), + SET("liberation sans", pDiacritic1), + SET("liberation sans", pDiacritic2), + SET("liberation sans", pDiacritic3), + SET("liberation sans", pDiacritic3), + + // tdf#95222 - justification issue + // - FIXME: replicate justification + SET("gentium basic", pJustification), + + // tdf#97319 - Unicode beyond BMP; SMP & Plane 2 + SET("symbola", pEmojis), + SET("symbola", pThreeBowlG), + SET("symbola", pWavesAndDomino), + SET("symbola", pSpadesAndBits), + }; + + // Nice clean white background + rDev.DrawWallpaper(r, Wallpaper(COL_WHITE)); + rDev.SetClipRegion(vcl::Region(r)); + + Point aPos(r.Left(), r.Top()+20); + + long nMaxTextHeight = 0; + for (size_t i = 0; i < SAL_N_ELEMENTS(aRuns); ++i) + { + // Legend + vcl::Font aIndexFont("sans", Size(0,20)); + aIndexFont.SetColor( COL_BLACK); + tools::Rectangle aTextRect; + rDev.SetFont(aIndexFont); + OUString aText = OUString::number(i) + "."; + rDev.DrawText(aPos, aText); + if (rDev.GetTextBoundRect(aTextRect, aText)) + aPos.Move(aTextRect.GetWidth() + 8, 0); + + // Text + FontWeight aWeights[] = { WEIGHT_NORMAL, + WEIGHT_BOLD, + WEIGHT_NORMAL }; + FontItalic const aItalics[] = { ITALIC_NONE, + ITALIC_NONE, + ITALIC_NORMAL }; + vcl::Font aFont(OUString::createFromAscii( + aRuns[i].mpFont), + Size(0,42)); + aFont.SetColor(COL_BLACK); + for (size_t j = 0; j < SAL_N_ELEMENTS(aWeights); ++j) + { + aFont.SetItalic(aItalics[j]); + aFont.SetWeight(aWeights[j]); + rDev.SetFont(aFont); + + OUString aString(aRuns[i].mpString, + strlen(aRuns[i].mpString), + RTL_TEXTENCODING_UTF8); + long nNewX = drawStringBox(rDev, aPos, aString, + nMaxTextHeight); + + aPos.setX( nNewX ); + + if (aPos.X() >= r.Right()) + { + aPos = Point(r.Left(), aPos.Y() + nMaxTextHeight + 15); + nMaxTextHeight = 0; + if(j>0) + j--; // re-render the last point. + } + if (aPos.Y() > r.Bottom()) + break; + } + if (aPos.Y() > r.Bottom()) + break; + } + + rDev.SetClipRegion(); + } + // render text, bbox, DX arrays etc. + static long drawStringBox(OutputDevice &rDev, Point aPos, + const OUString &aText, + long &nMaxTextHeight) + { + rDev.Push(); + { + tools::Rectangle aTextRect; + + rDev.DrawText(aPos,aText); + + if (rDev.GetTextBoundRect(aTextRect, aText)) + { + aTextRect.Move(aPos.X(), aPos.Y()); + rDev.SetFillColor(); + rDev.SetLineColor(COL_BLACK); + rDev.DrawRect(aTextRect); + if (aTextRect.GetHeight() > nMaxTextHeight) + nMaxTextHeight = aTextRect.GetHeight(); + // This should intersect with the text + tools::Rectangle aInnerRect( + aTextRect.Left()+1, aTextRect.Top()+1, + aTextRect.Right()-1, aTextRect.Bottom()-1); + rDev.SetLineColor(COL_WHITE); + rDev.SetRasterOp(RasterOp::Xor); + rDev.DrawRect(aInnerRect); + rDev.SetRasterOp(RasterOp::OverPaint); + } + + // DX array rendering + std::unique_ptr<long[]> pItems(new long[aText.getLength()+10]); + rDev.GetTextArray(aText, pItems.get()); + for (long j = 0; j < aText.getLength(); ++j) + { + Point aTop = aTextRect.TopLeft(); + Point aBottom = aTop; + aTop.Move(pItems[j], 0); + aBottom.Move(pItems[j], aTextRect.GetHeight()); + rDev.SetLineColor(COL_RED); + rDev.SetRasterOp(RasterOp::Xor); + rDev.DrawLine(aTop,aBottom); + rDev.SetRasterOp(RasterOp::OverPaint); + } + + aPos.Move(aTextRect.GetWidth() + 16, 0); + } + rDev.Pop(); + return aPos.X(); + } + }; + + struct DrawCheckered : public RegionRenderer + { + RENDER_DETAILS(checks,KEY_C,20) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + if (rCtx.meStyle == RENDER_EXPANDED) + { + std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx, 2, 2)); + for (size_t i = 0; i < aRegions.size(); i++) + { + vcl::Region aRegion; + tools::Rectangle aSub(aRegions[i]); + tools::Rectangle aSmaller(aSub); + aSmaller.Move(10,10); + aSmaller.setWidth(aSmaller.getWidth()-20); + aSmaller.setHeight(aSmaller.getHeight()-24); + switch (i) { + case 0: + aRegion = vcl::Region(aSub); + break; + case 1: + aRegion = vcl::Region(aSmaller); + aRegion.XOr(aSub); + break; + case 2: + { + tools::Polygon aPoly(aSub); + aPoly.Rotate(aSub.Center(), 450); + aPoly.Clip(aSmaller); + aRegion = vcl::Region(aPoly); + break; + } + case 3: + { + tools::PolyPolygon aPolyPoly; + sal_Int32 nTW = aSub.GetWidth()/6; + sal_Int32 nTH = aSub.GetHeight()/6; + tools::Rectangle aTiny(Point(4, 4), Size(nTW*2, nTH*2)); + aPolyPoly.Insert( tools::Polygon(aTiny)); + aTiny.Move(nTW*3, nTH*3); + aPolyPoly.Insert( tools::Polygon(aTiny)); + aTiny.Move(nTW, nTH); + aPolyPoly.Insert( tools::Polygon(aTiny)); + + aRegion = vcl::Region(aPolyPoly); + break; + } + } // switch + rDev.SetClipRegion(aRegion); + rDev.DrawCheckered(aSub.TopLeft(), aSub.GetSize()); + rDev.SetClipRegion(); + } + } + else + { + rDev.DrawCheckered(r.TopLeft(), r.GetSize()); + } + } + }; + + struct DrawPoly : public RegionRenderer + { + RENDER_DETAILS(poly,KEY_P,20) + DrawCheckered maCheckered; + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + maCheckered.RenderRegion(rDev, r, rCtx); + + long nDx = r.GetWidth()/20; + long nDy = r.GetHeight()/20; + tools::Rectangle aShrunk(r); + aShrunk.Move(nDx, nDy); + aShrunk.SetSize(Size(r.GetWidth()-nDx*2, + r.GetHeight()-nDy*2)); + tools::Polygon aPoly(aShrunk); + tools::PolyPolygon aPPoly(aPoly); + rDev.SetLineColor(COL_RED); + rDev.SetFillColor(COL_RED); + // This hits the optional 'drawPolyPolygon' code-path + rDev.DrawTransparent(aPPoly, 64); + } + }; + + struct DrawEllipse : public RegionRenderer + { + RENDER_DETAILS(ellipse,KEY_E,500) + static void doInvert(OutputDevice &rDev, const tools::Rectangle &r, + InvertFlags nFlags) + { + rDev.Invert(r, nFlags); + if (r.GetWidth() > 10 && r.GetHeight() > 10) + { + tools::Rectangle aSmall(r.Center()-Point(4,4), Size(8,8)); + rDev.Invert(aSmall,nFlags); + } + } + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + rDev.SetLineColor(COL_RED); + rDev.SetFillColor(COL_GREEN); + rDev.DrawEllipse(r); + + if (rCtx.meStyle == RENDER_EXPANDED) + { + auto aRegions = partition(rCtx, 2, 2); + doInvert(rDev, aRegions[0], InvertFlags::NONE); + rDev.DrawText(aRegions[0], "InvertFlags::NONE"); + doInvert(rDev, aRegions[1], InvertFlags::N50); + rDev.DrawText(aRegions[1], "InvertFlags::N50"); + doInvert(rDev, aRegions[3], InvertFlags::TrackFrame); + rDev.DrawText(aRegions[3], "InvertFlags::TrackFrame"); + } + } + }; + + struct DrawGradient : public RegionRenderer + { + RENDER_DETAILS(gradient,KEY_G,50) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + if (rCtx.meStyle == RENDER_EXPANDED) + { + std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx,5, 4)); + static Color const nStartCols[] = { + COL_RED, COL_RED, COL_RED, COL_GREEN, COL_GREEN, + COL_BLUE, COL_BLUE, COL_BLUE, COL_CYAN, COL_CYAN, + COL_BLACK, COL_LIGHTGRAY, COL_WHITE, COL_BLUE, COL_CYAN, + COL_WHITE, COL_WHITE, COL_WHITE, COL_BLACK, COL_BLACK + }; + static Color const nEndCols[] = { + COL_WHITE, COL_WHITE, COL_WHITE, COL_BLACK, COL_BLACK, + COL_RED, COL_RED, COL_RED, COL_GREEN, COL_GREEN, + COL_GRAY, COL_GRAY, COL_LIGHTGRAY, COL_LIGHTBLUE, COL_LIGHTCYAN, + COL_BLUE, COL_BLUE, COL_BLUE, COL_CYAN, COL_CYAN + }; + GradientStyle eStyles[] = { + GradientStyle::Linear, GradientStyle::Axial, GradientStyle::Radial, GradientStyle::Elliptical, GradientStyle::Square, + GradientStyle::Rect, GradientStyle::FORCE_EQUAL_SIZE, GradientStyle::Linear, GradientStyle::Radial, GradientStyle::Linear, + GradientStyle::Linear, GradientStyle::Axial, GradientStyle::Radial, GradientStyle::Elliptical, GradientStyle::Square, + GradientStyle::Rect, GradientStyle::FORCE_EQUAL_SIZE, GradientStyle::Linear, GradientStyle::Radial, GradientStyle::Linear + }; + sal_uInt16 nAngles[] = { + 0, 0, 0, 0, 0, + 15, 30, 45, 60, 75, + 90, 120, 135, 160, 180, + 0, 0, 0, 0, 0 + }; + sal_uInt16 nBorders[] = { + 0, 0, 0, 0, 0, + 1, 10, 100, 10, 1, + 0, 0, 0, 0, 0, + 1, 10, 20, 10, 1, + 0, 0, 0, 0, 0 + }; + DemoRenderer::clearRects(rDev, aRegions); + assert(aRegions.size() <= SAL_N_ELEMENTS(nStartCols)); + assert(aRegions.size() <= SAL_N_ELEMENTS(nEndCols)); + assert(aRegions.size() <= SAL_N_ELEMENTS(eStyles)); + assert(aRegions.size() <= SAL_N_ELEMENTS(nAngles)); + assert(aRegions.size() <= SAL_N_ELEMENTS(nBorders)); + for (size_t i = 0; i < aRegions.size(); i++) + { + tools::Rectangle aSub = aRegions[i]; + Gradient aGradient; + aGradient.SetStartColor(nStartCols[i]); + aGradient.SetEndColor(nEndCols[i]); + aGradient.SetStyle(eStyles[i]); + aGradient.SetAngle(nAngles[i]); + aGradient.SetBorder(nBorders[i]); + rDev.DrawGradient(aSub, aGradient); + } + } + else + { + Gradient aGradient; + aGradient.SetStartColor(COL_YELLOW); + aGradient.SetEndColor(COL_RED); + aGradient.SetStyle(GradientStyle::Rect); + aGradient.SetBorder(r.GetSize().Width()/20); + rDev.DrawGradient(r, aGradient); + } + } + }; + + struct DrawBitmap : public RegionRenderer + { + RENDER_DETAILS(bitmap,KEY_B,10) + + // Simulate Page Borders rendering - which ultimately should + // be done with a shader / gradient + static void SimulateBorderStretch(OutputDevice &rDev, const tools::Rectangle& r) + { + BitmapEx aPageShadowMask("sw/res/page-shadow-mask.png"); + + BitmapEx aRight(aPageShadowMask); + sal_Int32 nSlice = (aPageShadowMask.GetSizePixel().Width() - 3) / 4; + // a width x 1 slice + aRight.Crop(tools::Rectangle(Point((nSlice * 3) + 3, (nSlice * 2) + 1), + Size(nSlice, 1))); + AlphaMask aAlphaMask(aRight.GetBitmap()); + Bitmap aBlockColor(aAlphaMask.GetSizePixel(), 24); + aBlockColor.Erase(COL_RED); + BitmapEx aShadowStretch(aBlockColor, aAlphaMask); + + Point aRenderPt(r.TopLeft()); + + long aSizes[] = { 200, 100, 200, 100, 50, 5, 2 }; + + // and yes - we really do this in the page border rendering code ... + for (size_t i = 0; i < SAL_N_ELEMENTS(aSizes); i++) + { + aShadowStretch.Scale(Size(aShadowStretch.GetSizePixel().Width(), aSizes[i]), + BmpScaleFlag::Fast); + + rDev.DrawBitmapEx(aRenderPt, aShadowStretch); + aRenderPt.Move(aShadowStretch.GetSizePixel().Width() + 4, 0); + } + + AlphaMask aWholeMask(aPageShadowMask.GetBitmap()); + aBlockColor = Bitmap(aPageShadowMask.GetSizePixel(), 24); + aBlockColor.Erase(COL_GREEN); + BitmapEx aWhole(aBlockColor, aWholeMask); + + aRenderPt = r.Center(); + aRenderPt.Move(nSlice+1, 0); + + // An offset background for alpha rendering + rDev.SetFillColor(COL_BLUE); + tools::Rectangle aSurround(r.Center(), aPageShadowMask.GetSizePixel()); + rDev.DrawRect(aSurround); + rDev.DrawBitmapEx(aRenderPt, aWhole); + } + + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + Bitmap aBitmap(rCtx.mpDemoRenderer->maIntroBW); + aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality); + rDev.DrawBitmap(r.TopLeft(), aBitmap); + + SimulateBorderStretch(rDev, r); + } + }; + + struct DrawBitmapEx : public RegionRenderer + { + RENDER_DETAILS(bitmapex,KEY_X,2) + DrawCheckered maCheckered; + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + maCheckered.RenderRegion(rDev, r, rCtx); + + BitmapEx aBitmap(rCtx.mpDemoRenderer->maIntro); + aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality); + AlphaMask aSemiTransp(aBitmap.GetSizePixel()); + aSemiTransp.Erase(64); + rDev.DrawBitmapEx(r.TopLeft(), BitmapEx(aBitmap.GetBitmap(), + aSemiTransp)); + } + }; + + struct DrawPolyPolygons : public RegionRenderer + { + RENDER_DETAILS(polypoly,KEY_N,100) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &) override + { + static struct { + double nX, nY; + } const aPoints[] = { { 0.1, 0.1 }, { 0.9, 0.9 }, +#if FIXME_SELF_INTERSECTING_WORKING + { 0.9, 0.1 }, { 0.1, 0.9 }, + { 0.1, 0.1 } +#else + { 0.1, 0.9 }, { 0.5, 0.5 }, + { 0.9, 0.1 }, { 0.1, 0.1 } +#endif + }; + + tools::PolyPolygon aPolyPoly; + // Render 4x polygons & aggregate into another PolyPolygon + for (int x = 0; x < 2; x++) + { + for (int y = 0; y < 2; y++) + { + tools::Rectangle aSubRect(r); + aSubRect.Move(x * r.GetWidth()/3, y * r.GetHeight()/3); + aSubRect.SetSize(Size(r.GetWidth()/2, r.GetHeight()/4)); + tools::Polygon aPoly(SAL_N_ELEMENTS(aPoints)); + for (size_t v = 0; v < SAL_N_ELEMENTS(aPoints); v++) + { + aPoly.SetPoint(Point(aSubRect.Left() + + aSubRect.GetWidth() * aPoints[v].nX, + aSubRect.Top() + + aSubRect.GetHeight() * aPoints[v].nY), + v); + } + rDev.SetLineColor(COL_YELLOW); + rDev.SetFillColor(COL_BLACK); + rDev.DrawPolygon(aPoly); + + // now move and add to the polypolygon + aPoly.Move(0, r.GetHeight()/2); + aPolyPoly.Insert(aPoly); + } + } + rDev.SetLineColor(COL_LIGHTRED); + rDev.SetFillColor(COL_GREEN); + rDev.DrawTransparent(aPolyPoly, 50); + } + }; + + struct DrawClipped : public RegionRenderer + { + RENDER_DETAILS(clip,KEY_D,10) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &) override + { + std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(r, 2, 2)); + const int nLimits[] = { 4, -100 }; + for (int i = 0; i < 2; ++i) + { + sal_uInt16 nHue = 0; + rDev.Push(PushFlags::CLIPREGION); + tools::Rectangle aOuter = aRegions[i]; + tools::Rectangle aInner = aOuter; + while (aInner.GetWidth() > nLimits[i] && aInner.GetHeight() > nLimits[i]) + { + aInner.expand(-1); + rDev.SetClipRegion(vcl::Region(aInner)); + rDev.SetFillColor(Color::HSBtoRGB(nHue, 75, 100)); + nHue = (nHue + 97) % 360; + rDev.DrawRect(aOuter); + } + rDev.Pop(); + } + + { + sal_uInt16 nHue = 0; + tools::Rectangle aOuter = aRegions[2]; + std::vector<tools::Rectangle> aPieces(DemoRenderer::partition(aOuter, 2, 2)); + for (int j = 0; j < std::min(aOuter.GetWidth(), aOuter.GetHeight())/5; ++j) + { + rDev.Push(PushFlags::CLIPREGION); + + vcl::Region aClipRegion; + for (int i = 0; i < 4; ++i) + { + aPieces[i].expand(-1); + aPieces[i].Move(2 - i/2, 2 - i/2); + aClipRegion.Union(aPieces[i]); + } + assert (aClipRegion.getRegionBand()); + rDev.SetClipRegion(aClipRegion); + rDev.SetFillColor(Color::HSBtoRGB(nHue, 75, 75)); + nHue = (nHue + 97) % 360; + rDev.DrawRect(aOuter); + + rDev.Pop(); + } + } + + { + sal_uInt16 nHue = 0; + tools::Rectangle aOuter = aRegions[3]; + std::vector<tools::Rectangle> aPieces(DemoRenderer::partition(aOuter, 2, 2)); + bool bDone = false; + for (int j = 0; !bDone; ++j) + { + rDev.Push(PushFlags::CLIPREGION); + + for (int i = 0; i < 4; ++i) + { + vcl::Region aClipRegion; + tools::Polygon aPoly; + switch (i) { + case 3: + case 0: // 45degree rectangle. + aPoly = tools::Polygon(aPieces[i]); + aPoly.Rotate(aPieces[i].Center(), 450); + break; + case 1: // arc + aPoly = tools::Polygon(aPieces[i], + aPieces[i].TopLeft(), + aPieces[i].BottomRight()); + break; + case 2: + aPoly = tools::Polygon(aPieces[i], + aPieces[i].GetWidth()/5, + aPieces[i].GetHeight()/5); + aPoly.Rotate(aPieces[i].Center(), 450); + break; + } + aClipRegion = vcl::Region(aPoly); + aPieces[i].expand(-1); + aPieces[i].Move(2 - i/2, 2 - i/2); + + bDone = aPieces[i].GetWidth() < 4 || + aPieces[i].GetHeight() < 4; + + if (!bDone) + { + assert (!aClipRegion.getRegionBand()); + + rDev.SetClipRegion(aClipRegion); + rDev.SetFillColor(Color::HSBtoRGB(nHue, 50, 75)); + nHue = (nHue + 97) % 360; + rDev.DrawRect(aOuter); + } + } + + rDev.Pop(); + } + } + } + }; + + struct DrawToVirtualDevice : public RegionRenderer + { + RENDER_DETAILS(vdev,KEY_V,1) + enum RenderType { + RENDER_AS_BITMAP, + RENDER_AS_OUTDEV, + RENDER_AS_BITMAPEX, + RENDER_AS_ALPHA_OUTDEV + }; + + static void SizeAndRender(OutputDevice &rDev, const tools::Rectangle& r, RenderType eType, + const RenderContext &rCtx) + { + ScopedVclPtr<VirtualDevice> pNested; + + if (static_cast<int>(eType) < RENDER_AS_BITMAPEX) + pNested = VclPtr<VirtualDevice>::Create(rDev).get(); + else + pNested = VclPtr<VirtualDevice>::Create(rDev,DeviceFormat::DEFAULT,DeviceFormat::DEFAULT).get(); + + pNested->SetOutputSizePixel(r.GetSize()); + tools::Rectangle aWhole(Point(0,0), r.GetSize()); + + // mini me + rCtx.mpDemoRenderer->drawToDevice(*pNested, r.GetSize(), true); + + if (eType == RENDER_AS_BITMAP) + { + Bitmap aBitmap(pNested->GetBitmap(Point(0,0),aWhole.GetSize())); + rDev.DrawBitmap(r.TopLeft(), aBitmap); + } + else if (eType == RENDER_AS_BITMAPEX) + { + BitmapEx aBitmapEx(pNested->GetBitmapEx(Point(0,0),aWhole.GetSize())); + rDev.DrawBitmapEx(r.TopLeft(), aBitmapEx); + } + else if (eType == RENDER_AS_OUTDEV || + eType == RENDER_AS_ALPHA_OUTDEV) + { + rDev.DrawOutDev(r.TopLeft(), r.GetSize(), + aWhole.TopLeft(), aWhole.GetSize(), + *pNested); + } + } + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + // avoid infinite recursion + if (rCtx.mbVDev) + return; + + if (rCtx.meStyle == RENDER_EXPANDED) + { + std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx,2, 2)); + DemoRenderer::clearRects(rDev, aRegions); + + RenderType const eRenderTypes[] { RENDER_AS_BITMAP, RENDER_AS_OUTDEV, + RENDER_AS_BITMAPEX, RENDER_AS_ALPHA_OUTDEV }; + for (size_t i = 0; i < aRegions.size(); i++) + SizeAndRender(rDev, aRegions[i], eRenderTypes[i], rCtx); + } + else + SizeAndRender(rDev, r, RENDER_AS_BITMAP, rCtx); + } + }; + + struct DrawXOR : public RegionRenderer + { + RENDER_DETAILS(xor,KEY_X,1) + + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + // avoid infinite recursion + if (rCtx.mbVDev) + return; + + rDev.Push(); + + AntialiasingFlags nFlags = rDev.GetAntialiasing(); + rDev.SetAntialiasing(nFlags & ~AntialiasingFlags::EnableB2dDraw); + rDev.SetRasterOp( RasterOp::Xor ); + + rCtx.mpDemoRenderer->drawThumbs(rDev, r, true); + + rDev.Pop(); + } + }; + + struct DrawIcons : public RegionRenderer + { + RENDER_DETAILS(icons,KEY_I,1) + + std::vector<OUString> maIconNames; + std::vector<BitmapEx> maIcons; + bool bHasLoadedAll; + DrawIcons() : bHasLoadedAll(false) + { + // a few icons to start with + const char *pNames[] = { + "cmd/lc_openurl.png", + "cmd/lc_newdoc.png", + "cmd/lc_choosemacro.png", + "cmd/lc_save.png", + "cmd/lc_saveas.png", + "cmd/lc_importdialog.png", + "cmd/lc_sendmail.png", + "cmd/lc_editdoc.png", + "cmd/lc_print.png", + "cmd/lc_combobox.png", + "cmd/lc_insertformcombo.png", + "cmd/lc_printpreview.png", + "cmd/lc_cut.png", + "cmd/lc_copy.png", + "cmd/lc_paste.png", + "cmd/sc_autopilotmenu.png", + "cmd/lc_formatpaintbrush.png", + "cmd/lc_undo.png", + "cmd/lc_redo.png", + "cmd/lc_marks.png", + "cmd/lc_fieldnames.png", + "cmd/lc_hyperlinkdialog.png", + "cmd/lc_basicshapes.rectangle.png", + "cmd/lc_basicshapes.round-rectangle.png" + }; + for (size_t i = 0; i < SAL_N_ELEMENTS(pNames); i++) + { + maIconNames.push_back(OUString::createFromAscii(pNames[i])); + maIcons.emplace_back(maIconNames[i]); + } + } + + void LoadAllImages() + { + if (bHasLoadedAll) + return; + bHasLoadedAll = true; + + css::uno::Reference<css::container::XNameAccess> xRef(ImageTree::get().getNameAccess()); + const css::uno::Sequence< OUString > aAllIcons = xRef->getElementNames(); + + for (const auto& rIcon : aAllIcons) + { + if (rIcon.endsWithIgnoreAsciiCase("svg")) + continue; // too slow to load. + maIconNames.push_back(rIcon); + maIcons.emplace_back(rIcon); + } + } + + void doDrawIcons(OutputDevice &rDev, tools::Rectangle r, bool bExpanded) + { + long nMaxH = 0; + Point p(r.LeftCenter()); + size_t nToRender = maIcons.size(); + + if (!bExpanded && maIcons.size() > 64) + nToRender = 64; + for (size_t i = 0; i < nToRender; i++) + { + Size aSize(maIcons[i].GetSizePixel()); +// sAL_DEBUG("Draw icon '" << maIconNames[i] << "'"); + + if (!(i % 4)) + rDev.DrawBitmapEx(p, maIcons[i]); + else + { + basegfx::B2DHomMatrix aTransform; + aTransform.scale(aSize.Width(), aSize.Height()); + switch (i % 4) + { + case 2: + aTransform.shearX(static_cast<double>((i >> 2) % 8) / 8); + aTransform.shearY(static_cast<double>((i >> 4) % 8) / 8); + break; + case 3: + aTransform.translate(-aSize.Width()/2, -aSize.Height()/2); + aTransform.rotate(i); + if (i & 0x100) + { + aTransform.shearX(static_cast<double>((i >> 2) % 8) / 8); + aTransform.shearY(static_cast<double>((i >> 4) % 8) / 8); + } + aTransform.translate(aSize.Width()/2, aSize.Height()/2); + break; + default: + aTransform.translate(-aSize.Width()/2, -aSize.Height()/2); + aTransform.rotate(2 * F_2PI * i / nToRender); + aTransform.translate(aSize.Width()/2, aSize.Height()/2); + break; + } + aTransform.translate(p.X(), p.Y()); + rDev.DrawTransformedBitmapEx(aTransform, maIcons[i]); + } + + // next position + p.Move(aSize.Width(), 0); + if (aSize.Height() > nMaxH) + nMaxH = aSize.Height(); + if (p.X() >= r.Right()) // wrap to next line + { + p = Point(r.Left(), p.Y() + nMaxH); + nMaxH = 0; + } + if (p.Y() >= r.Bottom()) // re-start at middle + p = r.LeftCenter(); + } + } + + static BitmapEx AlphaRecovery(OutputDevice &rDev, Point aPt, BitmapEx const &aSrc) + { + // Compositing onto 2x colors beyond our control + ScopedVclPtrInstance< VirtualDevice > aWhite; + ScopedVclPtrInstance< VirtualDevice > aBlack; + aWhite->SetOutputSizePixel(aSrc.GetSizePixel()); + aWhite->SetBackground(Wallpaper(COL_WHITE)); + aWhite->Erase(); + aBlack->SetOutputSizePixel(aSrc.GetSizePixel()); + aBlack->SetBackground(Wallpaper(COL_BLACK)); + aBlack->Erase(); + aWhite->DrawBitmapEx(Point(), aSrc); + aBlack->DrawBitmapEx(Point(), aSrc); + + // Now recover that alpha... + Bitmap aWhiteBmp = aWhite->GetBitmap(Point(),aSrc.GetSizePixel()); + Bitmap aBlackBmp = aBlack->GetBitmap(Point(),aSrc.GetSizePixel()); + AlphaMask aMask(aSrc.GetSizePixel()); + Bitmap aRecovered(aSrc.GetSizePixel(), 24); + { + AlphaScopedWriteAccess pMaskAcc(aMask); + BitmapScopedWriteAccess pRecAcc(aRecovered); + Bitmap::ScopedReadAccess pAccW(aWhiteBmp); // a * pix + (1-a) + Bitmap::ScopedReadAccess pAccB(aBlackBmp); // a * pix + 0 + int nSizeX = aSrc.GetSizePixel().Width(); + int nSizeY = aSrc.GetSizePixel().Height(); + for (int y = 0; y < nSizeY; y++) + { + Scanline pScanlineMask = pMaskAcc->GetScanline( y ); + Scanline pScanlineRec = pRecAcc->GetScanline( y ); + Scanline pScanlineW = pAccW->GetScanline( y ); + Scanline pScanlineB = pAccB->GetScanline( y ); + for (int x = 0; x < nSizeX; x++) + { + BitmapColor aColW = pAccW->GetPixelFromData(pScanlineW,x); + BitmapColor aColB = pAccB->GetPixelFromData(pScanlineB,x); + long nAR = static_cast<long>(aColW.GetRed() - aColB.GetRed()); // (1-a) + long nAG = static_cast<long>(aColW.GetGreen() - aColB.GetGreen()); // (1-a) + long nAB = static_cast<long>(aColW.GetBlue() - aColB.GetBlue()); // (1-a) + +#define CLAMP(a,b,c) (((a)<=(b))?(b):(((a)>=(c))?(c):(a))) + + // we get the most precision from the largest delta + long nInverseAlpha = std::max(nAR, std::max(nAG, nAB)); // (1-a) + nInverseAlpha = CLAMP(nInverseAlpha, 0, 255); + long nAlpha = 255 - nInverseAlpha; + + pMaskAcc->SetPixelOnData(pScanlineMask,x,BitmapColor(static_cast<sal_Int8>(CLAMP(nInverseAlpha,0,255)))); + // now recover the pixels + long nR = (aColW.GetRed() + aColB.GetRed() - nInverseAlpha) * 128; + long nG = (aColW.GetGreen() + aColB.GetGreen() - nInverseAlpha) * 128; + long nB = (aColW.GetBlue() + aColB.GetBlue() - nInverseAlpha) * 128; + if (nAlpha == 0) + { // doesn't matter what's behind transparency + nR = nG = nB = 0; + } + else + { + nR /= nAlpha; nG /= nAlpha; nB /= nAlpha; + } + pRecAcc->SetPixelOnData(pScanlineRec,x,BitmapColor( + static_cast<sal_uInt8>(CLAMP(nR,0,255)), + static_cast<sal_uInt8>(CLAMP(nG,0,255)), + static_cast<sal_uInt8>(CLAMP(nB,0,255)))); +#undef CLAMP + } + } + } + rDev.DrawBitmap(aPt, aWhiteBmp); + aPt.Move(aSrc.GetSizePixel().Width(), 0); + rDev.DrawBitmap(aPt, aBlackBmp); + aPt.Move(aSrc.GetSizePixel().Width(), 0); + rDev.DrawBitmap(aPt, aRecovered); + aPt.Move(aSrc.GetSizePixel().Width(), 0); + rDev.DrawBitmap(aPt, aMask.GetBitmap()); + aPt.Move(aSrc.GetSizePixel().Width(), 0); + + return BitmapEx(aRecovered, aMask); + } + + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &rCtx) override + { + if (rCtx.meStyle == RENDER_EXPANDED) + { + LoadAllImages(); + + Point aLocation(0,maIcons[0].GetSizePixel().Height() + 8); + for (size_t i = 0; i < maIcons.size(); i++) + { + BitmapEx aSrc = maIcons[i]; + + // original above + Point aAbove(aLocation); + aAbove.Move(0,-aSrc.GetSizePixel().Height() - 4); + rDev.DrawBitmapEx(aAbove, aSrc); + aAbove.Move(aSrc.GetSizePixel().Width(),0); + aAbove.Move(aSrc.GetSizePixel().Width(),0); + rDev.DrawBitmap(aAbove, aSrc.GetBitmap()); + aAbove.Move(aSrc.GetSizePixel().Width(),0); + rDev.DrawBitmap(aAbove, aSrc.GetMask()); + + // intermediates middle + BitmapEx aResult = AlphaRecovery(rDev, aLocation, aSrc); + + // result below + Point aBelow(aLocation); + aBelow.Move(0,aResult.GetSizePixel().Height()); + rDev.DrawBitmapEx(aBelow, aResult); + + // mini convert test. + aBelow.Move(aResult.GetSizePixel().Width()+4,0); + rDev.DrawBitmapEx(aBelow, aResult); + + Bitmap aGrey = aSrc.GetBitmap(); + aGrey.Convert(BmpConversion::N8BitGreys); + rDev.DrawBitmap(aBelow, aGrey); + + aBelow.Move(aGrey.GetSizePixel().Width(),0); + BitmapEx aGreyMask(aSrc.GetBitmap(), + AlphaMask(aSrc.GetMask())); + rDev.DrawBitmapEx(aBelow, aGreyMask); + + aLocation.Move(aSrc.GetSizePixel().Width()*6,0); + if (aLocation.X() > r.Right()) + aLocation = Point(0,aLocation.Y()+aSrc.GetSizePixel().Height()*3+4); + } + + // now go crazy with random foo + doDrawIcons(rDev, r, true); + } + else + { + doDrawIcons(rDev, r, false); + } + } + }; + + struct FetchDrawBitmap : public RegionRenderer + { + RENDER_DETAILS(fetchdraw,KEY_F,50) + virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r, + const RenderContext &) override + { + Bitmap aBitmap(rDev.GetBitmap(Point(0,0),rDev.GetOutputSizePixel())); + aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality); + rDev.DrawBitmap(r.TopLeft(), aBitmap); + } + }; + + void drawThumbs(vcl::RenderContext& rDev, tools::Rectangle aRect, bool bVDev) + { + RenderContext aCtx; + aCtx.meStyle = RENDER_THUMB; + aCtx.mbVDev = bVDev; + aCtx.mpDemoRenderer = this; + aCtx.maSize = aRect.GetSize(); + std::vector<tools::Rectangle> aRegions(partition(aRect, mnSegmentsX, mnSegmentsY)); + DemoRenderer::clearRects(rDev, aRegions); + for (size_t i = 0; i < maRenderers.size(); i++) + { + RegionRenderer * r = maRenderers[i]; + + rDev.SetClipRegion( vcl::Region( aRegions[i] ) ); + + // profiling? + if (getIterCount() > 0) + { + if (!bVDev) + { + double nStartTime = getTimeNow(); + for (int j = 0; j < r->getTestRepeatCount() * THUMB_REPEAT_FACTOR; j++) + r->RenderRegion(rDev, aRegions[i], aCtx); + addTime(i, (getTimeNow() - nStartTime) / THUMB_REPEAT_FACTOR); + } else + for (int j = 0; j < r->getTestRepeatCount(); j++) + r->RenderRegion(rDev, aRegions[i], aCtx); + } + else + r->RenderRegion(rDev, aRegions[i], aCtx); + + rDev.SetClipRegion(); + } + } + + void drawToDevice(vcl::RenderContext& rDev, Size aSize, bool bVDev) + { + RenderContext aCtx; + aCtx.mbVDev = bVDev; + aCtx.mpDemoRenderer = this; + aCtx.maSize = aSize; + tools::Rectangle aWholeWin(Point(0,0), rDev.GetOutputSizePixel()); + + drawBackground(rDev, aWholeWin); + + if (!bVDev /* want everything in the vdev */ && + mnSelectedRenderer >= 0 && + o3tl::make_unsigned(mnSelectedRenderer) < maRenderers.size()) + { + aCtx.meStyle = RENDER_EXPANDED; + RegionRenderer * r = maRenderers[mnSelectedRenderer]; + // profiling? + if (getIterCount() > 0) + { + double nStartTime = getTimeNow(); + for (int i = 0; i < r->getTestRepeatCount(); i++) + r->RenderRegion(rDev, aWholeWin, aCtx); + addTime(mnSelectedRenderer, getTimeNow() - nStartTime); + } else + r->RenderRegion(rDev, aWholeWin, aCtx); + } + else + drawThumbs(rDev, aWholeWin, bVDev); + } + std::vector<VclPtr<vcl::Window> > maInvalidates; + void addInvalidate(vcl::Window *pWindow) { maInvalidates.emplace_back(pWindow); }; + void removeInvalidate(vcl::Window *pWindow) + { + auto aIt = std::find(maInvalidates.begin(), maInvalidates.end(), pWindow); + if (aIt != maInvalidates.end()) + maInvalidates.erase(aIt); + } + void Invalidate() + { + for (auto const& invalidate : maInvalidates) + invalidate->Invalidate(); + } +}; + +} + +#if FIXME_BOUNCE_BUTTON +IMPL_LINK_NOARG(DemoRenderer,BounceTimerCb,Timer*,void) +{ + mpButton->Check(mnBounceX>0); + mpButton->SetPressed(mnBounceY>0); + + Point aCur = mpButtonWin->GetPosPixel(); + static const int nMovePix = 10; + aCur.Move(mnBounceX * nMovePix, mnBounceX * nMovePix); + Size aWinSize = GetSizePixel(); + if (aCur.X() <= 0 || aCur.X() >= aWinSize.Width()) + mnBounceX *= -1; + if (aCur.Y() <= 0 || aCur.Y() >= aWinSize.Height()) + mnBounceX *= -1; + mpButtonWin->SetPosPixel(aCur); + + // All smoke and mirrors to test sub-region invalidation underneath + Rectangle aRect(aCur, mpButtonWin->GetSizePixel()); + Invalidate(aRect); +} +#endif + +void DemoRenderer::KeyInput(const KeyEvent &rKEvt) +{ + sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode(); + + // click to zoom out + if (mnSelectedRenderer >= 0) + { + if (nCode == KEY_ESCAPE || nCode == KEY_BACKSPACE) + { + mnSelectedRenderer = -1; + Invalidate(); + return; + } + } + else + { + for (size_t i = 0; i < maRenderers.size(); i++) + { + if (nCode == maRenderers[i]->getAccelerator()) + { + mnSelectedRenderer = i; + Invalidate(); + return; + } + } + } +} + +bool DemoRenderer::MouseButtonDown(const MouseEvent& rMEvt) +{ + // click to zoom out + if (mnSelectedRenderer >= 0) + { + mnSelectedRenderer = -1; + Invalidate(); + return true; + } + + // click on a region to zoom into it + std::vector<tools::Rectangle> aRegions(partition(GetSizePixel(), mnSegmentsX, mnSegmentsY)); + for (size_t i = 0; i < aRegions.size(); i++) + { + if (aRegions[i].IsInside(rMEvt.GetPosPixel())) + { + mnSelectedRenderer = i; + Invalidate(); + return true; + } + } + +#if FIXME_BOUNCE_BUTTON + // otherwise bounce floating windows + if (!mpButton) + { + mpButtonWin = VclPtr<FloatingWindow>::Create(this); + mpButton = VclPtr<PushButton>::Create(mpButtonWin); + mpButton->SetSymbol(SymbolType::HELP); + mpButton->SetText("PushButton demo"); + mpButton->SetPosSizePixel(Point(0,0), mpButton->GetOptimalSize()); + mpButton->Show(); + mpButtonWin->SetPosSizePixel(Point(0,0), mpButton->GetOptimalSize()); + mpButtonWin->Show(); + mnBounceX = 1; mnBounceX = 1; + maBounce.SetInvokeHandler(LINK(this,DemoRenderer,BounceTimerCb)); + maBounce.SetTimeout(55); + maBounce.Start(); + } + else + { + maBounce.Stop(); + delete mpButtonWin; + mpButtonWin = NULL; + mpButton = NULL; + } +#endif + return false; +} + +void DemoRenderer::InitRenderers() +{ + maRenderers.push_back(new DrawLines); + maRenderers.push_back(new DrawText); + maRenderers.push_back(new DrawPoly); + maRenderers.push_back(new DrawEllipse); + maRenderers.push_back(new DrawCheckered); + maRenderers.push_back(new DrawBitmapEx); + maRenderers.push_back(new DrawBitmap); + maRenderers.push_back(new DrawGradient); + maRenderers.push_back(new DrawPolyPolygons); + maRenderers.push_back(new DrawClipped); + maRenderers.push_back(new DrawToVirtualDevice); + maRenderers.push_back(new DrawXOR); + maRenderers.push_back(new DrawIcons()); + maRenderers.push_back(new FetchDrawBitmap); +} + +OUString DemoRenderer::getRendererList() +{ + OUStringBuffer aBuf; + for (size_t i = 0; i < maRenderers.size(); i++) + { + aBuf.append(maRenderers[i]->getName()); + aBuf.append(' '); + } + return aBuf.makeStringAndClear(); +} + +double DemoRenderer::getAndResetBenchmark(const RenderStyle style) +{ + double geomean = 1.0; + fprintf(stderr, "Rendering: %s, Times (ms):\n", style == RENDER_THUMB ? "THUMB": "EXPANDED"); + for (size_t i = 0; i < maRenderers.size(); i++) + { + double avgtime = maRenderers[i]->sumTime / maRenderers[i]->countTime; + geomean *= avgtime; + fprintf(stderr, "%s: %f (iteration: %d*%d*%d)\n", + OUStringToOString(maRenderers[i]->getName(), + RTL_TEXTENCODING_UTF8).getStr(), avgtime, + maRenderers[i]->countTime, maRenderers[i]->getTestRepeatCount(), + (style == RENDER_THUMB) ? THUMB_REPEAT_FACTOR : 1); + maRenderers[i]->sumTime = 0; + maRenderers[i]->countTime = 0; + } + geomean = pow(geomean, 1.0/maRenderers.size()); + fprintf(stderr, "GEOMEAN_%s: %f\n", style == RENDER_THUMB ? "THUMB": "EXPANDED", geomean); + return geomean; +} + +void DemoRenderer::setIterCount(sal_Int32 i) +{ + iterCount = i; +} + +sal_Int32 DemoRenderer::getIterCount() const +{ + return iterCount; +} + +void DemoRenderer::addTime(int i, double t) +{ + maRenderers[i]->sumTime += t / maRenderers[i]->getTestRepeatCount(); + maRenderers[i]->countTime++; +} + +void DemoRenderer::selectRenderer(const OUString &rName ) +{ + for (size_t i = 0; i < maRenderers.size(); i++) + { + if (maRenderers[i]->getName() == rName) + { + mnSelectedRenderer = i; + Invalidate(); + return; + } + } +} + +int DemoRenderer::selectNextRenderer() +{ + mnSelectedRenderer++; + if (mnSelectedRenderer == static_cast<signed>(maRenderers.size())) + mnSelectedRenderer = -1; + Invalidate(); + return mnSelectedRenderer; +} + +namespace { + +class DemoWin : public WorkWindow +{ + DemoRenderer &mrRenderer; + bool underTesting; + bool testThreads; + + class RenderThread final : public salhelper::Thread { + DemoWin &mrWin; + sal_uInt32 const mnDelaySecs = 0; + public: + RenderThread(DemoWin &rWin, sal_uInt32 nDelaySecs) + : Thread("vcldemo render thread") + , mrWin(rWin) + , mnDelaySecs(nDelaySecs) + { + launch(); + } + virtual ~RenderThread() override + { + join(); + } + virtual void execute() override + { + wait(std::chrono::seconds(mnDelaySecs)); + + SolarMutexGuard aGuard; + fprintf (stderr, "render from a different thread\n"); + mrWin.Invalidate(); + } + }; + rtl::Reference<RenderThread> mxThread; + +public: + DemoWin(DemoRenderer &rRenderer, bool bThreads) : + WorkWindow(nullptr, WB_APP | WB_STDWORK), + mrRenderer(rRenderer), + testThreads(bThreads) + { + mrRenderer.addInvalidate(this); + underTesting = false; + } + virtual ~DemoWin() override + { + disposeOnce(); + } + virtual void dispose() override + { + mxThread.clear(); + mrRenderer.removeInvalidate(this); + WorkWindow::dispose(); + } + virtual void MouseButtonDown(const MouseEvent& rMEvt) override + { + mrRenderer.SetSizePixel(GetSizePixel()); + if (!mrRenderer.MouseButtonDown(rMEvt)) + { + if (testThreads) + { // render this window asynchronously in a new thread + sal_uInt32 nDelaySecs = 0; + if (rMEvt.GetButtons() & MOUSE_RIGHT) + nDelaySecs = 5; + mxThread = new RenderThread(*this, nDelaySecs); + } + else + { // spawn another window + VclPtrInstance<DemoWin> pNewWin(mrRenderer, testThreads); + pNewWin->SetText("Another interactive VCL demo window"); + pNewWin->Show(); + } + } + } + virtual void KeyInput(const KeyEvent& rKEvt) override + { + mrRenderer.SetSizePixel(GetSizePixel()); + mrRenderer.KeyInput(rKEvt); + } + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override + { + mrRenderer.SetSizePixel(GetSizePixel()); + fprintf(stderr, "DemoWin::Paint(%ld,%ld,%ld,%ld)\n", rRect.getX(), rRect.getY(), rRect.getWidth(), rRect.getHeight()); + if (mrRenderer.getIterCount() == 0) + mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false); + else + TestAndQuit(rRenderContext); + } + + void TestAndQuit(vcl::RenderContext& rRenderContext) + { + if (underTesting) + return; + underTesting = true; + for (sal_Int32 i = 0; i < mrRenderer.getIterCount(); i++) + { + while (mrRenderer.selectNextRenderer() > -1) + { + mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false); + } + } + + double expandedGEOMEAN = mrRenderer.getAndResetBenchmark(RENDER_EXPANDED); + + for (sal_Int32 i = 0; i < mrRenderer.getIterCount(); i++) + mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false); + + double thumbGEOMEAN = mrRenderer.getAndResetBenchmark(RENDER_THUMB); + + fprintf(stderr, "GEOMEAN_TOTAL: %f\n", pow(thumbGEOMEAN * expandedGEOMEAN, 0.5)); + Application::Quit(); + } +}; + +struct PointerData { + PointerStyle eStyle; + const char * name; +}; + +} + +static const PointerData gvPointerData [] = { + { PointerStyle::Null, "Null" }, + { PointerStyle::Magnify, "Magnify" }, + { PointerStyle::Fill, "Fill" }, + { PointerStyle::MoveData, "MoveData" }, + { PointerStyle::CopyData, "CopyData" }, + { PointerStyle::MoveFile, "MoveFile" }, + { PointerStyle::CopyFile, "CopyFile" }, + { PointerStyle::MoveFiles, "MoveFiles" }, + { PointerStyle::CopyFiles, "CopyFiles" }, + { PointerStyle::NotAllowed, "NotAllowed" }, + { PointerStyle::Rotate, "Rotate" }, + { PointerStyle::HShear, "HShear" }, + { PointerStyle::VShear, "VShear" }, + { PointerStyle::DrawLine, "DrawLine" }, + { PointerStyle::DrawRect, "DrawRect" }, + { PointerStyle::DrawPolygon, "DrawPolygon" }, + { PointerStyle::DrawBezier, "DrawBezier" }, + { PointerStyle::DrawArc, "DrawArc" }, + { PointerStyle::DrawPie, "DrawPie" }, + { PointerStyle::DrawCircleCut, "DrawCircleCut" }, + { PointerStyle::DrawEllipse, "DrawEllipse" }, + { PointerStyle::DrawConnect, "DrawConnect" }, + { PointerStyle::DrawText, "DrawText" }, + { PointerStyle::Mirror, "Mirror" }, + { PointerStyle::Crook, "Crook" }, + { PointerStyle::Crop, "Crop" }, + { PointerStyle::MovePoint, "MovePoint" }, + { PointerStyle::MoveBezierWeight, "MoveBezierWeight" }, + { PointerStyle::DrawFreehand, "DrawFreehand" }, + { PointerStyle::DrawCaption, "DrawCaption" }, + { PointerStyle::LinkData, "LinkData" }, + { PointerStyle::MoveDataLink, "MoveDataLink" }, + { PointerStyle::CopyDataLink, "CopyDataLink" }, + { PointerStyle::LinkFile, "LinkFile" }, + { PointerStyle::MoveFileLink, "MoveFileLink" }, + { PointerStyle::CopyFileLink, "CopyFileLink" }, + { PointerStyle::Chart, "Chart" }, + { PointerStyle::Detective, "Detective" }, + { PointerStyle::PivotCol, "PivotCol" }, + { PointerStyle::PivotRow, "PivotRow" }, + { PointerStyle::PivotField, "PivotField" }, + { PointerStyle::PivotDelete, "PivotDelete" }, + { PointerStyle::Chain, "Chain" }, + { PointerStyle::ChainNotAllowed, "ChainNotAllowed" }, + { PointerStyle::AutoScrollN, "AutoScrollN" }, + { PointerStyle::AutoScrollS, "AutoScrollS" }, + { PointerStyle::AutoScrollW, "AutoScrollW" }, + { PointerStyle::AutoScrollE, "AutoScrollE" }, + { PointerStyle::AutoScrollNW, "AutoScrollNW" }, + { PointerStyle::AutoScrollNE, "AutoScrollNE" }, + { PointerStyle::AutoScrollSW, "AutoScrollSW" }, + { PointerStyle::AutoScrollSE, "AutoScrollSE" }, + { PointerStyle::AutoScrollNS, "AutoScrollNS" }, + { PointerStyle::AutoScrollWE, "AutoScrollWE" }, + { PointerStyle::AutoScrollNSWE, "AutoScrollNSWE" }, + { PointerStyle::TextVertical, "TextVertical" }, + { PointerStyle::TabSelectS, "TabSelectS" }, + { PointerStyle::TabSelectE, "TabSelectE" }, + { PointerStyle::TabSelectSE, "TabSelectSE" }, + { PointerStyle::TabSelectW, "TabSelectW" }, + { PointerStyle::TabSelectSW, "TabSelectSW" }, + { PointerStyle::HideWhitespace, "HideWhitespace" }, + { PointerStyle::ShowWhitespace, "ShowWhitespace" }, +}; + +namespace { + +class DemoWidgets : public WorkWindow +{ + VclPtr<MenuBar> mpBar; + VclPtr<VclBox> mpBox; + VclPtr<ToolBox> mpToolbox; + VclPtr<PushButton> mpButton; + VclPtr<VclHBox> mpHBox; + VclPtr<CheckBox> mpGLCheck; + VclPtr<ComboBox> mpGLCombo; + VclPtr<PushButton> mpGLButton; + std::vector<VclPtr<VclHBox>> mvCursorBoxes; + std::vector<VclPtr<PushButton>> mvCursorButtons; + + DECL_LINK(GLTestClick, Button*, void); + DECL_LINK(CursorButtonClick, Button*, void); + +public: + DemoWidgets() : + WorkWindow(nullptr, WB_APP | WB_STDWORK), + mpBox(VclPtrInstance<VclVBox>(this, false, 3)), + mpToolbox(VclPtrInstance<ToolBox>(mpBox.get())), + mpButton(VclPtrInstance<PushButton>(mpBox.get())), + mpHBox(VclPtrInstance<VclHBox>(mpBox.get(), true, 3)), + mpGLCheck(VclPtrInstance<CheckBox>(mpHBox.get())), + mpGLCombo(VclPtrInstance<ComboBox>(mpHBox.get())), + mpGLButton(VclPtrInstance<PushButton>(mpHBox.get())) + { + SetText("VCL widget demo"); + + Wallpaper aWallpaper(BitmapEx("sfx2/res/startcenter-logo.png")); + aWallpaper.SetStyle(WallpaperStyle::BottomRight); + aWallpaper.SetColor(COL_RED); + + mpBox->SetBackground(aWallpaper); + mpBox->Show(); + + Help::EnableBalloonHelp(); + mpToolbox->SetHelpText("Help text"); + mpToolbox->InsertItem(0, "Toolbar item"); + mpToolbox->SetQuickHelpText(0, "This is a tooltip popup"); + mpToolbox->InsertSeparator(); + mpToolbox->Show(); + + mpButton->SetText("Click me; go on"); + mpButton->Show(); + + mpGLCheck->SetText("Test in OGL zone"); + mpGLCheck->Show(); + mpGLCombo->InsertEntry("sleep 1 second"); + mpGLCombo->InsertEntry("sleep 3 seconds"); + mpGLCombo->InsertEntry("sleep 7 seconds"); + mpGLCombo->SelectEntryPos(2); + mpGLCombo->Show(); + mpGLButton->SetText("Execute test"); + mpGLButton->SetClickHdl(LINK(this,DemoWidgets,GLTestClick)); + mpGLButton->Show(); + mpHBox->Show(); + + int i = 0; + VclHBox* pCurrentCursorHBox = nullptr; + constexpr int numButtonsPerRow = 9; + for (auto & rData : gvPointerData) + { + if (i % numButtonsPerRow == 0) + { + mvCursorBoxes.push_back(VclPtrInstance<VclHBox>(mpBox.get(), true, numButtonsPerRow)); + pCurrentCursorHBox = mvCursorBoxes.back().get(); + pCurrentCursorHBox->Show(); + } + mvCursorButtons.emplace_back(VclPtrInstance<PushButton>(pCurrentCursorHBox)); + PushButton& rButton = *mvCursorButtons.back(); + rButton.SetText(OUString::createFromAscii(rData.name)); + rButton.SetClickHdl(LINK(this,DemoWidgets,CursorButtonClick)); + rButton.Show(); + ++i; + } + + mpBar = VclPtr<MenuBar>::Create(); + mpBar->InsertItem(0,"File"); + VclPtrInstance<PopupMenu> pPopup; + pPopup->InsertItem(0,"Item"); + mpBar->SetPopupMenu(0, pPopup); + SetMenuBar(mpBar); + + Show(); + } + virtual ~DemoWidgets() override { disposeOnce(); } + virtual void dispose() override + { + mpGLButton.disposeAndClear(); + mpGLCombo.disposeAndClear(); + mpGLCheck.disposeAndClear(); + mpHBox.disposeAndClear(); + for (auto & p : mvCursorButtons) + p.disposeAndClear(); + mvCursorButtons.clear(); + for (auto & p : mvCursorBoxes) + p.disposeAndClear(); + mvCursorBoxes.clear(); + mpToolbox.disposeAndClear(); + mpButton.disposeAndClear(); + mpBox.disposeAndClear(); + mpBar.disposeAndClear(); + WorkWindow::dispose(); + } + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override + { + tools::Rectangle aWholeSize(Point(0, 0),GetOutputSizePixel()); + vcl::Region aClip(aWholeSize); + tools::Rectangle aExclude(tools::Rectangle(Point(50,50),Size(100,100))); + aClip.Exclude(aExclude); + + Wallpaper aWallpaper(COL_GREEN); + + rRenderContext.Push(PushFlags::CLIPREGION); + rRenderContext.IntersectClipRegion(aClip); + rRenderContext.DrawWallpaper(aWholeSize, aWallpaper); + rRenderContext.Pop(); + + ScopedVclPtrInstance< VirtualDevice > pDev(*this); + pDev->EnableRTL(IsRTLEnabled()); + pDev->SetOutputSizePixel(aExclude.GetSize()); + + tools::Rectangle aSubRect(aWholeSize); + aSubRect.Move(-aExclude.Left(), -aExclude.Top()); + pDev->DrawWallpaper(aSubRect, aWallpaper ); + + rRenderContext.DrawOutDev(aExclude.TopLeft(), aExclude.GetSize(), + Point( 0, 0 ), aExclude.GetSize(), *pDev ); + } +}; + +} + +IMPL_LINK_NOARG(DemoWidgets, GLTestClick, Button*, void) +{ + sal_Int32 nSelected = mpGLCombo->GetSelectedEntryPos(); + sal_uInt32 nDelaySeconds = 0; + + switch (nSelected) + { + case 0: + nDelaySeconds = 1; + break; + case 1: + nDelaySeconds = 3; + break; + case 2: + nDelaySeconds = 7; + break; + default: + break; + } + + // Only create OpenGLZone RAII object if asked for: + std::unique_ptr<OpenGLZone> zone; + if (mpGLCheck->IsChecked()) { + zone.reset(new OpenGLZone); + } + + osl::Thread::wait(std::chrono::seconds(nDelaySeconds)); +} + +IMPL_LINK(DemoWidgets, CursorButtonClick, Button*, pButton, void) +{ + for (size_t i=0; i<SAL_N_ELEMENTS(gvPointerData); ++i) + { + if (mvCursorButtons[i].get() == pButton) + { + mpBox->SetPointer( gvPointerData[i].eStyle ); + return; + } + } + assert(false); +} + +namespace { + +class DemoPopup : public FloatingWindow +{ + public: + DemoPopup() : FloatingWindow( nullptr, WB_SYSTEMWINDOW|WB_TOOLTIPWIN) + { + SetType( WindowType::HELPTEXTWINDOW ); + + SetOutputSizePixel( Size( 300, 30 ) ); + SetBackground(Wallpaper(COL_YELLOW)); + + Show( true, ShowFlags::NoActivate ); + PaintImmediately(); + } + + virtual void Paint(vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle&) override + { + // Interestingly in GL mode on Windows, this doesn't render. + + Size aSize = GetOutputSizePixel(); + tools::Rectangle aTextRect(Point(6, 6), aSize); + + SetTextColor(COL_BLACK); + SetTextAlign(ALIGN_TOP); + DrawText(aTextRect, "This is a standalone help text test", + DrawTextFlags::MultiLine|DrawTextFlags::WordBreak| + DrawTextFlags::Left|DrawTextFlags::Top); + + SetLineColor(COL_BLACK); + SetFillColor(); + DrawRect( tools::Rectangle( Point(), aSize ) ); + aSize.AdjustWidth( -2 ); + aSize.AdjustHeight( -2 ); + Color aColor( GetLineColor() ); + SetLineColor( COL_GRAY ); + DrawRect( tools::Rectangle( Point( 1, 1 ), aSize ) ); + SetLineColor( aColor ); + } + + virtual void MouseButtonDown( const MouseEvent & ) override + { + Application::Quit(); + } +}; + +} + +class OpenGLTests +{ + VclPtr<WorkWindow> mxWinA; + VclPtr<WorkWindow> mxWinB; + rtl::Reference<OpenGLContext> mpA; + rtl::Reference<OpenGLContext> mpB; + + static OpenGLSalGraphicsImpl *getImpl(const VclPtr<OutputDevice> &xOut) + { + SalGraphics *pGraphics = xOut->GetGraphics(); + return dynamic_cast<OpenGLSalGraphicsImpl *>(pGraphics->GetImpl()); + } +public: + OpenGLTests() : + mxWinA(VclPtr<WorkWindow>::Create(nullptr, WB_APP | WB_STDWORK)), + mxWinB(VclPtr<WorkWindow>::Create(nullptr, WB_APP | WB_STDWORK)) + { + OpenGLSalGraphicsImpl *pImplA; + OpenGLSalGraphicsImpl *pImplB; + if (!OpenGLHelper::isVCLOpenGLEnabled()) + { + pImplA = pImplB = nullptr; + fprintf (stderr, "OpenGL is not enabled: try SAL_FORCEGL=1\n"); + return; + } + + pImplA = getImpl(mxWinA); + pImplB = getImpl(mxWinB); + assert (pImplA && pImplB); + mpA = pImplA->GetOpenGLContext(); + mpB = pImplB->GetOpenGLContext(); + + assert (mpA.is() && mpB.is()); + assert (mpA != mpB); + } + ~OpenGLTests() + { + mxWinB.disposeAndClear(); + mxWinA.disposeAndClear(); + } + + void testCurrentFramebuffer() + { + fprintf(stderr,"test OpenGLContext's framebuffer association.\n"); + mpA->makeCurrent(); + OpenGLFramebuffer *pBuffer; + { + OpenGLTexture aTexture(256,128); + pBuffer = mpA->AcquireFramebuffer(aTexture); + } + assert (pBuffer->IsFree()); (void)pBuffer; + mpB->makeCurrent(); + assert (mpA->mpCurrentFramebuffer == nullptr); + } + + void testVirtualDevice() + { + fprintf(stderr, "test sharing OpenGLContexts with virtual-devices reference counting\n"); + VclPtrInstance<WorkWindow> xTempWin(nullptr, WB_STDWORK); + xTempWin->Show(); + // forcibly make this context current by rendering + xTempWin->DrawPixel(Point(0, 0), COL_RED); + + // get some other guys to leach off this context + VclPtrInstance<VirtualDevice> xVDev; + OpenGLSalGraphicsImpl* pImpl = getImpl(xVDev); + assert(pImpl); + rtl::Reference<OpenGLContext> pContext = pImpl->GetOpenGLContext(); + VclPtrInstance<VirtualDevice> xVDev2; + OpenGLSalGraphicsImpl* pImpl2 = getImpl(xVDev2); + assert(pImpl2); + rtl::Reference<OpenGLContext> pContext2 = pImpl2->GetOpenGLContext(); + + // sharing the same off-screen context. + assert(pContext == pContext2); + assert(pContext == getImpl(xTempWin)->GetOpenGLContext()); + assert(pContext != mpA && pContext != mpB); + (void)pContext; (void)pContext2; + + // Kill the parent we free-ride on ... + xTempWin.disposeAndClear(); + + // This appears to continue working; fun. + Point aPt(0, 0); + xVDev->DrawPixel(aPt, COL_GREEN); + assert(xVDev->GetPixel(aPt) == COL_GREEN); + xVDev.disposeAndClear(); + + // Switch context to see if we can switch back. + mxWinA->DrawPixel(aPt, COL_WHITE); + + // Now try switching back to this guy ... + xVDev2->DrawPixel(aPt, COL_BLUE); + assert(xVDev2->GetPixel(aPt) == COL_BLUE); + xVDev2.disposeAndClear(); + } + + int execute() + { + if (!OpenGLHelper::isVCLOpenGLEnabled()) + return 1; + + testCurrentFramebuffer(); + testVirtualDevice(); + + return 0; + } +}; + +namespace { + void renderFonts() + { + ScopedVclPtrInstance<VirtualDevice> xDevice; + Size aSize(1024, 1024); + xDevice->SetOutputSizePixel(aSize); + +#if 0 + for (auto & aFontName : aFontNames) + { + vcl::Font aFont(aFontName, Size(0,96)); + + aFont.Set(COL_BLACK); + xDevice->SetFont(aFont); + xDevice->Erase(); + + FontMetric aMetric = xDevice->GetFontMetric(aFont); + + FontCharMapRef xMap; + if (xDevice->GetFontCharMap(xMap)) + { + ... iterate through glyphs ... + } + + + bool GetGlyphBoundRects( const Point& rOrigin, const OUString& rStr, int nIndex, + int nLen, int nBase, MetricVector& rVector ); + +include/vcl/outdev.hxx:typedef std::vector< Rectangle > MetricVector; +include/vcl/outdev.hxx: MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr ); +include/vcl/outdev.hxx: MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr, +include/vcl/outdev.hxx: MetricVector* pVector, OUString* pDisplayText, vcl::ITextLayout& _rLayout ); +include/vcl/outdev.hxx: DrawTextFlags nStyle = DrawTextFlags::Mnemonic, MetricVector* pVector = nullp + + bool GetTextBoundRect( Rectangle& rRect, + const OUString& rStr, sal_Int32 nBase = 0, sal_Int32 nIndex = 0, sal_Int32 nLen = -1, + sal_uLong nLayoutWidth = 0, const long* pDXArray = nullptr ) const; + + + void DrawText( const Point& rStartPt, const OUString& rStr, + sal_Int32 nIndex = 0, sal_Int32 nLen = -1, + MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr ); + + void DrawText( const Rectangle& rRect, + const OUString& rStr, DrawTextFlags nStyle = DrawTextFlags::NONE, + MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr, + vcl::ITextLayout* _pTextLayout = nullptr ); + + Rectangle GetTextRect( const Rectangle& rRect, + const OUString& rStr, DrawTextFlags nStyle = DrawTextFlags::WordBreak, + TextRectInfo* pInfo = nullptr, + const vcl::ITextLayout* _pTextLayout = nullptr ) const; + + } +#endif + + } +}; + +namespace { + +class DemoApp : public Application +{ + static int showHelp(DemoRenderer &rRenderer) + { + fprintf(stderr,"vcldemo - a VCL test app\n"); + fprintf(stderr," --help - print this text\n"); + fprintf(stderr," --show <renderer> - start with a given renderer, options are:\n"); + OUString aRenderers(rRenderer.getRendererList()); + fprintf(stderr," %s\n", + OUStringToOString(aRenderers, RTL_TEXTENCODING_UTF8).getStr()); + fprintf(stderr," --test <iterCount> - create benchmark data\n"); + fprintf(stderr," --widgets - launch the widget test.\n"); + fprintf(stderr," --popup - launch the popup test.\n"); + fprintf(stderr," --threads - render from multiple threads.\n"); + fprintf(stderr," --gltest - run openGL regression tests.\n"); + fprintf(stderr," --font <fontname> - run the font render test.\n"); + fprintf(stderr, "\n"); + return 0; + } + +public: + DemoApp() {} + + virtual int Main() override + { + try + { + bool bWidgets = false, bThreads = false; + bool bPopup = false, bGLTest = false; + DemoRenderer aRenderer; + std::vector<OUString> aFontNames; + + for (sal_uInt16 i = 0; i < GetCommandLineParamCount(); ++i) + { + bool bLast = i == GetCommandLineParamCount() - 1; + OUString aArg = GetCommandLineParam(i); + if (aArg == "--help" || aArg == "-h") + return showHelp(aRenderer); + if (aArg == "--show") + { + if (bLast) + return showHelp(aRenderer); + else + aRenderer.selectRenderer(GetCommandLineParam(++i)); + } + else if (aArg == "--test") + { + if (bLast) + return showHelp(aRenderer); + else + aRenderer.setIterCount(GetCommandLineParam(++i).toInt32()); + } + else if (aArg == "--widgets") + bWidgets = true; + else if (aArg == "--popup") + bPopup = true; + else if (aArg == "--gltest") + bGLTest = true; + else if (aArg == "--threads") + bThreads = true; + else if (aArg == "--font" && !bLast) + aFontNames.push_back(GetCommandLineParam(++i)); + else if (aArg.startsWith("--")) + { + fprintf(stderr,"Unknown argument '%s'\n", + OUStringToOString(aArg, RTL_TEXTENCODING_UTF8).getStr()); + return showHelp(aRenderer); + } + } + + ScopedVclPtrInstance<DemoWin> aMainWin(aRenderer, bThreads); + VclPtr<DemoWidgets> xWidgets; + VclPtr<DemoPopup> xPopup; + + aMainWin->SetText("Interactive VCL demo #1"); +#if HAVE_FEATURE_OPENGL + if (bGLTest) + { + OpenGLTests aTests; + return aTests.execute(); + } + else +#endif + if (bWidgets) + xWidgets = VclPtr< DemoWidgets >::Create (); + else if (bPopup) + xPopup = VclPtrInstance< DemoPopup> (); + else if (!aFontNames.empty()) + renderFonts(); + else + aMainWin->Show(); + + Application::Execute(); + + xWidgets.disposeAndClear(); + xPopup.disposeAndClear(); + } + catch (const css::uno::Exception&) + { + TOOLS_WARN_EXCEPTION("vcl.app", "Fatal"); + return 1; + } + catch (const std::exception& e) + { + SAL_WARN("vcl.app", "Fatal: " << e.what()); + return 1; + } + return 0; + } + +protected: + void Init() override + { + try + { + uno::Reference<uno::XComponentContext> xComponentContext + = ::cppu::defaultBootstrap_InitialComponentContext(); + uno::Reference<lang::XMultiServiceFactory> xMSF; + xMSF.set(xComponentContext->getServiceManager(), uno::UNO_QUERY); + if(!xMSF.is()) + Application::Abort("Bootstrap failure - no service manager"); + + ::comphelper::setProcessServiceFactory(xMSF); + } + catch (const uno::Exception &e) + { + Application::Abort("Bootstrap exception " + e.Message); + } + } + void DeInit() override + { + uno::Reference< lang::XComponent >( + comphelper::getProcessComponentContext(), + uno::UNO_QUERY_THROW)-> dispose(); + ::comphelper::setProcessServiceFactory(nullptr); + } +}; + +} + +void vclmain::createApplication() +{ +#ifdef _WIN32 + _putenv_s("LIBO_VCL_DEMO", "1"); +#else + setenv("LIBO_VCL_DEMO", "1", 0); +#endif + static DemoApp aApp; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/wksfuzzer.cxx b/vcl/workben/wksfuzzer.cxx new file mode 100644 index 000000000..3edacb484 --- /dev/null +++ b/vcl/workben/wksfuzzer.cxx @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include <com/sun/star/ucb/XContentProvider.hpp> +#include <com/sun/star/ucb/XUniversalContentBroker.hpp> +#include "commonfuzzer.hxx" + +extern "C" void* ScCreateDialogFactory() { return nullptr; } + +extern "C" bool TestImportWKS(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + if (__lsan_disable) + __lsan_disable(); + + CommonInitialize(argc, argv); + + // initialise unconfigured UCB: + css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb( + comphelper::getProcessServiceFactory()->createInstance( + "com.sun.star.ucb.UniversalContentBroker"), + css::uno::UNO_QUERY_THROW); + css::uno::Sequence<css::uno::Any> aArgs(1); + aArgs[0] <<= OUString("NoConfig"); + css::uno::Reference<css::ucb::XContentProvider> xFileProvider( + comphelper::getProcessServiceFactory()->createInstanceWithArguments( + "com.sun.star.ucb.FileContentProvider", aArgs), + css::uno::UNO_QUERY_THROW); + xUcb->registerContentProvider(xFileProvider, "file", true); + + if (__lsan_enable) + __lsan_enable(); + + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportWKS(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/wksfuzzer.options b/vcl/workben/wksfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/wksfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/wmffuzzer.cxx b/vcl/workben/wmffuzzer.cxx new file mode 100644 index 000000000..7ce9ff90d --- /dev/null +++ b/vcl/workben/wmffuzzer.cxx @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/gdimtf.hxx> +#include <vcl/wmf.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * emfio_component_getFactory( const char* , void* , void* ); +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libemfiolo.a", emfio_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + GDIMetaFile aGDIMetaFile; + (void)ReadWindowMetafile(aStream, aGDIMetaFile); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/wmffuzzer.options b/vcl/workben/wmffuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/wmffuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/ww2fuzzer.cxx b/vcl/workben/ww2fuzzer.cxx new file mode 100644 index 000000000..24038ae16 --- /dev/null +++ b/vcl/workben/ww2fuzzer.cxx @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * unoxml_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); +void * ucb_component_getFactory( const char* , void* , void* ); +void * emfio_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * SfxDocumentMetaData_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * ); +void * IndexedPropertyValuesContainer_get_implementation( void *, void * ); +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * ); +void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libunoxmllo.a", unoxml_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { "libemfiolo.a", emfio_component_getFactory }, + { "libucb1.a", ucb_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation }, + { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation }, + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation }, + { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation}, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportWW2(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportWW2(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/ww2fuzzer.options b/vcl/workben/ww2fuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/ww2fuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/ww6fuzzer.cxx b/vcl/workben/ww6fuzzer.cxx new file mode 100644 index 000000000..56db11981 --- /dev/null +++ b/vcl/workben/ww6fuzzer.cxx @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * unoxml_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); +void * ucb_component_getFactory( const char* , void* , void* ); +void * emfio_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * SfxDocumentMetaData_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * ); +void * IndexedPropertyValuesContainer_get_implementation( void *, void * ); +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * ); +void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libunoxmllo.a", unoxml_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { "libemfiolo.a", emfio_component_getFactory }, + { "libucb1.a", ucb_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation }, + { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation }, + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation }, + { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation}, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportWW6(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportWW6(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/ww6fuzzer.options b/vcl/workben/ww6fuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/ww6fuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/ww8fuzzer.cxx b/vcl/workben/ww8fuzzer.cxx new file mode 100644 index 000000000..d8613afcd --- /dev/null +++ b/vcl/workben/ww8fuzzer.cxx @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +extern "C" { +void * unoxml_component_getFactory( const char* , void* , void* ); +void * i18npool_component_getFactory( const char* , void* , void* ); +void * ucb_component_getFactory( const char* , void* , void* ); +void * emfio_component_getFactory( const char* , void* , void* ); + +void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * ); +void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * ); +void * SfxDocumentMetaData_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * ); +void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * ); +void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * ); +void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * ); +void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * ); +void * IndexedPropertyValuesContainer_get_implementation( void *, void * ); +void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * ); +void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * ); +void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * ); +void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * ); +void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * ); +} + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { "libunoxmllo.a", unoxml_component_getFactory }, + { "libi18npoollo.a", i18npool_component_getFactory }, + { "libemfiolo.a", emfio_component_getFactory }, + { "libucb1.a", ucb_component_getFactory }, + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation }, + { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation }, + { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation }, + { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation }, + { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation }, + { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation }, + { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation }, + { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation }, + { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation }, + { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation }, + { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation }, + { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag }, + { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation }, + { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation }, + { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation}, + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" void* SwCreateDialogFactory() +{ + return nullptr; +} + +extern "C" bool TestImportWW8(SvStream &rStream); + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportWW8(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/ww8fuzzer.options b/vcl/workben/ww8fuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/ww8fuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/xbmfuzzer.cxx b/vcl/workben/xbmfuzzer.cxx new file mode 100644 index 000000000..bb261f60a --- /dev/null +++ b/vcl/workben/xbmfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <../source/filter/ixbm/xbmread.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ImportXBM(aStream, aGraphic); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/xbmfuzzer.options b/vcl/workben/xbmfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/xbmfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 diff --git a/vcl/workben/xlsfuzzer.cxx b/vcl/workben/xlsfuzzer.cxx new file mode 100644 index 000000000..893110988 --- /dev/null +++ b/vcl/workben/xlsfuzzer.cxx @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include <com/sun/star/ucb/XContentProvider.hpp> +#include <com/sun/star/ucb/XUniversalContentBroker.hpp> +#include "commonfuzzer.hxx" + +extern "C" void* ScCreateDialogFactory() { return nullptr; } + +extern "C" bool TestImportXLS(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + if (__lsan_disable) + __lsan_disable(); + + CommonInitialize(argc, argv); + + // initialise unconfigured UCB: + css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb( + comphelper::getProcessServiceFactory()->createInstance( + "com.sun.star.ucb.UniversalContentBroker"), + css::uno::UNO_QUERY_THROW); + css::uno::Sequence<css::uno::Any> aArgs(1); + aArgs[0] <<= OUString("NoConfig"); + css::uno::Reference<css::ucb::XContentProvider> xFileProvider( + comphelper::getProcessServiceFactory()->createInstanceWithArguments( + "com.sun.star.ucb.FileContentProvider", aArgs), + css::uno::UNO_QUERY_THROW); + xUcb->registerContentProvider(xFileProvider, "file", true); + + if (__lsan_enable) + __lsan_enable(); + + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportXLS(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/xlsfuzzer.options b/vcl/workben/xlsfuzzer.options new file mode 100644 index 000000000..d851ad58c --- /dev/null +++ b/vcl/workben/xlsfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 65536 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/xlsxfuzzer.cxx b/vcl/workben/xlsxfuzzer.cxx new file mode 100644 index 000000000..a325bd69f --- /dev/null +++ b/vcl/workben/xlsxfuzzer.cxx @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <vcl/FilterConfigItem.hxx> +#include "commonfuzzer.hxx" + +extern "C" void* ScCreateDialogFactory() { return nullptr; } + +extern "C" bool TestImportXLSX(SvStream& rStream); + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + (void)TestImportXLSX(aStream); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/xlsxfuzzer.options b/vcl/workben/xlsxfuzzer.options new file mode 100644 index 000000000..db9a3e8c6 --- /dev/null +++ b/vcl/workben/xlsxfuzzer.options @@ -0,0 +1,4 @@ +[libfuzzer] +max_len = 98304 +[env] +AFL_DRIVER_DONT_DEFER=1 diff --git a/vcl/workben/xpmfuzzer.cxx b/vcl/workben/xpmfuzzer.cxx new file mode 100644 index 000000000..700761d17 --- /dev/null +++ b/vcl/workben/xpmfuzzer.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#include <tools/stream.hxx> +#include <../source/filter/ixpm/xpmread.hxx> +#include "commonfuzzer.hxx" + +#include <config_features.h> +#include <osl/detail/component-mapping.h> + +const lib_to_factory_mapping * +lo_get_factory_map(void) +{ + static lib_to_factory_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +const lib_to_constructor_mapping * +lo_get_constructor_map(void) +{ + static lib_to_constructor_mapping map[] = { + { 0, 0 } + }; + + return map; +} + +extern "C" void* lo_get_custom_widget_func(const char*) +{ + return nullptr; +} + +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TypicalFuzzerInitialize(argc, argv); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); + Graphic aGraphic; + (void)ImportXPM(aStream, aGraphic); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/xpmfuzzer.options b/vcl/workben/xpmfuzzer.options new file mode 100644 index 000000000..678d526b1 --- /dev/null +++ b/vcl/workben/xpmfuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65536 |