diff options
671 files changed, 38399 insertions, 9037 deletions
diff --git a/Makefile.in b/Makefile.in index b12353299455..17f84342a997 100644 --- a/Makefile.in +++ b/Makefile.in @@ -40,8 +40,10 @@ Makefile $(BUILDDIR)/Makefile: $(BUILDDIR)/config_host.mk $(BUILDDIR)/config_hos # run configure in an environment not polluted by config_host.mk ifneq ($(MSYSTEM),) WSL:=@WSL@ -# wsl needs unix-style path into windows realm -$(BUILDDIR)/config_host.mk : SRCDIR:=/$(shell $(WSL) wslpath -u $(SRCDIR)) +# wsl needs unix-style path into windows realm, use long form to avoid confusing autogen.sh wrt +# builddir != srcdir when in actually it is just srcdir-in-shortform vs srcdir-in-longform +# for the same reason cd to the longform of BUILDDIR +$(BUILDDIR)/config_host.mk : SRCDIR:=/$(shell $(WSL) wslpath -u $(shell cygpath -ml $(SRCDIR))) endif $(BUILDDIR)/config_host.mk : $(wildcard \ $(SRCDIR)/autogen.sh \ @@ -57,7 +59,7 @@ $(BUILDDIR)/config_host.mk : $(wildcard \ $(BUILDDIR)/autogen.lastrun \ ) \ $(shell if test -n '$(JAVA_HOME)' -a ! -d '$(JAVA_HOME)'; then echo force-restart; fi) - sh -c "$(if $(MSYSTEM),$(WSL) )$(SRCDIR)/autogen.sh" + sh -c "$(if $(MSYSTEM),cd $(shell cygpath -ml $(BUILDDIR)); $(WSL) )$(SRCDIR)/autogen.sh" else # MAKE_RESTARTS diff --git a/Repository.mk b/Repository.mk index 8ee7e623a7dd..0357827b13d5 100644 --- a/Repository.mk +++ b/Repository.mk @@ -1049,6 +1049,7 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\ Pyuno/mailmerge \ ) \ sfx2_classification \ + svx_document_themes \ $(if $(filter OPENCL,$(BUILD_TYPE)),sc_opencl_runtimetest) \ $(if $(ENABLE_HTMLHELP),\ helpcontent2_html_dynamic \ diff --git a/android/source/res/values-de/strings.xml b/android/source/res/values-de/strings.xml index 7ebc8c9662ab..a7fa99994a08 100644 --- a/android/source/res/values-de/strings.xml +++ b/android/source/res/values-de/strings.xml @@ -38,7 +38,7 @@ <string name="message_saved">Speichern beendet</string> <string name="message_saving">Dokument wird gespeichert…</string> <string name="message_saving_failed">Speichern des Dokuments ist fehlgeschlagen.</string> - <string name="password">Passwort</string> + <string name="password">Kennwort</string> <string name="action_undo">Rückgängig</string> <string name="action_redo">Wiederherstellen</string> <!-- Save Alert dialog strings --> @@ -68,7 +68,7 @@ <!-- Password dialog strings --> <string name="action_pwd_dialog_OK">OK</string> <string name="action_pwd_dialog_cancel">Abbrechen</string> - <string name="action_pwd_dialog_title">Bitte Passwort eingeben</string> + <string name="action_pwd_dialog_title">Bitte Kennwort eingeben</string> <!-- Insert Image Strings --> <string name="take_photo">Foto Machen</string> <string name="select_photo">Foto Auswählen</string> diff --git a/android/source/res/values-ne/strings.xml b/android/source/res/values-ne/strings.xml index 430de40d93d2..cb98829e9433 100644 --- a/android/source/res/values-ne/strings.xml +++ b/android/source/res/values-ne/strings.xml @@ -20,4 +20,5 @@ <string name="default_document_name">शीर्षक नभएको</string> <string name="about_license">इजाजतपत्र देखाउनुहोस्</string> <string name="title_browser">सबै फाइलहरू</string> + <string name="create_file">नयाँ फाइल बनाउनुहोस</string> </resources>
\ No newline at end of file diff --git a/android/source/res/values-pl/strings.xml b/android/source/res/values-pl/strings.xml index 476875800659..8b18c0161f38 100644 --- a/android/source/res/values-pl/strings.xml +++ b/android/source/res/values-pl/strings.xml @@ -22,7 +22,7 @@ <string name="pref_category_general">Ogólne</string> <string name="pref_experimental_editing">Tryb eksperymentalny</string> <string name="pref_developer_mode">Tryb programisty</string> - <string name="pref_developer_mode_summary">Włącz tryb programisty, w którym możesz wysyłać polecenia UNO w aplikacji. Używaj na własne ryzyko.</string> + <string name="pref_developer_mode_summary">Włącz tryb programisty, w którym możesz wysyłać polecenia UNO w aplikacji. Używaj na własne ryzyko.</string> <string name="action_parts">Części</string> <string name="action_settings">Ustawienia</string> <string name="action_keyboard">Pokaż klawiaturę</string> @@ -62,7 +62,7 @@ <string name="compress_photo_no_compress">Nie kompresuj</string> <string name="compress_photo_title">Czy chcesz skompresować zdjęcie\?</string> <string name="action_copy">Kopiuj</string> - <string name="calc_optimal_length_default_text">Wpisz dodatkową długość w setnych/mm</string> + <string name="calc_optimal_length_default_text">Wpisz dodatkową długość w setnych/mm</string> <string name="action_pwd_dialog_title">Wpisz hasło</string> <string name="action_cut">Wytnij</string> <string name="action_back">Wstecz</string> diff --git a/android/source/res/values-ro/strings.xml b/android/source/res/values-ro/strings.xml new file mode 100644 index 000000000000..abacac6cdd78 --- /dev/null +++ b/android/source/res/values-ro/strings.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name_settings">Setări pentru LibreOffice Viewer</string> + <string name="app_name">LibreOffice Viewer</string> +</resources>
\ No newline at end of file diff --git a/basic/qa/basic_coverage/test_date_passed_to_uno.bas b/basic/qa/basic_coverage/test_date_passed_to_uno.bas new file mode 100644 index 000000000000..e056ab3b4b4d --- /dev/null +++ b/basic/qa/basic_coverage/test_date_passed_to_uno.bas @@ -0,0 +1,48 @@ +' +' 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/. +' + +Option Explicit + +Function doUnitTest() As String + TestUtil.TestInit + verify_DatePassedToUno + doUnitTest = TestUtil.GetResult() +End Function + +Sub verify_DatePassedToUno + On Error GoTo errorHandler + + ' Given a date variable, and passing it to an UNO interface method (i.e., going through + ' the Basic-to-UNO conversion), in the absence of VBASupport mode, the date value must + ' be converted to a number, not to a struct / empty interface + Dim aDate as Date + aDate = #2025-01-23T12:00# + + Dim aUnoObject as Object + aUnoObject = CreateUnoListener("XTypeConverter_", "com.sun.star.script.XTypeConverter") + + Dim aConvResult + ' Without the fix, the following line would fail, triggering errorHandler reporting + ' "91: Object variable not set." + aConvResult = aUnoObject.convertToSimpleType(aDate, com.sun.star.uno.TypeClass.STRING) + ' If 'Option VBASupport 1' were used, the following line would fail with "Wrong input + ' type: Date", because the value would be marshalled using oleautomation::Date struct + TestUtil.AssertEqualStrict(aConvResult, "45680.5", "aConvResult") + + Exit Sub +errorHandler: + TestUtil.ReportErrorHandler("verify_DatePassedToUno", Err, Error$, Erl) +End Sub + +Function XTypeConverter_convertToSimpleType(aFrom, aDestinationType) + If IsNumeric(aFrom) Then + XTypeConverter_convertToSimpleType = CStr(aFrom) + Else + XTypeConverter_convertToSimpleType = "Wrong input type: " & TypeName(aFrom) + End If +End Function diff --git a/basic/qa/basic_coverage/test_variant_arg_used_as_obj.bas b/basic/qa/basic_coverage/test_variant_arg_used_as_obj.bas new file mode 100644 index 000000000000..41ac139f639d --- /dev/null +++ b/basic/qa/basic_coverage/test_variant_arg_used_as_obj.bas @@ -0,0 +1,38 @@ +' +' 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/. +' + +Option Explicit + +Function doUnitTest() As String + TestUtil.TestInit + verify_VariantArgUsedAsObj + doUnitTest = TestUtil.GetResult() +End Function + +Sub verify_VariantArgUsedAsObj + On Error GoTo errorHandler + + Dim aResult + ' Without the fix, the following line would fail, triggering errorHandler reporting + ' "91: Object variable not set." + aResult = aFuncWithVarArg(0) + TestUtil.AssertEqualStrict(aResult, "Integer", "aResult") + + Exit Sub +errorHandler: + TestUtil.ReportErrorHandler("verify_VariantArgUsedAsObj", Err, Error$, Erl) +End Sub + +Function aFuncWithVarArg(arg) + ' The 'arg' is implicitly Variant; and its following use as object (after a check), + ' i.e. accessing its method using dot notation, must not change the declaration type + If IsObject(arg) Then + arg.some_func() + End If + aFuncWithVarArg = TypeName(arg) +End Function diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx index 25a395e7a6bf..871e02e76f1f 100644 --- a/basic/source/classes/sbunoobj.cxx +++ b/basic/source/classes/sbunoobj.cxx @@ -831,9 +831,9 @@ static Type getUnoTypeForSbxBaseType( SbxDataType eType ) case SbxDATE: { SbiInstance* pInst = GetSbData()->pInst; if( pInst && pInst->IsCompatibility() ) - aRetType = cppu::UnoType<double>::get(); - else aRetType = cppu::UnoType<oleautomation::Date>::get(); + else + aRetType = cppu::UnoType<double>::get(); } break; case SbxSTRING: aRetType = cppu::UnoType<OUString>::get(); break; diff --git a/basic/source/comp/exprtree.cxx b/basic/source/comp/exprtree.cxx index db7254033e5e..2f0316428ce6 100644 --- a/basic/source/comp/exprtree.cxx +++ b/basic/source/comp/exprtree.cxx @@ -333,7 +333,9 @@ std::unique_ptr<SbiExprNode> SbiExpression::Term( const KeywordSymbolInfo* pKeyw // from 16.12.95 (similar cases possible perhaps?!?) if( eType == SbxOBJECT && pDef->GetType() == SbxVARIANT ) { - pDef->SetType( SbxOBJECT ); + // Do not modify the type of procedure arguments + if (pDef->GetScope() != SbPARAM) + pDef->SetType(SbxOBJECT); } else { @@ -352,7 +354,8 @@ std::unique_ptr<SbiExprNode> SbiExpression::Term( const KeywordSymbolInfo* pKeyw if( bObj ) { // from 8.1.95: Object may also be of the type SbxVARIANT - if( pDef->GetType() == SbxVARIANT ) + // (but do not modify type of procedure arguments) + if (pDef->GetType() == SbxVARIANT && pDef->GetScope() != SbPARAM) pDef->SetType( SbxOBJECT ); // if we scan something with point, // the type must be SbxOBJECT diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx index a8284479d0e4..f30a633dccfb 100644 --- a/basic/source/runtime/stdobj.cxx +++ b/basic/source/runtime/stdobj.cxx @@ -34,35 +34,38 @@ // does NOT impose a limit on User defined procedures ). This changes is to // allow us space for a flag to denylist some functions in vba mode -#define ARGSMASK_ 0x003F // 63 Arguments - -#define COMPATONLY_ 0x0080 // procedure is visible in vba mode only -#define NORMONLY_ 0x0040 // procedure is visible in normal mode only -#define COMPTMASK_ (COMPATONLY_ | NORMONLY_) // COMPATIBILITY mask - -#define READ_ 0x0100 // parameter allows read -#define WRITE_ 0x0200 // parameter allows write -#define OPT_ 0x0400 // parameter is optional -#define CONST_ 0x0800 // property is const -#define RWMASK_ (READ_ | WRITE_ | OPT_ | CONST_) // mask for R/W-bits - -#define FUNC_TYPE_ 0x1000 // functional type -#define SUB_TYPE_ 0x2000 // sub type -#define METHOD_ (FUNC_TYPE_ | SUB_TYPE_) -#define PROPERTY_ 0x4000 -#define OBJECT_ 0x8000 -#define TYPEMASK_ (METHOD_ | PROPERTY_ | OBJECT_) // mask for the entry's type - - // combination of bits above: -#define FUNCTION_ (FUNC_TYPE_ | READ_) -#define LFUNCTION_ (FUNC_TYPE_ | READ_ | WRITE_) // mask for function which also works as Lvalue (statement) -#define SUB_ (SUB_TYPE_) -#define ROPROP_ (PROPERTY_ | READ_) // mask Read Only-Property -#define RWPROP_ (PROPERTY_ | READ_ | WRITE_) // mask Read/Write-Property -#define CPROP_ (PROPERTY_ | READ_ | CONST_) // mask for constant - namespace { +enum Flags +{ + ARGSMASK_ = 0x003F, // 63 Arguments + + NORMONLY_ = 0x0040, // procedure is visible in normal mode only + COMPATONLY_ = 0x0080, // procedure is visible in vba mode only + COMPTMASK_ = (COMPATONLY_ | NORMONLY_), // COMPATIBILITY mask + + READ_ = 0x0100, // parameter allows read + WRITE_ = 0x0200, // parameter allows write + OPT_ = 0x0400, // parameter is optional + CONST_ = 0x0800, // property is const + RWMASK_ = (READ_ | WRITE_ | OPT_ | CONST_), // mask for R/W-bits + + FUNC_TYPE_ = 0x1000, // functional type + SUB_TYPE_ = 0x2000, // sub type + METHOD_ = (FUNC_TYPE_ | SUB_TYPE_), + PROPERTY_ = 0x4000, + OBJECT_ = 0x8000, + TYPEMASK_ = (METHOD_ | PROPERTY_ | OBJECT_), // mask for the entry's type + + // combination of bits above + FUNCTION_ = (FUNC_TYPE_ | READ_), + LFUNCTION_ = (FUNC_TYPE_ | READ_ | WRITE_), // mask for function which also works as Lvalue (statement) + SUB_ = SUB_TYPE_, + ROPROP_ = (PROPERTY_ | READ_), // mask Read Only-Property + RWPROP_ = (PROPERTY_ | READ_ | WRITE_), // mask Read/Write-Property + CPROP_ = (PROPERTY_ | READ_ | CONST_) // mask for constant +}; + struct Method { RtlCall pFunc; std::u16string_view sName; diff --git a/bin/ui-translatable.sh b/bin/ui-translatable.sh index e3240826b22c..8853bc81956f 100755 --- a/bin/ui-translatable.sh +++ b/bin/ui-translatable.sh @@ -10,13 +10,7 @@ for i in `git ls-files *.ui`; do for j in "label" "title" "text" "format" "copyright" "comments" "preview_text" "tooltip" "message" ; do - grep -s "\<property name\=\"$j\"" $i | grep -v "translatable\=\"yes" | grep -v "translatable\=\"no" | grep -v gtk\- | grep ">.*[A-Za-z].*<"; - if [ "$?" -eq 0 ] ; - then echo "Source: $i^"; - fi + grep -Hns "\<property name\=\"$j\"" $i | grep -v "translatable\=\"yes" | grep -v "translatable\=\"no" | grep -v gtk\- | grep ">.*[A-Za-z].*<"; done - grep -s "<item" $i | grep -v "translatable\=\"yes" | grep -v "translatable\=\"no" | grep ">.*[A-Za-z].*<"; - if [ "$?" -eq 0 ] ; - then echo "Source: $i^"; - fi + grep -Hns "<item" $i | grep -v "translatable\=\"yes" | grep -v "translatable\=\"no" | grep ">.*[A-Za-z].*<"; done diff --git a/bridges/source/cpp_uno/gcc3_linux_loongarch64/abi.hxx b/bridges/source/cpp_uno/gcc3_linux_loongarch64/abi.hxx index 1fe9e9b58866..c5cd03558cc7 100644 --- a/bridges/source/cpp_uno/gcc3_linux_loongarch64/abi.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_loongarch64/abi.hxx @@ -21,8 +21,8 @@ #include <typelib/typedescription.hxx> -#define MAX_GP_REGS 8 -#define MAX_FP_REGS 8 +constexpr auto MAX_GP_REGS = 8; +constexpr auto MAX_FP_REGS = 8; namespace loongarch64 { diff --git a/bridges/source/cpp_uno/gcc3_linux_riscv64/share.hxx b/bridges/source/cpp_uno/gcc3_linux_riscv64/share.hxx index 331ed789e39f..d04d4030bc98 100644 --- a/bridges/source/cpp_uno/gcc3_linux_riscv64/share.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_riscv64/share.hxx @@ -24,8 +24,8 @@ #include <exception> #include <cstddef> -#define MAX_GP_REGS (8) -#define MAX_FP_REGS (8) +constexpr auto MAX_GP_REGS = 8; +constexpr auto MAX_FP_REGS = 8; namespace CPPU_CURRENT_NAMESPACE { diff --git a/bridges/source/cpp_uno/gcc3_macosx_x86-64/abi.cxx b/bridges/source/cpp_uno/gcc3_macosx_x86-64/abi.cxx index 8f6ca30957ed..7e7f456d9c2d 100644 --- a/bridges/source/cpp_uno/gcc3_macosx_x86-64/abi.cxx +++ b/bridges/source/cpp_uno/gcc3_macosx_x86-64/abi.cxx @@ -81,7 +81,7 @@ enum x86_64_reg_class } -#define MAX_CLASSES 4 +constexpr auto MAX_CLASSES = 4; /* x86-64 register passing implementation. See x86-64 ABI for details. Goal of this code is to classify each 8bytes of incoming argument by the register diff --git a/canvas/source/directx/dx_vcltools.cxx b/canvas/source/directx/dx_vcltools.cxx index 9b0da87842a2..83978830e0d6 100644 --- a/canvas/source/directx/dx_vcltools.cxx +++ b/canvas/source/directx/dx_vcltools.cxx @@ -173,7 +173,6 @@ namespace dxcanvas::tools // ScanlineFormat::N1BitMsbPal // ScanlineFormat::N8BitPal // ScanlineFormat::N24BitTcBgr - // ScanlineFormat::N32BitTcMask // and is always ScanlineFormat::BottomUp @@ -234,7 +233,6 @@ namespace dxcanvas::tools // to hand-formulate the following // formats, too. case ScanlineFormat::N1BitMsbPal: - case ScanlineFormat::N32BitTcMask: { Scanline pAScan = pAlphaReadAccess->GetScanline( y ); diff --git a/comphelper/source/misc/compbase.cxx b/comphelper/source/misc/compbase.cxx index eafabb013937..02efae8b71c4 100644 --- a/comphelper/source/misc/compbase.cxx +++ b/comphelper/source/misc/compbase.cxx @@ -97,7 +97,6 @@ static bool td_equals(typelib_TypeDescriptionReference const* pTDR1, static cppu::type_entry* getTypeEntries(cppu::class_data* cd) { cppu::type_entry* pEntries = cd->m_typeEntries; - if (!cd->m_storedTypeRefs) // not inited? { static std::mutex aMutex; std::scoped_lock guard(aMutex); @@ -122,14 +121,9 @@ static cppu::type_entry* getTypeEntries(cppu::class_data* cd) // ref is statically held by getCppuType() pEntry->m_type.typeRef = rType.getTypeLibType(); } - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); cd->m_storedTypeRefs = true; } } - else - { - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); - } return pEntries; } diff --git a/comphelper/source/misc/mimeconfighelper.cxx b/comphelper/source/misc/mimeconfighelper.cxx index 0cdacb41554f..1702bba64c0a 100644 --- a/comphelper/source/misc/mimeconfighelper.cxx +++ b/comphelper/source/misc/mimeconfighelper.cxx @@ -33,6 +33,7 @@ #include <comphelper/documentconstants.hxx> #include <comphelper/propertysequence.hxx> #include <rtl/ustrbuf.hxx> +#include <o3tl/numeric.hxx> #include <utility> @@ -68,20 +69,6 @@ OUString MimeConfigurationHelper::GetStringClassIDRepresentation( const uno::Seq return aResult.makeStringAndClear(); } - -static sal_uInt8 GetDigit_Impl( char aChar ) -{ - if ( aChar >= '0' && aChar <= '9' ) - return aChar - '0'; - else if ( aChar >= 'a' && aChar <= 'f' ) - return aChar - 'a' + 10; - else if ( aChar >= 'A' && aChar <= 'F' ) - return aChar - 'A' + 10; - else - return 16; -} - - uno::Sequence< sal_Int8 > MimeConfigurationHelper::GetSequenceClassIDRepresentation( std::u16string_view aClassID ) { size_t nLength = aClassID.size(); @@ -95,10 +82,10 @@ uno::Sequence< sal_Int8 > MimeConfigurationHelper::GetSequenceClassIDRepresentat sal_Int32 nSeqInd = 0; while( nSeqInd < 16 && nStrPointer + 1U < nLength ) { - sal_uInt8 nDigit1 = GetDigit_Impl( aCharClassID[nStrPointer++] ); - sal_uInt8 nDigit2 = GetDigit_Impl( aCharClassID[nStrPointer++] ); + sal_uInt8 nDigit1 = o3tl::convertToHex<sal_uInt8>(aCharClassID[nStrPointer++]); + sal_uInt8 nDigit2 = o3tl::convertToHex<sal_uInt8>(aCharClassID[nStrPointer++]); - if ( nDigit1 > 15 || nDigit2 > 15 ) + if (nDigit1 > 15 || nDigit2 > 15) break; pResult[nSeqInd++] = static_cast<sal_Int8>( nDigit1 * 16 + nDigit2 ); diff --git a/compilerplugins/clang/unusedenumconstants.readonly.results b/compilerplugins/clang/unusedenumconstants.readonly.results index e8357bb4ad3f..efcc2f8d1ffb 100644 --- a/compilerplugins/clang/unusedenumconstants.readonly.results +++ b/compilerplugins/clang/unusedenumconstants.readonly.results @@ -1020,8 +1020,6 @@ include/vcl/rendercontext/DrawImageFlags.hxx:29 enum DrawImageFlags Highlight include/vcl/rendercontext/DrawImageFlags.hxx:30 enum DrawImageFlags Deactive -include/vcl/Scanline.hxx:43 - enum ScanlineFormat N32BitTcMask include/vcl/skia/SkiaHelper.hxx:31 enum SkiaHelper::RenderMethod RenderMetal include/vcl/vclenum.hxx:39 diff --git a/compilerplugins/clang/unusedenumconstants.writeonly.results b/compilerplugins/clang/unusedenumconstants.writeonly.results index 961e7f0a5d4b..f950b0ba18aa 100644 --- a/compilerplugins/clang/unusedenumconstants.writeonly.results +++ b/compilerplugins/clang/unusedenumconstants.writeonly.results @@ -4066,6 +4066,8 @@ include/vcl/salnativewidgets.hxx:198 enum ControlPart BackgroundDialog include/vcl/salnativewidgets.hxx:237 enum ButtonValue DontKnow +include/vcl/Scanline.hxx:48 + enum ScanlineDirection BottomUp include/vcl/sysdata.hxx:54 enum SystemEnvData::Toolkit Qt include/vcl/syswin.hxx:50 diff --git a/config_host.mk.in b/config_host.mk.in index 8baece8fb531..cdf47d5072b9 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -148,12 +148,13 @@ export DPKG=@DPKG@ export EBOOK_CFLAGS=$(gb_SPACE)@EBOOK_CFLAGS@ export EBOOK_LIBS=$(gb_SPACE)@EBOOK_LIBS@ export EMSDK_FILE_PACKAGER=@EMSDK_FILE_PACKAGER@ +export EMSCRIPTEN_EXTRA_QTLOADER_CONFIG=@EMSCRIPTEN_EXTRA_QTLOADER_CONFIG@ export EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS=@EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS@ export EMSCRIPTEN_WORKERJS=@EMSCRIPTEN_WORKERJS@ export ENABLE_ANDROID_LOK=@ENABLE_ANDROID_LOK@ export ENABLE_ANDROID_EDITING=@ENABLE_ANDROID_EDITING@ export ENABLE_AVAHI=@ENABLE_AVAHI@ -export ENABLE_MSVC_ANALYZE=@ENABLE_MSVC_ANALYZE@ +ENABLE_MSVC_ANALYZE?=@ENABLE_MSVC_ANALYZE@ export ENABLE_BREAKPAD=@ENABLE_BREAKPAD@ export DEFAULT_CRASHDUMP_VALUE=@DEFAULT_CRASHDUMP_VALUE@ export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@ diff --git a/configmgr/source/valueparser.cxx b/configmgr/source/valueparser.cxx index edf39add25e5..0b07efda235b 100644 --- a/configmgr/source/valueparser.cxx +++ b/configmgr/source/valueparser.cxx @@ -26,6 +26,7 @@ #include <com/sun/star/uno/Sequence.hxx> #include <comphelper/sequence.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <rtl/math.h> #include <rtl/string.h> #include <rtl/string.hxx> @@ -47,21 +48,14 @@ namespace configmgr { namespace { -bool parseHexDigit(char c, int * value) { +bool parseHexDigit(char c, int * value) +{ assert(value != nullptr); - if (c >= '0' && c <= '9') { - *value = c - '0'; - return true; - } - if (c >= 'A' && c <= 'F') { - *value = c - 'A' + 10; - return true; - } - if (c >= 'a' && c <= 'f') { - *value = c - 'a' + 10; - return true; - } - return false; + int converted = o3tl::convertToHex<int>(c); + if (converted < 0) + return false; + *value = converted; + return true; } bool parseValue(xmlreader::Span const & text, sal_Bool * value) { diff --git a/configure.ac b/configure.ac index 6da72c76b577..b00228c511b0 100644 --- a/configure.ac +++ b/configure.ac @@ -1505,6 +1505,7 @@ if test "$_os" = "Emscripten"; then fi fi AC_SUBST(EMSDK_FILE_PACKAGER) +AC_SUBST(EMSCRIPTEN_EXTRA_QTLOADER_CONFIG) AC_SUBST(EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS) AC_SUBST(EMSCRIPTEN_WORKERJS) @@ -14395,7 +14396,7 @@ ENABLE_MSVC_ANALYZE= AC_MSG_CHECKING([whether to use MSVC /analyze]) if test -n "$enable_msvc_analyze" -a "$enable_msvc_analyze" != "no"; then if test "$_os" = "WINNT"; then - ENABLE_MSVC_ANALYZE=Yes + ENABLE_MSVC_ANALYZE=yes AC_MSG_RESULT([yes]) else AC_MSG_ERROR([--enable-msvc-analyze is only supported on Windows]) @@ -15844,13 +15845,20 @@ AC_CONFIG_FILES([ sysui/desktop/macosx/Info.plist hardened_runtime.xcent:sysui/desktop/macosx/hardened_runtime.xcent.in lo.xcent:sysui/desktop/macosx/lo.xcent.in - vs-code.code-workspace.template:.vscode/vs-code-template.code-workspace.in]) + ]) # map unix-style mount dirs to windows directories: /mnt/c/foobar -> C:/foobar # easier to do it in a postprocessing command than to modify every single variable AC_CONFIG_FILES([config_host.mk], [ if test -n "$WSL_ONLY_AS_HELPER"; then sed -i -e 's#/mnt/\([[:alpha:]]\)/#\u\1:/#g' config_host.mk fi], [WSL_ONLY_AS_HELPER=$WSL_ONLY_AS_HELPER]) +# also use windows paths in the vs-code workspace file (esp. for the launch configurations that use +# INSTROOT) and also change the default shell from Cygwin to Git Bash +AC_CONFIG_FILES([vs-code.code-workspace.template:.vscode/vs-code-template.code-workspace.in], [ + if test -n "$WSL_ONLY_AS_HELPER"; then + sed -i -e 's#/mnt/\([[:alpha:]]\)/#\u\1:/#g' \ + -e '/defaultProfile/s#Cygwin#Git Bash#' vs-code.code-workspace.template + fi], [WSL_ONLY_AS_HELPER=$WSL_ONLY_AS_HELPER]) AC_CONFIG_HEADERS([config_host/config_atspi.h]) AC_CONFIG_HEADERS([config_host/config_buildconfig.h]) diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx index bb9d8a94b725..85064f8a4e16 100644 --- a/connectivity/source/drivers/file/FResultSet.cxx +++ b/connectivity/source/drivers/file/FResultSet.cxx @@ -1326,8 +1326,7 @@ void OResultSet::OpenImpl() #endif } - m_pFileSet->erase(std::remove(m_pFileSet->begin(),m_pFileSet->end(),0) - ,m_pFileSet->end()); + std::erase(*m_pFileSet, 0); } } } diff --git a/cppuhelper/source/compbase.cxx b/cppuhelper/source/compbase.cxx index ed4909b71106..aca77677a0f4 100644 --- a/cppuhelper/source/compbase.cxx +++ b/cppuhelper/source/compbase.cxx @@ -81,7 +81,6 @@ static bool td_equals(typelib_TypeDescriptionReference const* pTDR1, static cppu::type_entry* getTypeEntries(cppu::class_data* cd) { cppu::type_entry* pEntries = cd->m_typeEntries; - if (!cd->m_storedTypeRefs) // not inited? { static std::mutex aMutex; std::scoped_lock guard(aMutex); @@ -106,14 +105,9 @@ static cppu::type_entry* getTypeEntries(cppu::class_data* cd) // ref is statically held by getCppuType() pEntry->m_type.typeRef = rType.getTypeLibType(); } - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); cd->m_storedTypeRefs = true; } } - else - { - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); - } return pEntries; } diff --git a/cppuhelper/source/implbase_ex.cxx b/cppuhelper/source/implbase_ex.cxx index 3f88feb97dd1..9d3e03412737 100644 --- a/cppuhelper/source/implbase_ex.cxx +++ b/cppuhelper/source/implbase_ex.cxx @@ -64,7 +64,6 @@ static bool td_equals( static type_entry * getTypeEntries( class_data * cd ) { type_entry * pEntries = cd->m_typeEntries; - if (! cd->m_storedTypeRefs) // not inited? { static std::mutex aMutex; std::scoped_lock guard( aMutex ); @@ -86,14 +85,9 @@ static type_entry * getTypeEntries( class_data * cd ) // ref is statically held by getCppuType() pEntry->m_type.typeRef = rType.getTypeLibType(); } - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); cd->m_storedTypeRefs = true; } } - else - { - OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); - } return pEntries; } diff --git a/cppuhelper/source/weak.cxx b/cppuhelper/source/weak.cxx index 446cdc0e43ba..07fe1cbad359 100644 --- a/cppuhelper/source/weak.cxx +++ b/cppuhelper/source/weak.cxx @@ -254,16 +254,12 @@ OWeakObject::~OWeakObject() COVERITY_NOEXCEPT_FALSE // XWeak Reference< XAdapter > SAL_CALL OWeakObject::queryAdapter() { - if (!m_pWeakConnectionPoint) + std::scoped_lock aGuard( *gpWeakMutex ); + if( !m_pWeakConnectionPoint ) { - // only acquire mutex if member is not created - std::scoped_lock aGuard( *gpWeakMutex ); - if( !m_pWeakConnectionPoint ) - { - OWeakConnectionPoint * p = new OWeakConnectionPoint(this); - p->acquire(); - m_pWeakConnectionPoint = p; - } + OWeakConnectionPoint * p = new OWeakConnectionPoint(this); + p->acquire(); + m_pWeakConnectionPoint = p; } return m_pWeakConnectionPoint; diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk index 71a53ef3928d..383574c2e481 100644 --- a/cui/Library_cui.mk +++ b/cui/Library_cui.mk @@ -144,6 +144,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\ cui/source/dialogs/screenshotannotationdlg \ cui/source/dialogs/pastedlg \ cui/source/dialogs/postdlg \ + cui/source/dialogs/querydialog \ cui/source/dialogs/QrCodeGenDialog \ cui/source/dialogs/GraphicTestsDialog \ cui/source/dialogs/ImageViewerDialog \ diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk index b78aa328667f..e17527985f13 100644 --- a/cui/UIConfig_cui.mk +++ b/cui/UIConfig_cui.mk @@ -187,12 +187,12 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\ cui/uiconfig/ui/querydeletehatchdialog \ cui/uiconfig/ui/querydeletelineenddialog \ cui/uiconfig/ui/querydeletelinestyledialog \ + cui/uiconfig/ui/querydialog \ cui/uiconfig/ui/queryduplicatedialog \ cui/uiconfig/ui/querynoloadedfiledialog \ cui/uiconfig/ui/querynosavefiledialog \ cui/uiconfig/ui/querysavelistdialog \ cui/uiconfig/ui/queryupdategalleryfilelistdialog \ - cui/uiconfig/ui/querysetinsmodedialog \ cui/uiconfig/ui/recordnumberdialog \ cui/uiconfig/ui/rotationtabpage \ cui/uiconfig/ui/scriptorganizer \ diff --git a/cui/inc/bitmaps.hlst b/cui/inc/bitmaps.hlst index d064f7aee321..e118dc05d86a 100644 --- a/cui/inc/bitmaps.hlst +++ b/cui/inc/bitmaps.hlst @@ -89,4 +89,6 @@ inline constexpr OUString RID_SVXBMP_TOTD_DRAW = u"res/tipoftheday_d.png"_ustr; inline constexpr OUString RID_SVXBMP_TOTD_IMPRESS = u"res/tipoftheday_i.png"_ustr; inline constexpr OUString RID_SVXBMP_TOTD_SOFFICE = u"res/tipoftheday.png"_ustr; +inline constexpr OUString RID_CUIBMP_QUERY = u"res/query.png"_ustr; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc index 9d1687b72596..a6d08758a626 100644 --- a/cui/inc/strings.hrc +++ b/cui/inc/strings.hrc @@ -29,6 +29,7 @@ #define RID_CUISTR_KEY_GALLERY_DIR NC_("RID_SVXSTR_KEY_GALLERY_DIR", "Gallery") #define RID_CUISTR_KEY_TEMP_PATH NC_("RID_SVXSTR_KEY_TEMP_PATH", "Temporary files") #define RID_CUISTR_KEY_CLASSIFICATION_PATH NC_("RID_SVXSTR_KEY_CLASSIFICATION_PATH", "Classification") +#define RID_CUISTR_KEY_DOCUMENT_THEME_PATH NC_("RID_CUISTR_KEY_DOCUMENT_THEME_PATH", "Document Theme") #define RID_CUISTR_KEY_AUTOCORRECT_DIR NC_("RID_SVXSTR_KEY_AUTOCORRECT_DIR", "AutoCorrect") #define RID_CUISTR_KEY_LINGUISTIC_DIR NC_("RID_SVXSTR_KEY_LINGUISTIC_DIR", "Writing aids") /* %n will be replaced at runtime by a number starting with 1 and increasing as necessary */ diff --git a/cui/source/dialogs/SignSignatureLineDialog.cxx b/cui/source/dialogs/SignSignatureLineDialog.cxx index cb6a7191c436..52a5e5486cf7 100644 --- a/cui/source/dialogs/SignSignatureLineDialog.cxx +++ b/cui/source/dialogs/SignSignatureLineDialog.cxx @@ -164,7 +164,7 @@ IMPL_LINK_NOARG(SignSignatureLineDialog, chooseCertificate, weld::Button&, void) { m_xSelectedCertifate = xSignCertificate; svl::crypto::CertificateOrName aCertificateOrName; - aCertificateOrName.m_xCertificate = xSignCertificate; + aCertificateOrName.m_xCertificate = std::move(xSignCertificate); m_xBtnChooseCertificate->set_label( svx::SignatureLineHelper::getSignerName(aCertificateOrName)); } diff --git a/cui/source/dialogs/querydialog.cxx b/cui/source/dialogs/querydialog.cxx new file mode 100644 index 000000000000..ee7dc109707b --- /dev/null +++ b/cui/source/dialogs/querydialog.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/. + * + * 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 <querydialog.hxx> +#include <bitmaps.hlst> + +QueryDialog::QueryDialog(weld::Window* pParent, const OUString& sTitle, const OUString& sText, + const OUString& sQuestion, bool bShowAgain) + : GenericDialogController(pParent, u"cui/ui/querydialog.ui"_ustr, u"QueryDialog"_ustr) + , m_pTitle(m_xBuilder->weld_label(u"lbTitle"_ustr)) + , m_pText(m_xBuilder->weld_label(u"lbText"_ustr)) + , m_pQuestion(m_xBuilder->weld_label(u"lbQuestion"_ustr)) + , m_pImage(m_xBuilder->weld_image(u"imQuery"_ustr)) + , m_pCheckBox(m_xBuilder->weld_check_button(u"cbDontShowAgain"_ustr)) +{ + m_pTitle->set_label(sTitle); + m_pText->set_label(sText); + m_pQuestion->set_label(sQuestion); + m_pImage->set_from_icon_name(RID_CUIBMP_QUERY); + + if (!bShowAgain) + m_pCheckBox->hide(); +} diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index 91cae1fd5eea..f9927251748e 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -98,6 +98,7 @@ #include <DiagramDialog.hxx> #include <fileextcheckdlg.hxx> #include <TextColumnsPage.hxx> +#include <querydialog.hxx> #include <MacroManagerDialog.hxx> @@ -1607,4 +1608,25 @@ AbstractDialogFactory_Impl::CreateFileExtCheckDialog(weld::Window* pParent, cons } #endif +namespace +{ +class AbstractQueryDialog_Impl final + : public vcl::AbstractDialogImpl_Async<AbstractQueryDialog, + QueryDialog> +{ +public: + using AbstractDialogImpl_BASE::AbstractDialogImpl_BASE; + bool ShowAgain() const override { return m_pDlg->ShowAgain(); } +}; +} + +VclPtr<AbstractQueryDialog> +AbstractDialogFactory_Impl::CreateQueryDialog( + weld::Window* pParent, + const OUString& sTitle, const OUString& sText, const OUString& sQuestion, + bool bShowAgain) +{ + return VclPtr<AbstractQueryDialog_Impl>::Create(pParent, sTitle, sText, sQuestion, bShowAgain); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index caea8f6ee3ad..333b9f7fe230 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -223,6 +223,11 @@ public: weld::Window* pParent, SdrObjGroup& rDiagram) override; + virtual VclPtr<AbstractQueryDialog> CreateQueryDialog( + weld::Window* pParent, + const OUString& sTitle, const OUString& sText, const OUString& sQuestion, + bool bShowAgain) override; + #ifdef _WIN32 virtual VclPtr<VclAbstractDialog> CreateFileExtCheckDialog(weld::Window* pParent, const OUString& sTitle, diff --git a/cui/source/inc/querydialog.hxx b/cui/source/inc/querydialog.hxx new file mode 100644 index 000000000000..0db70d8f6146 --- /dev/null +++ b/cui/source/inc/querydialog.hxx @@ -0,0 +1,38 @@ +/* -*- 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 . + */ +#pragma once + +#include <vcl/weld.hxx> + +class QueryDialog final : public weld::GenericDialogController +{ +private: + std::unique_ptr<weld::Label> m_pTitle; + std::unique_ptr<weld::Label> m_pText; + std::unique_ptr<weld::Label> m_pQuestion; + std::unique_ptr<weld::Image> m_pImage; + std::unique_ptr<weld::CheckButton> m_pCheckBox; + +public: + QueryDialog(weld::Window* pParent, const OUString& sTitle, const OUString& sText, + const OUString& sQuestion, bool bShowAgain = true); + bool ShowAgain() const { return m_pCheckBox->get_active(); } +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/options/appearance.cxx b/cui/source/options/appearance.cxx index 46c80fd61bbe..d921bbfad759 100644 --- a/cui/source/options/appearance.cxx +++ b/cui/source/options/appearance.cxx @@ -104,6 +104,7 @@ SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage, , m_xColorChangeBtn((new ColorListBox(m_xBuilder->weld_menu_button(u"colorsdropdownbtn"_ustr), [this] { return GetFrameWeld(); }))) , m_xShowInDocumentChkBtn(m_xBuilder->weld_check_button(u"showindocumentchkbtn"_ustr)) + , m_xResetAllBtn(m_xBuilder->weld_button(u"resetallbtn"_ustr)) , m_xColorRadioBtn(m_xBuilder->weld_radio_button(u"colorradiobtn"_ustr)) , m_xImageRadioBtn(m_xBuilder->weld_radio_button(u"imageradiobtn"_ustr)) , m_xStretchedRadioBtn(m_xBuilder->weld_radio_button(u"stretchedradiobtn"_ustr)) @@ -113,18 +114,6 @@ SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage, InitThemes(); InitAppearance(); InitCustomization(); - UpdateControlsState(); -} - -void SvxAppearanceTabPage::UpdateControlsState() -{ - // in case of AUTOMATIC_COLOR_SCHEME, disable all the controls - bool bEnableControls = m_xSchemeList->get_active_id() != AUTOMATIC_COLOR_SCHEME; - m_xColorEntryBtn->set_sensitive(bEnableControls); - m_xColorChangeBtn->set_sensitive(bEnableControls); - m_xShowInDocumentChkBtn->set_sensitive(bEnableControls); - m_xColorRadioBtn->set_sensitive(bEnableControls); - EnableImageControls(bEnableControls && GetActiveEntry() == APPBACKGROUND); } void SvxAppearanceTabPage::LoadSchemeList() @@ -176,32 +165,19 @@ OUString SvxAppearanceTabPage::GetAllStrings() bool SvxAppearanceTabPage::FillItemSet(SfxItemSet* /* rSet */) { - // commit appearance value + // commit appearance value if changed if (eCurrentAppearanceMode != static_cast<Appearance>(MiscSettings::GetAppColorMode())) { MiscSettings::SetAppColorMode(static_cast<int>(eCurrentAppearanceMode)); - m_bRestartRequired = true; - // for automatic scheme, restart is not required as customizations section is disabled - if (pColorConfig->GetCurrentSchemeName() == AUTOMATIC_COLOR_SCHEME) - { - UpdateOldAppearance(); - m_bRestartRequired = false; - } + // if themes disabled then change the document colors as per the new appearance mode. + if (ThemeColors::IsThemeDisabled()) + UpdateDocumentAppearance(); } // commit ColorConfig if (pColorConfig->IsModified()) pColorConfig->Commit(); - // commit LibreOfficeTheme, enable it if the current scheme is not Automatic - if (m_xSchemeList->get_value_changed_from_saved()) - { - ThemeState eLibreOfficeThemeState = m_xSchemeList->get_active_id() != AUTOMATIC_COLOR_SCHEME - ? ThemeState::ENABLED - : ThemeState::DISABLED; - ThemeColors::SetThemeState(eLibreOfficeThemeState); - } - return true; } @@ -249,6 +225,12 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, AppearanceChangeHdl, weld::Toggleable&, vo eCurrentAppearanceMode = Appearance::DARK; // set the extension theme on light/dark + // restart iff appearance was toggled and theme was enabled + m_bRestartRequired = false; + if (eCurrentAppearanceMode != static_cast<Appearance>(MiscSettings::GetAppColorMode()) + && !ThemeColors::IsThemeDisabled()) + m_bRestartRequired = true; + UpdateColorDropdown(); } @@ -339,10 +321,9 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, SchemeChangeHdl, weld::ComboBox&, void) else pColorConfig->LoadScheme(m_xSchemeList->get_active_text()); - if (m_xSchemeList->get_value_changed_from_saved()) + if (m_xSchemeList->get_value_changed_from_saved() && !ThemeColors::IsThemeDisabled()) m_bRestartRequired = true; - UpdateControlsState(); UpdateRemoveBtnState(); } @@ -455,6 +436,28 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, BitmapChangeHdl, weld::ComboBox&, void) m_bRestartRequired = true; } +IMPL_LINK_NOARG(SvxAppearanceTabPage, ResetAllBtnHdl, weld::Button&, void) +{ + // load default document colors + ColorConfigValue aValue; + for (size_t i = 0; i < ColorConfigEntryCount; ++i) + { + aValue.nDarkColor = COL_AUTO; + aValue.nLightColor = COL_AUTO; + pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(i), aValue); + } + pColorConfig->Commit(); + + // RESET state for themes just prevents the theme colors from being used before + // they are reloaded from the StyleSettings, please read the comment above + // ColorConfig::SetupTheme()'s definition + if (!ThemeColors::IsThemeDisabled()) + { + ThemeColors::ResetTheme(); + m_bRestartRequired = true; + } +} + void SvxAppearanceTabPage::InitThemes() { // init schemes combobox @@ -498,6 +501,7 @@ void SvxAppearanceTabPage::InitCustomization() m_xColorChangeBtn->SetSelectHdl(LINK(this, SvxAppearanceTabPage, ColorValueChgHdl)); m_xShowInDocumentChkBtn->connect_toggled(LINK(this, SvxAppearanceTabPage, ShowInDocumentHdl)); m_xBitmapDropDownBtn->connect_changed(LINK(this, SvxAppearanceTabPage, BitmapChangeHdl)); + m_xResetAllBtn->connect_clicked(LINK(this, SvxAppearanceTabPage, ResetAllBtnHdl)); m_xColorRadioBtn->connect_toggled(LINK(this, SvxAppearanceTabPage, ColorImageToggleHdl)); m_xStretchedRadioBtn->connect_toggled( @@ -558,11 +562,8 @@ void SvxAppearanceTabPage::UpdateColorDropdown() // if the user changes appearance options for automatic theme, then follow the old behaviour // and change the document colors to light/dark based on the choice. -void SvxAppearanceTabPage::UpdateOldAppearance() +void SvxAppearanceTabPage::UpdateDocumentAppearance() { - if (pColorConfig->GetCurrentSchemeName() != AUTOMATIC_COLOR_SCHEME) - return; - ColorConfigValue aValue; bool bIsDarkModeEnabled = IsDarkModeEnabled(); for (size_t i = 0; i < WINDOWCOLOR; ++i) @@ -716,9 +717,11 @@ void SvxAppearanceTabPage::FillItemsList() aRegistryEntries.at(static_cast<ColorConfigEntry>(i))); m_xColorEntryBtn->append_separator("SeparatorID"); - for (size_t i = WINDOWCOLOR; i <= INACTIVEBORDERCOLOR; ++i) - m_xColorEntryBtn->append(OUString(cNames[i].cName), - aRegistryEntries.at(static_cast<ColorConfigEntry>(i))); + // don't show UI customization options if theme is disabled + if (!ThemeColors::IsThemeDisabled()) + for (size_t i = WINDOWCOLOR; i <= INACTIVEBORDERCOLOR; ++i) + m_xColorEntryBtn->append(OUString(cNames[i].cName), + aRegistryEntries.at(static_cast<ColorConfigEntry>(i))); } ColorConfigEntry SvxAppearanceTabPage::GetActiveEntry() diff --git a/cui/source/options/appearance.hxx b/cui/source/options/appearance.hxx index 5dc915a5f49e..712f45338ee8 100644 --- a/cui/source/options/appearance.hxx +++ b/cui/source/options/appearance.hxx @@ -54,6 +54,7 @@ private: std::unique_ptr<weld::ComboBox> m_xColorEntryBtn; std::unique_ptr<ColorListBox> m_xColorChangeBtn; std::unique_ptr<weld::CheckButton> m_xShowInDocumentChkBtn; + std::unique_ptr<weld::Button> m_xResetAllBtn; std::unique_ptr<weld::RadioButton> m_xColorRadioBtn; std::unique_ptr<weld::RadioButton> m_xImageRadioBtn; @@ -74,6 +75,7 @@ private: DECL_LINK(ColorImageToggleHdl, weld::Toggleable&, void); DECL_LINK(StretchedTiledToggleHdl, weld::Toggleable&, void); DECL_LINK(BitmapChangeHdl, weld::ComboBox&, void); + DECL_LINK(ResetAllBtnHdl, weld::Button&, void); void InitThemes(); void InitAppearance(); @@ -84,7 +86,7 @@ private: void UpdateRemoveBtnState(); void EnableImageControls(bool bEnabled); void UpdateColorDropdown(); - void UpdateOldAppearance(); + void UpdateDocumentAppearance(); bool IsDarkModeEnabled(); void FillItemsList(); ColorConfigEntry GetActiveEntry(); diff --git a/cui/source/options/optdict.cxx b/cui/source/options/optdict.cxx index 04dbd2ff801b..0b24752691f3 100644 --- a/cui/source/options/optdict.cxx +++ b/cui/source/options/optdict.cxx @@ -20,6 +20,7 @@ #include <editeng/unolingu.hxx> #include <o3tl/safeint.hxx> #include <svx/dialmgr.hxx> +#include <svx/ehdl.hxx> #include <com/sun/star/frame/XStorable.hpp> #include <com/sun/star/linguistic2/XDictionary.hpp> #include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp> @@ -183,8 +184,7 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, weld::Button&, void) { m_xNewDic = nullptr; // error: couldn't create new dictionary - SfxErrorContext aContext( ERRCTX_SVX_LINGU_DICTIONARY, OUString(), - m_xDialog.get(), RID_SVXERRCTX, SvxResLocale() ); + SvxErrorContext aContext(ERRCTX_SVX_LINGU_DICTIONARY, OUString(), m_xDialog.get()); ErrorHandler::HandleError( ErrCodeMsg( ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE, sDict ) ); m_xDialog->response(RET_CANCEL); diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 94f87bcc3dcd..47e125e2d1a0 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -1544,6 +1544,11 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet ) rSet->Put(SvxLanguageItem(MsLangId::resolveSystemLanguageByScriptType(eSelectLang, css::i18n::ScriptType::COMPLEX), SID_ATTR_CHAR_CTL_LANGUAGE)); } + + // tdf#163228: Mongolian script supports vertical text + pLangConfig->aCTLLanguageOptions.SetCTLVerticalText( + MsLangId::getPrimaryLanguage(eSelectLang) + == MsLangId::getPrimaryLanguage(LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA)); } if(m_xAsianSupportCB->get_state_changed_from_saved() ) diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 29c554fe8ffb..0ec4b206913f 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -109,6 +109,7 @@ constexpr Handle2CfgNameMapping_Impl Hdl2CfgMap_Impl[] { SvtPathOptions::Paths::Work, u"Work"_ustr }, { SvtPathOptions::Paths::Dictionary, u"Dictionary"_ustr }, { SvtPathOptions::Paths::Classification, u"Classification"_ustr }, + { SvtPathOptions::Paths::DocumentTheme, u"DocumentTheme"_ustr }, #if OSL_DEBUG_LEVEL > 1 { SvtPathOptions::Paths::Linguistic, u"Linguistic"_ustr }, #endif @@ -281,6 +282,9 @@ void SvxPathTabPage::Reset( const SfxItemSet* ) case SvtPathOptions::Paths::Classification: pId = RID_CUISTR_KEY_CLASSIFICATION_PATH; break; + case SvtPathOptions::Paths::DocumentTheme: + pId = RID_CUISTR_KEY_DOCUMENT_THEME_PATH; + break; #if OSL_DEBUG_LEVEL > 1 case SvtPathOptions::Paths::Linguistic: pId = RID_CUISTR_KEY_LINGUISTIC_DIR; diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx index 3f13a6bf6324..39fb9a7bcd6d 100644 --- a/cui/source/tabpages/page.cxx +++ b/cui/source/tabpages/page.cxx @@ -193,6 +193,7 @@ SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController* bool bCJK = SvtCJKOptions::IsAsianTypographyEnabled(); bool bCTL = SvtCTLOptions::IsCTLFontEnabled(); + bool bVertCTL = bCTL && SvtCTLOptions::IsCTLVerticalText(); bool bWeb = false; const SfxUInt16Item* pHtmlModeItem = rAttr.GetItemIfSet(SID_HTML_MODE, false); @@ -213,7 +214,7 @@ SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController* // #109989# do not show vertical directions in Writer/Web - if( !bWeb && bCJK ) + if (!bWeb && (bCJK || bVertCTL)) { m_xTextFlowBox->append(SvxFrameDirection::Vertical_RL_TB, SvxResId(RID_SVXSTR_PAGEDIR_RTL_VERT)); m_xTextFlowBox->append(SvxFrameDirection::Vertical_LR_TB, SvxResId(RID_SVXSTR_PAGEDIR_LTR_VERT)); diff --git a/cui/uiconfig/ui/appearance.ui b/cui/uiconfig/ui/appearance.ui index 0f69f7aabd12..26c6af15e757 100644 --- a/cui/uiconfig/ui/appearance.ui +++ b/cui/uiconfig/ui/appearance.ui @@ -292,7 +292,7 @@ <property name="orientation">vertical</property> <property name="spacing">3</property> <child> - <!-- n-columns=2 n-rows=4 --> + <!-- n-columns=2 n-rows=5 --> <object class="GtkGrid"> <property name="visible">True</property> <property name="can-focus">False</property> @@ -492,6 +492,21 @@ </packing> </child> <child> + <object class="GtkButton" id="resetallbtn"> + <property name="label" translatable="yes" context="appearancetabpage|resetallbtn">Reset All</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">4</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> <placeholder/> </child> </object> diff --git a/cui/uiconfig/ui/querysetinsmodedialog.ui b/cui/uiconfig/ui/querydialog.ui index 89b62be01eb2..4c40e9b53990 100644 --- a/cui/uiconfig/ui/querysetinsmodedialog.ui +++ b/cui/uiconfig/ui/querydialog.ui @@ -2,9 +2,8 @@ <!-- Generated with glade 3.40.0 --> <interface domain="cui"> <requires lib="gtk+" version="3.20"/> - <object class="GtkDialog" id="SetInsModeDialog"> + <object class="GtkDialog" id="QueryDialog"> <property name="can-focus">False</property> - <property name="title" translatable="yes" context="SetInsModeDialog|Dialog_Title">Confirm overwrite mode</property> <property name="resizable">False</property> <property name="type-hint">dialog</property> <child internal-child="vbox"> @@ -23,7 +22,7 @@ <property name="layout-style">end</property> <child> <object class="GtkButton" id="btnNo"> - <property name="label" translatable="yes" context="SetInsModeDialog|Button_No">No</property> + <property name="label" translatable="yes" context="QueryDialog|Button_No">No</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> @@ -36,7 +35,7 @@ </child> <child> <object class="GtkButton" id="btnYes"> - <property name="label" translatable="yes" context="SetInsModeDialog|Button_Yes">Yes</property> + <property name="label" translatable="yes" context="QueryDialog|Button_Yes">Yes</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> @@ -66,13 +65,16 @@ <object class="GtkLabel" id="lbTitle"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="hexpand">False</property> - <property name="label" translatable="yes" context="SetInsModeDialog|Label_Title">You are switching to the overwrite mode</property> <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> <attribute name="scale" value="1"/> </attributes> + <child internal-child="accessible"> + <object class="AtkObject" id="lbTitle-atkobject"> + <property name="AtkObject::accessible-role">static</property> + </object> + </child> </object> <packing> <property name="left-attach">1</property> @@ -84,11 +86,15 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="hexpand">False</property> - <property name="label" translatable="yes" context="SetInsModeDialog|Label_Info">The overwrite mode allows to type over text. It is indicated by a block cursor and at the statusbar. Press Insert again to switch back.</property> <property name="wrap">True</property> <property name="wrap-mode">word-char</property> <property name="max-width-chars">40</property> <property name="xalign">0</property> + <child internal-child="accessible"> + <object class="AtkObject" id="lbText-atkobject"> + <property name="AtkObject::accessible-role">static</property> + </object> + </child> </object> <packing> <property name="left-attach">1</property> @@ -100,9 +106,13 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="valign">start</property> - <property name="label" translatable="yes" context="SetInsModeDialog|Label_Question">Do you want to continue?</property> <property name="wrap">True</property> <property name="xalign">0</property> + <child internal-child="accessible"> + <object class="AtkObject" id="lbQuestion-atkobject"> + <property name="AtkObject::accessible-role">static</property> + </object> + </child> </object> <packing> <property name="left-attach">1</property> @@ -110,23 +120,13 @@ </packing> </child> <child> - <object class="GtkImage" id="imSetInsMode"> - <property name="visible">True</property> - <property name="can-focus">False</property> - </object> - <packing> - <property name="left-attach">0</property> - <property name="top-attach">1</property> - <property name="height">2</property> - </packing> - </child> - <child> <object class="GtkCheckButton" id="cbDontShowAgain"> - <property name="label" translatable="yes" context="SetInsModeDialog|Checkbox">Do not show again</property> + <property name="label" translatable="yes" context="QueryDialog|Checkbox">Do show again</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> - <property name="hexpand">True</property> + <property name="halign">start</property> + <property name="active">True</property> <property name="draw-indicator">True</property> </object> <packing> @@ -135,10 +135,24 @@ </packing> </child> <child> - <placeholder/> - </child> - <child> - <placeholder/> + <object class="GtkImage" id="imQuery"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="pixel-size">150</property> + <property name="icon_size">0</property> + <child internal-child="accessible"> + <object class="AtkObject" id="imQuery-atkobject"> + <property name="AtkObject::accessible-role">dialog</property> + </object> + </child> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">0</property> + <property name="height">4</property> + </packing> </child> </object> <packing> diff --git a/dbaccess/source/filter/hsqldb/utils.cxx b/dbaccess/source/filter/hsqldb/utils.cxx index 4ed05ae5075a..ac479d9e05a2 100644 --- a/dbaccess/source/filter/hsqldb/utils.cxx +++ b/dbaccess/source/filter/hsqldb/utils.cxx @@ -22,35 +22,12 @@ #include <comphelper/processfactory.hxx> #include <connectivity/dbexception.hxx> #include <sal/log.hxx> +#include <o3tl/numeric.hxx> #include "utils.hxx" using namespace dbahsql; -namespace -{ -int getHexValue(sal_Unicode c) -{ - if (c >= '0' && c <= '9') - { - return c - '0'; - } - else if (c >= 'A' && c <= 'F') - { - return c - 'A' + 10; - } - else if (c >= 'a' && c <= 'f') - { - return c - 'a' + 10; - } - else - { - return -1; - } -} - -} // unnamed namespace - //Convert ascii escaped unicode to utf-8 OUString utils::convertToUTF8(std::string_view original) { @@ -69,7 +46,7 @@ OUString utils::convertToUTF8(std::string_view original) sal_Unicode c = 0; for (sal_Int32 j = 0; j != 4; ++j) { - auto const n = getHexValue(res[i + j]); + auto const n = o3tl::convertToHex<int>(res[i + j]); if (n == -1) { escape = false; diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index 66b29c4cd1aa..a91270f94bad 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -2595,7 +2595,7 @@ void DesktopLOKTest::testCommentsCallbacksWriter() CPPUNIT_ASSERT_EQUAL(nCommentId2, aView2.m_aCommentCallbackResult.get<int>("id")); // Reply to nCommentId1 again - aCommandArgs = "{ \"Id\": { \"type\": \"string\", \"value\": \"" + OString::number(nCommentId1) + "\" }, \"Text\": { \"type\": \"string\", \"value\": \"Reply comment again\" } }"; + aCommandArgs = "{ \"Id\": { \"type\": \"string\", \"value\": \"" + OString::number(nCommentId1) + "\" }, \"Html\": { \"type\": \"string\", \"value\": \"Reply comment again\" } }"; pDocument->pClass->postUnoCommand(pDocument, ".uno:ReplyComment", aCommandArgs.getStr(), false); Scheduler::ProcessEventsToIdle(); @@ -2607,6 +2607,15 @@ void DesktopLOKTest::testCommentsCallbacksWriter() CPPUNIT_ASSERT_EQUAL(std::string("<div>Reply comment again</div>"), aView1.m_aCommentCallbackResult.get<std::string>("html")); CPPUNIT_ASSERT_EQUAL(std::string("<div>Reply comment again</div>"), aView2.m_aCommentCallbackResult.get<std::string>("html")); + // Ensure that an undo and redo restores the html contents + aView1.m_aCommentCallbackResult.clear(); + aView2.m_aCommentCallbackResult.clear(); + pDocument->pClass->postUnoCommand(pDocument, ".uno:Undo", "", false); + pDocument->pClass->postUnoCommand(pDocument, ".uno:Redo", "", false); + Scheduler::ProcessEventsToIdle(); + CPPUNIT_ASSERT_EQUAL(std::string("<div>Reply comment again</div>"), aView1.m_aCommentCallbackResult.get<std::string>("html")); + CPPUNIT_ASSERT_EQUAL(std::string("<div>Reply comment again</div>"), aView2.m_aCommentCallbackResult.get<std::string>("html")); + // .uno:ViewAnnotations returns total of 5 comments boost::property_tree::ptree aTree; char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:ViewAnnotations"); diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index edac3ef9e0b9..7bc0c16e5c53 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -323,7 +323,7 @@ constexpr ExtensionMap aWriterExtensionMap[] = { { "doc", u"MS Word 97"_ustr }, { "docm", u"MS Word 2007 XML VBA"_ustr }, - { "docx", u"MS Word 2007 XML"_ustr }, + { "docx", u"Office Open XML Text"_ustr }, { "fodt", u"OpenDocument Text Flat XML"_ustr }, { "html", u"HTML (StarWriter)"_ustr }, { "odt", u"writer8"_ustr }, @@ -4464,6 +4464,93 @@ static void doc_paintTile(LibreOfficeKitDocument* pThis, #endif } +inline static ITiledRenderable* getDocumentPointer(LibreOfficeKitDocument* pThis) +{ + ITiledRenderable* pDoc = getTiledRenderable(pThis); + + if (!pDoc) + { + SetLastExceptionMsg(u"Document doesn't support tiled rendering"_ustr); + return nullptr; + } + return pDoc; +} + +inline static void writeInfoLog(const int nPart, const int nMode, + const int nTileWidth, const int nTileHeight, const int nTilePosX, const int nTilePosY, + const int nCanvasWidth, const int nCanvasHeight) +{ + SAL_INFO( "lok.tiledrendering", "paintPartTile: painting @ " << nPart << " : " << nMode << " [" + << nTileWidth << "x" << nTileHeight << "]@(" + << nTilePosX << ", " << nTilePosY << ") to [" + << nCanvasWidth << "x" << nCanvasHeight << "]px" ); +} + +inline static int getFirstViewIdAsFallback(LibreOfficeKitDocument* pThis) +{ + // tile painting always needs a SfxViewShell::Current(), but actually + // it does not really matter which one - all of them should paint the + // same thing. It's important to get a view for the correct document, + // though. + // doc_getViewsCount() returns the count of views for the document in the current view. + int viewCount = doc_getViewsCount(pThis); + + if (viewCount == 0) return -1; + + std::vector<int> viewIds(viewCount); + doc_getViewIds(pThis, viewIds.data(), viewCount); + + int result = viewIds[0]; + doc_setView(pThis, result); + + SAL_WARN("lok.tiledrendering", "Why is this happening? A call to paint without setting a view?"); + + return result; +} + +inline static void disableViewCallbacks(LibLODocument_Impl* pDocument, const int viewId) +{ + const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(viewId); + if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) + handlerIt->second->disableCallbacks(); +} + +inline static void enableViewCallbacks(LibLODocument_Impl* pDocument, const int viewId) +{ + const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(viewId); + if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) + handlerIt->second->enableCallbacks(); +} + +inline static int getAlternativeViewForPaint(LibreOfficeKitDocument* pThis, ITiledRenderable* pDoc, SfxViewShell* pCurrentViewShell, + const std::string_view &sCurrentViewRenderState, const int nPart, const int nMode) +{ + SfxViewShell* pViewShell = SfxViewShell::GetFirst(); + while (pViewShell) + { + bool bIsInEdit = pViewShell->GetDrawView() && pViewShell->GetDrawView()->GetTextEditOutliner(); + + if (!bIsInEdit && pViewShell != pCurrentViewShell) + { + if (pViewShell->getPart() == nPart && pViewShell->getEditMode() == nMode) + { + OString sNewRenderState = pDoc->getViewRenderState(pViewShell); + + if (sCurrentViewRenderState == sNewRenderState) + { + const int nViewId = pViewShell->GetViewShellId().get(); + doc_setView(pThis, nViewId); + return nViewId; + } + } + } + + pViewShell = SfxViewShell::GetNext(*pViewShell); + } + + return -1; +} + static void doc_paintPartTile(LibreOfficeKitDocument* pThis, unsigned char* pBuffer, const int nPart, @@ -4477,46 +4564,26 @@ static void doc_paintPartTile(LibreOfficeKitDocument* pThis, SolarMutexGuard aGuard; SetLastExceptionMsg(); - SAL_INFO( "lok.tiledrendering", "paintPartTile: painting @ " << nPart << " : " << nMode << " [" - << nTileWidth << "x" << nTileHeight << "]@(" - << nTilePosX << ", " << nTilePosY << ") to [" - << nCanvasWidth << "x" << nCanvasHeight << "]px" ); - - LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); - int nOrigViewId = doc_getView(pThis); + writeInfoLog(nPart, nMode, nTileWidth, nTileHeight, nTilePosX, nTilePosY, nCanvasWidth, nCanvasHeight); - ITiledRenderable* pDoc = getTiledRenderable(pThis); + ITiledRenderable* pDoc = getDocumentPointer(pThis); if (!pDoc) - { - SetLastExceptionMsg(u"Document doesn't support tiled rendering"_ustr); return; - } + + LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); + + int nOrigViewId = doc_getView(pThis); if (nOrigViewId < 0) - { - // tile painting always needs a SfxViewShell::Current(), but actually - // it does not really matter which one - all of them should paint the - // same thing. It's important to get a view for the correct document, - // though. - // doc_getViewsCount() returns the count of views for the document in the current view. - int viewCount = doc_getViewsCount(pThis); - if (viewCount == 0) - return; + nOrigViewId = getFirstViewIdAsFallback(pThis); - std::vector<int> viewIds(viewCount); - doc_getViewIds(pThis, viewIds.data(), viewCount); + if (nOrigViewId == -1) + return; - nOrigViewId = viewIds[0]; - doc_setView(pThis, nOrigViewId); - } + // Data validity checks end here. // Disable callbacks while we are painting. - if (nOrigViewId >= 0) - { - const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(nOrigViewId); - if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) - handlerIt->second->disableCallbacks(); - } + disableViewCallbacks(pDocument, nOrigViewId); try { @@ -4524,86 +4591,38 @@ static void doc_paintPartTile(LibreOfficeKitDocument* pThis, int nOrigPart = 0; const int aType = doc_getDocumentType(pThis); const bool isText = (aType == LOK_DOCTYPE_TEXT); - const bool isCalc = (aType == LOK_DOCTYPE_SPREADSHEET); int nOrigEditMode = 0; bool bPaintTextEdit = true; int nViewId = nOrigViewId; - int nLastNonEditorView = -1; - int nViewMatchingMode = -1; SfxViewShell* pCurrentViewShell = SfxViewShell::Current(); + const OString sCurrentViewRenderState = pDoc->getViewRenderState(pCurrentViewShell); if (!isText) { - // Check if just switching to another view is enough, that has - // less side-effects. - if (nPart != doc_getPart(pThis) || nMode != pDoc->getEditMode()) + // Check if just switching to another view is enough, that has less side-effects. + // Render state is sometimes empty, don't risk it. + if ((nPart != doc_getPart(pThis) || nMode != pDoc->getEditMode()) && !sCurrentViewRenderState.isEmpty()) { - SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while (pViewShell) - { - bool bIsInEdit = pViewShell->GetDrawView() && - pViewShell->GetDrawView()->GetTextEditOutliner(); - - OString sCurrentViewRenderState = pDoc->getViewRenderState(pCurrentViewShell); - OString sNewRenderState = pDoc->getViewRenderState(pViewShell); + nViewId = getAlternativeViewForPaint(pThis, pDoc, pCurrentViewShell, sCurrentViewRenderState, nPart, nMode); - if (sCurrentViewRenderState == sNewRenderState && !bIsInEdit) - nLastNonEditorView = pViewShell->GetViewShellId().get(); - - if (pViewShell->getPart() == nPart && - pViewShell->getEditMode() == nMode && - sCurrentViewRenderState == sNewRenderState && - !bIsInEdit) - { - nViewId = pViewShell->GetViewShellId().get(); - nViewMatchingMode = nViewId; - nLastNonEditorView = nViewId; - doc_setView(pThis, nViewId); - break; - } - else if (pViewShell->getEditMode() == nMode && sCurrentViewRenderState == sNewRenderState && !bIsInEdit) - { - nViewMatchingMode = pViewShell->GetViewShellId().get(); - } - - pViewShell = SfxViewShell::GetNext(*pViewShell); - } - } - - // if not found view with correct part - // - at least avoid rendering active textbox, This is for Impress. - // - prefer view with the same mode - if (nViewMatchingMode >= 0 && nViewMatchingMode != nViewId) - { - nViewId = nViewMatchingMode; - doc_setView(pThis, nViewId); - } - else if (!isCalc && nLastNonEditorView >= 0 && nLastNonEditorView != nViewId && - pCurrentViewShell && pCurrentViewShell->GetDrawView() && - pCurrentViewShell->GetDrawView()->GetTextEditOutliner()) - { - nViewId = nLastNonEditorView; - doc_setView(pThis, nViewId); + if (nViewId == -1) + nViewId = nOrigViewId; // Couldn't find an alternative view. + // else -> We found an alternative view and already switched to that. } // Disable callbacks while we are painting - after setting the view - if (nViewId != nOrigViewId && nViewId >= 0) - { - const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(nViewId); - if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) - handlerIt->second->disableCallbacks(); - } - - nOrigPart = doc_getPart(pThis); - if (nPart != nOrigPart) - { - doc_setPartImpl(pThis, nPart, false); - } - - nOrigEditMode = pDoc->getEditMode(); - if (nOrigEditMode != nMode) + if (nViewId != nOrigViewId) + disableViewCallbacks(pDocument, nViewId); + else { - SfxLokHelper::setEditMode(nMode, pDoc); + // If we are here, we couldn't find an alternative view. We need to check the part and mode. + nOrigPart = doc_getPart(pThis); + if (nPart != nOrigPart) + doc_setPartImpl(pThis, nPart, false); + + nOrigEditMode = pDoc->getEditMode(); + if (nOrigEditMode != nMode) + SfxLokHelper::setEditMode(nMode, pDoc); } bPaintTextEdit = (nPart == nOrigPart && nMode == nOrigEditMode); @@ -4616,25 +4635,19 @@ static void doc_paintPartTile(LibreOfficeKitDocument* pThis, { pDoc->setPaintTextEdit(true); - if (nMode != nOrigEditMode) + if (nViewId == nOrigViewId) { - SfxLokHelper::setEditMode(nOrigEditMode, pDoc); - } + // We didn't find an alternative view, set the part and mode back to their initial values if needed. + if (nMode != nOrigEditMode) + SfxLokHelper::setEditMode(nOrigEditMode, pDoc); - if (nPart != nOrigPart) - { - doc_setPartImpl(pThis, nOrigPart, false); + if (nPart != nOrigPart) + doc_setPartImpl(pThis, nOrigPart, false); } - - if (nViewId != nOrigViewId) + else { - if (nViewId >= 0) - { - const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(nViewId); - if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) - handlerIt->second->enableCallbacks(); - } - + // We found an alternative view and used it. Enable its callbacks again and turn back to our original view. + enableViewCallbacks(pDocument, nViewId); doc_setView(pThis, nOrigViewId); } } @@ -4644,12 +4657,7 @@ static void doc_paintPartTile(LibreOfficeKitDocument* pThis, // Nothing to do but restore the PartTilePainting flag. } - if (nOrigViewId >= 0) - { - const auto handlerIt = pDocument->mpCallbackFlushHandlers.find(nOrigViewId); - if (handlerIt != pDocument->mpCallbackFlushHandlers.end()) - handlerIt->second->enableCallbacks(); - } + enableViewCallbacks(pDocument, nOrigViewId); } static int doc_getTileMode(SAL_UNUSED_PARAMETER LibreOfficeKitDocument* /*pThis*/) @@ -4741,11 +4749,10 @@ static void doc_initializeForRendering(LibreOfficeKitDocument* pThis, } if (!aSignatureCert.empty() && !aSignatureKey.empty()) { - uno::Reference<security::XCertificate> xCertificate = SfxLokHelper::getSigningCertificate(aSignatureCert, aSignatureKey); if (SfxViewShell* pViewShell = SfxViewShell::Current()) { svl::crypto::CertificateOrName aCertificateOrName; - aCertificateOrName.m_xCertificate = xCertificate; + aCertificateOrName.m_xCertificate = SfxLokHelper::getSigningCertificate(aSignatureCert, aSignatureKey); pViewShell->SetSigningCertificate(aCertificateOrName); } } @@ -5392,8 +5399,7 @@ static bool isCommandAllowed(OUString& command) { if (pViewShell && command == u".uno:TransformDialog"_ustr) { // If the just added signature line shape is selected, allow moving it. - SfxObjectShell* pDocShell = pViewShell->GetObjectShell(); - bRet = pDocShell->GetSignPDFCertificate().Is(); + bRet = pViewShell->GetSignPDFCertificate().Is(); } return bRet; } @@ -6649,6 +6655,34 @@ static char* getUndoOrRedo(LibreOfficeKitDocument* pThis, UndoOrRedo eCommand) return pJson; } +/// Returns only the number of the undo or redo elements +static char* getUndoOrRedoCount(LibreOfficeKitDocument* pThis, UndoOrRedo eCommand) +{ + LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); + + auto pBaseModel = dynamic_cast<SfxBaseModel*>(pDocument->mxComponent.get()); + if (!pBaseModel) + return nullptr; + + SfxObjectShell* pObjectShell = pBaseModel->GetObjectShell(); + if (!pObjectShell) + return nullptr; + + SfxUndoManager* pUndoManager = pObjectShell->GetUndoManager(); + if (!pUndoManager) + return nullptr; + + size_t nCount; + if (eCommand == UndoOrRedo::UNDO) + nCount = pUndoManager->GetUndoActionCount(); + else + nCount = pUndoManager->GetRedoActionCount(); + + OUString aString = OUString::number(nCount); + char* pCountStr = convertOUString(aString); + return pCountStr; +} + /// Returns the JSON representation of the redline stack. static char* getTrackedChanges(LibreOfficeKitDocument* pThis) { @@ -6763,6 +6797,14 @@ static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCo { return getUndoOrRedo(pThis, UndoOrRedo::REDO); } + else if (aCommand == ".uno:UndoCount") + { + return getUndoOrRedoCount(pThis, UndoOrRedo::UNDO); + } + else if (aCommand == ".uno:RedoCount") + { + return getUndoOrRedoCount(pThis, UndoOrRedo::REDO); + } else if (aCommand == ".uno:AcceptTrackedChanges") { return getTrackedChanges(pThis); @@ -7958,6 +8000,19 @@ static void preloadData() } std::cerr << "\n"; + // preload all available hyphenators + css::uno::Reference<linguistic2::XHyphenator> xHyphenator(xLngSvcMgr->getHyphenator()); + css::uno::Reference<linguistic2::XSupportedLocales> xHyphLocales(xHyphenator, css::uno::UNO_QUERY_THROW); + aLocales = xHyphLocales->getLocales(); + std::cerr << "Preloading local hyphenators: "; + for (auto &it : std::as_const(aLocales)) + { + std::cerr << LanguageTag::convertToBcp47(it) << " "; + css::beans::PropertyValues aNone; + xHyphenator->createPossibleHyphens(u"forcefed"_ustr, it, aNone); + } + std::cerr << "\n"; + std::cerr << "Preloading breakiterator\n"; if (aLocales.getLength()) { diff --git a/download.lst b/download.lst index e2327fdd6827..014dacbcff4b 100644 --- a/download.lst +++ b/download.lst @@ -121,8 +121,8 @@ FIREBIRD_TARBALL := Firebird-3.0.7.33374-0.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts -FONTCONFIG_SHA256SUM := 63a0658d0e06e0fa886106452b58ef04f21f58202ea02a94c39de0d3335d7c0e -FONTCONFIG_TARBALL := fontconfig-2.15.0.tar.xz +FONTCONFIG_SHA256SUM := 6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220 +FONTCONFIG_TARBALL := fontconfig-2.16.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts @@ -394,8 +394,8 @@ LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LANGTAGREG_SHA256SUM := 121f27bd1fabac9a74fb042cf68396b6df74cdf5d1ccc30f4c9b78584cc13864 -LANGTAGREG_TARBALL := language-subtag-registry-2024-11-19.tar.bz2 +LANGTAGREG_SHA256SUM := 06b37484c2736816e84b8bdd2075011d5961c2316865bc2795831230b925608d +LANGTAGREG_TARBALL := language-subtag-registry-2025-01-21.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts @@ -568,8 +568,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LIBPNG_SHA256SUM := 926485350139ffb51ef69760db35f78846c805fef3d59bfdcb2fba704663f370 -LIBPNG_TARBALL := libpng-1.6.45.tar.xz +LIBPNG_SHA256SUM := f3aa8b7003998ab92a4e9906c18d19853e999f9d3bca9bd1668f54fa81707cb1 +LIBPNG_TARBALL := libpng-1.6.46.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx index 4a8383a5a354..5ecd367b1c95 100644 --- a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx @@ -27,9 +27,6 @@ #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx> -using namespace com::sun::star; - - namespace drawinglayer::primitive2d { UnifiedTransparencePrimitive2D::UnifiedTransparencePrimitive2D( diff --git a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx index 80d5e73e0416..df074f4ca790 100644 --- a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx @@ -65,7 +65,8 @@ using namespace com::sun::star; namespace { void impl_cairo_set_hairline(cairo_t* pRT, - const drawinglayer::geometry::ViewInformation2D& rViewInformation) + const drawinglayer::geometry::ViewInformation2D& rViewInformation, + bool bCairoCoordinateLimitWorkaroundActive) { #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 18, 0) void* addr(dlsym(nullptr, "cairo_set_hairline")); @@ -75,11 +76,19 @@ void impl_cairo_set_hairline(cairo_t* pRT, return; } #endif - // avoid cairo_device_to_user_distance, see note on that below - const double fPx( - (rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)) - .getLength()); - cairo_set_line_width(pRT, fPx); + if (bCairoCoordinateLimitWorkaroundActive) + { + // we have to render in view coordiantes, set line width to 1.0 + cairo_set_line_width(pRT, 1.0); + } + else + { + // avoid cairo_device_to_user_distance, see note on that below + const double fPx( + (rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)) + .getLength()); + cairo_set_line_width(pRT, fPx); + } } void addB2DPolygonToPathGeometry(cairo_t* pRT, const basegfx::B2DPolygon& rPolygon) @@ -860,6 +869,71 @@ basegfx::B2DRange getDiscreteViewRange(cairo_t* pRT) return basegfx::B2DRange(basegfx::B2DPoint(clip_x1, clip_y1), basegfx::B2DPoint(clip_x2, clip_y2)); } + +bool checkCoordinateLimitWorkaroundNeededForUsedCairo() +{ + // setup surface and render context + cairo_surface_t* pSurface(cairo_image_surface_create(CAIRO_FORMAT_RGB24, 8, 8)); + if (!pSurface) + // got no surface -> be pessimistic + return true; + + cairo_t* pRender(cairo_create(pSurface)); + if (!pRender) + { + // got no render -> be pessimistic + cairo_surface_destroy(pSurface); + return true; + } + + // set basic values + cairo_set_antialias(pRender, CAIRO_ANTIALIAS_NONE); + cairo_set_fill_rule(pRender, CAIRO_FILL_RULE_EVEN_ODD); + cairo_set_operator(pRender, CAIRO_OPERATOR_OVER); + cairo_set_source_rgb(pRender, 1.0, 0.0, 0.0); + + // create a to-be rendered area centered at the fNumCairoMax + // spot and 8x8 discrete units in size + constexpr double fNumCairoMax(1 << 23); + const basegfx::B2DPoint aCenter(fNumCairoMax, fNumCairoMax); + const basegfx::B2DPoint aOffset(4, 4); + const basegfx::B2DRange aObject(aCenter - aOffset, aCenter + aOffset); + + // create transformation to render that to an area with + // range(0, 0, 8, 8) and set as transformation + const basegfx::B2DHomMatrix aObjectToView(basegfx::utils::createSourceRangeTargetRangeTransform( + aObject, basegfx::B2DRange(0, 0, 8, 8))); + cairo_matrix_t aMatrix; + cairo_matrix_init(&aMatrix, aObjectToView.a(), aObjectToView.b(), aObjectToView.c(), + aObjectToView.d(), aObjectToView.e(), aObjectToView.f()); + cairo_set_matrix(pRender, &aMatrix); + + // get/create the path for an object exactly filling that area + cairo_new_path(pRender); + basegfx::B2DPolyPolygon aObjectPolygon(basegfx::utils::createPolygonFromRect(aObject)); + CairoPathHelper aPathHelper(aObjectPolygon); + cairo_append_path(pRender, aPathHelper.getCairoPath()); + + // render it and flush since we want to immediately inspect result + cairo_fill(pRender); + cairo_surface_flush(pSurface); + + // get access to pixel data + const sal_uInt32 nStride(cairo_image_surface_get_stride(pSurface)); + sal_uInt8* pStartPixelData(cairo_image_surface_get_data(pSurface)); + + // extract red value for pixels at (1,1) and (7,7) + sal_uInt8 aRedAt_1_1((pStartPixelData + (nStride * 1) + 1)[SVP_CAIRO_RED]); + sal_uInt8 aRedAt_6_6((pStartPixelData + (nStride * 6) + 6)[SVP_CAIRO_RED]); + + // cleanup + cairo_destroy(pRender); + cairo_surface_destroy(pSurface); + + // if cairo works or has no 24.8 internal format all pixels + // have to be red (255), thus workaround is needed if != + return aRedAt_1_1 != aRedAt_6_6; +} } namespace drawinglayer::processor2d @@ -876,6 +950,7 @@ CairoPixelProcessor2D::CairoPixelProcessor2D(const geometry::ViewInformation2D& , mbRenderDecoratedTextDirect( officecfg::Office::Common::Drawinglayer::RenderDecoratedTextDirect::get()) , mnClipRecursionCount(0) + , mbCairoCoordinateLimitWorkaroundActive(false) { if (nWidthPixel <= 0 || nHeightPixel <= 0) // no size, invalid @@ -900,6 +975,9 @@ CairoPixelProcessor2D::CairoPixelProcessor2D(const geometry::ViewInformation2D& : CAIRO_ANTIALIAS_NONE); cairo_set_fill_rule(mpRT, CAIRO_FILL_RULE_EVEN_ODD); cairo_set_operator(mpRT, CAIRO_OPERATOR_OVER); + + // evaluate if CairoCoordinateLimitWorkaround is needed + evaluateCairoCoordinateLimitWorkaround(); } CairoPixelProcessor2D::CairoPixelProcessor2D(const geometry::ViewInformation2D& rViewInformation, @@ -915,59 +993,63 @@ CairoPixelProcessor2D::CairoPixelProcessor2D(const geometry::ViewInformation2D& , mbRenderDecoratedTextDirect( officecfg::Office::Common::Drawinglayer::RenderDecoratedTextDirect::get()) , mnClipRecursionCount(0) + , mbCairoCoordinateLimitWorkaroundActive(false) { - if (pTarget) - { - bool bClipNeeded(false); + // no target, nothing to initialize + if (nullptr == pTarget) + return; - if (0 != nOffsetPixelX || 0 != nOffsetPixelY || 0 != nWidthPixel || 0 != nHeightPixel) + bool bClipNeeded(false); + + if (0 != nOffsetPixelX || 0 != nOffsetPixelY || 0 != nWidthPixel || 0 != nHeightPixel) + { + if (0 != nOffsetPixelX || 0 != nOffsetPixelY) { - if (0 != nOffsetPixelX || 0 != nOffsetPixelY) + // if offset is used we need initial clip + bClipNeeded = true; + } + else + { + // no offset used, compare to real pixel size + const tools::Long nRealPixelWidth(cairo_image_surface_get_width(pTarget)); + const tools::Long nRealPixelHeight(cairo_image_surface_get_height(pTarget)); + + if (nRealPixelWidth != nWidthPixel || nRealPixelHeight != nHeightPixel) { - // if offset is used we need initial clip + // if size differs we need initial clip bClipNeeded = true; } - else - { - // no offset used, compare to real pixel size - const tools::Long nRealPixelWidth(cairo_image_surface_get_width(pTarget)); - const tools::Long nRealPixelHeight(cairo_image_surface_get_height(pTarget)); - - if (nRealPixelWidth != nWidthPixel || nRealPixelHeight != nHeightPixel) - { - // if size differs we need initial clip - bClipNeeded = true; - } - } } + } - if (bClipNeeded) - { - // optional: if the possibility to add an initial clip relative - // to the real pixel dimensions of the target surface is used, - // apply it here using that nice existing method of cairo - mpOwnedSurface = cairo_surface_create_for_rectangle( - pTarget, nOffsetPixelX, nOffsetPixelY, nWidthPixel, nHeightPixel); + if (bClipNeeded) + { + // optional: if the possibility to add an initial clip relative + // to the real pixel dimensions of the target surface is used, + // apply it here using that nice existing method of cairo + mpOwnedSurface = cairo_surface_create_for_rectangle(pTarget, nOffsetPixelX, nOffsetPixelY, + nWidthPixel, nHeightPixel); - if (nullptr != mpOwnedSurface) - mpRT = cairo_create(mpOwnedSurface); - } - else - { - // create RenderTarget for full target - mpRT = cairo_create(pTarget); - } + if (nullptr != mpOwnedSurface) + mpRT = cairo_create(mpOwnedSurface); + } + else + { + // create RenderTarget for full target + mpRT = cairo_create(pTarget); + } - if (nullptr != mpRT) - { - // initialize some basic used values/settings - cairo_set_antialias(mpRT, rViewInformation.getUseAntiAliasing() - ? CAIRO_ANTIALIAS_DEFAULT - : CAIRO_ANTIALIAS_NONE); - cairo_set_fill_rule(mpRT, CAIRO_FILL_RULE_EVEN_ODD); - cairo_set_operator(mpRT, CAIRO_OPERATOR_OVER); - } + if (nullptr != mpRT) + { + // initialize some basic used values/settings + cairo_set_antialias(mpRT, rViewInformation.getUseAntiAliasing() ? CAIRO_ANTIALIAS_DEFAULT + : CAIRO_ANTIALIAS_NONE); + cairo_set_fill_rule(mpRT, CAIRO_FILL_RULE_EVEN_ODD); + cairo_set_operator(mpRT, CAIRO_OPERATOR_OVER); } + + // evaluate if CairoCoordinateLimitWorkaround is needed + evaluateCairoCoordinateLimitWorkaround(); } CairoPixelProcessor2D::~CairoPixelProcessor2D() @@ -1158,7 +1240,7 @@ void CairoPixelProcessor2D::paintBitmapAlpha(const BitmapEx& rBitmapEx, const basegfx::B2DPolygon& aPolygon(basegfx::utils::createUnitPolygon()); // draw directly, done - paintPolyPoylgonRGBA(basegfx::B2DPolyPolygon(aPolygon), aModifiedColor, fTransparency); + paintPolyPolygonRGBA(basegfx::B2DPolyPolygon(aPolygon), aModifiedColor, fTransparency); return; } @@ -1196,7 +1278,8 @@ void CairoPixelProcessor2D::paintBitmapAlpha(const BitmapEx& rBitmapEx, if (bRenderTransformationBounds) { cairo_set_source_rgba(mpRT, 1, 0, 0, 0.8); - impl_cairo_set_hairline(mpRT, getViewInformation2D()); + impl_cairo_set_hairline(mpRT, getViewInformation2D(), + isCairoCoordinateLimitWorkaroundActive()); cairo_rectangle(mpRT, 0, 0, 1, 1); cairo_stroke(mpRT); } @@ -1324,16 +1407,6 @@ void CairoPixelProcessor2D::processPolygonHairlinePrimitive2D( cairo_save(mpRT); - // set linear transformation - cairo_matrix_t aMatrix; - const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); - const basegfx::B2DHomMatrix& rObjectToView( - getViewInformation2D().getObjectToViewTransformation()); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e() + fAAOffset, - rObjectToView.f() + fAAOffset); - cairo_set_matrix(mpRT, &aMatrix); - // determine & set color const basegfx::BColor aHairlineColor( maBColorModifierStack.getModifiedColor(rPolygonHairlinePrimitive2D.getBColor())); @@ -1341,13 +1414,42 @@ void CairoPixelProcessor2D::processPolygonHairlinePrimitive2D( aHairlineColor.getBlue()); // set LineWidth, use Cairo's special cairo_set_hairline - impl_cairo_set_hairline(mpRT, getViewInformation2D()); + impl_cairo_set_hairline(mpRT, getViewInformation2D(), isCairoCoordinateLimitWorkaroundActive()); + + if (isCairoCoordinateLimitWorkaroundActive()) + { + // need to fallback to paint in view coordinates, unfortunately + // need to transform self (cairo will do it wrong in this coordinate + // space), so no need to try to buffer + cairo_new_path(mpRT); + basegfx::B2DPolygon aAdaptedPolygon(rPolygon); + const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); + aAdaptedPolygon.transform(basegfx::utils::createTranslateB2DHomMatrix(fAAOffset, fAAOffset) + * getViewInformation2D().getObjectToViewTransformation()); + cairo_identity_matrix(mpRT); + addB2DPolygonToPathGeometry(mpRT, aAdaptedPolygon); + cairo_stroke(mpRT); + } + else + { + // set linear transformation. use own, prepared, re-usable + // ObjectToViewTransformation and PolyPolygon data and let + // cairo do the transformations + cairo_matrix_t aMatrix; + const basegfx::B2DHomMatrix& rObjectToView( + getViewInformation2D().getObjectToViewTransformation()); + const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); + cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), + rObjectToView.d(), rObjectToView.e() + fAAOffset, + rObjectToView.f() + fAAOffset); + cairo_set_matrix(mpRT, &aMatrix); - // get PathGeometry & paint it - cairo_new_path(mpRT); - getOrCreatePathGeometry(mpRT, rPolygon, getViewInformation2D(), - getViewInformation2D().getUseAntiAliasing()); - cairo_stroke(mpRT); + // get PathGeometry & paint it + cairo_new_path(mpRT); + getOrCreatePathGeometry(mpRT, rPolygon, getViewInformation2D(), + getViewInformation2D().getUseAntiAliasing()); + cairo_stroke(mpRT); + } cairo_restore(mpRT); } @@ -1355,11 +1457,11 @@ void CairoPixelProcessor2D::processPolygonHairlinePrimitive2D( void CairoPixelProcessor2D::processPolyPolygonColorPrimitive2D( const primitive2d::PolyPolygonColorPrimitive2D& rPolyPolygonColorPrimitive2D) { - paintPolyPoylgonRGBA(rPolyPolygonColorPrimitive2D.getB2DPolyPolygon(), + paintPolyPolygonRGBA(rPolyPolygonColorPrimitive2D.getB2DPolyPolygon(), rPolyPolygonColorPrimitive2D.getBColor()); } -void CairoPixelProcessor2D::paintPolyPoylgonRGBA(const basegfx::B2DPolyPolygon& rPolyPolygon, +void CairoPixelProcessor2D::paintPolyPolygonRGBA(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::BColor& rColor, double fTransparency) { @@ -1379,14 +1481,6 @@ void CairoPixelProcessor2D::paintPolyPoylgonRGBA(const basegfx::B2DPolyPolygon& cairo_save(mpRT); - // set linear transformation - cairo_matrix_t aMatrix; - const basegfx::B2DHomMatrix& rObjectToView( - getViewInformation2D().getObjectToViewTransformation()); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e(), rObjectToView.f()); - cairo_set_matrix(mpRT, &aMatrix); - // determine & set color const basegfx::BColor aFillColor(maBColorModifierStack.getModifiedColor(rColor)); @@ -1397,10 +1491,36 @@ void CairoPixelProcessor2D::paintPolyPoylgonRGBA(const basegfx::B2DPolyPolygon& cairo_set_source_rgb(mpRT, aFillColor.getRed(), aFillColor.getGreen(), aFillColor.getBlue()); - // get PathGeometry & paint it - cairo_new_path(mpRT); - getOrCreateFillGeometry(mpRT, rPolyPolygon); - cairo_fill(mpRT); + if (isCairoCoordinateLimitWorkaroundActive()) + { + // need to fallback to paint in view coordinates, unfortunately + // need to transform self (cairo will do it wrong in this coordinate + // space), so no need to try to buffer + cairo_new_path(mpRT); + basegfx::B2DPolyPolygon aAdaptedPolyPolygon(rPolyPolygon); + aAdaptedPolyPolygon.transform(getViewInformation2D().getObjectToViewTransformation()); + cairo_identity_matrix(mpRT); + for (const auto& rPolygon : aAdaptedPolyPolygon) + addB2DPolygonToPathGeometry(mpRT, rPolygon); + cairo_fill(mpRT); + } + else + { + // set linear transformation. use own, prepared, re-usable + // ObjectToViewTransformation and PolyPolygon data and let + // cairo do the transformations + cairo_matrix_t aMatrix; + const basegfx::B2DHomMatrix& rObjectToView( + getViewInformation2D().getObjectToViewTransformation()); + cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), + rObjectToView.d(), rObjectToView.e(), rObjectToView.f()); + cairo_set_matrix(mpRT, &aMatrix); + + // get PathGeometry & paint it + cairo_new_path(mpRT); + getOrCreateFillGeometry(mpRT, rPolyPolygon); + cairo_fill(mpRT); + } cairo_restore(mpRT); } @@ -1678,24 +1798,41 @@ void CairoPixelProcessor2D::processMaskPrimitive2D( cairo_save(mpRT); - // set linear transformation for applying mask. use no fAAOffset for mask - cairo_matrix_t aMatrix; - const basegfx::B2DHomMatrix& rObjectToView( - getViewInformation2D().getObjectToViewTransformation()); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e(), rObjectToView.f()); - cairo_set_matrix(mpRT, &aMatrix); + if (isCairoCoordinateLimitWorkaroundActive()) + { + // need to fallback to paint in view coordinates, unfortunately + // need to transform self (cairo will do it wrong in this coordinate + // space), so no need to try to buffer + cairo_new_path(mpRT); + basegfx::B2DPolyPolygon aAdaptedPolyPolygon(rMask); + aAdaptedPolyPolygon.transform(getViewInformation2D().getObjectToViewTransformation()); + for (const auto& rPolygon : aAdaptedPolyPolygon) + addB2DPolygonToPathGeometry(mpRT, rPolygon); - // create path geometry and put mask as path - cairo_new_path(mpRT); - getOrCreateFillGeometry(mpRT, rMask); + // clip to this mask + cairo_clip(mpRT); + } + else + { + // set linear transformation for applying mask. use no fAAOffset for mask + cairo_matrix_t aMatrix; + const basegfx::B2DHomMatrix& rObjectToView( + getViewInformation2D().getObjectToViewTransformation()); + cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), + rObjectToView.d(), rObjectToView.e(), rObjectToView.f()); + cairo_set_matrix(mpRT, &aMatrix); - // clip to this mask - cairo_clip(mpRT); + // create path geometry and put mask as path + cairo_new_path(mpRT); + getOrCreateFillGeometry(mpRT, rMask); - // reset transformation to not have it set when processing - // child content below (was only used to set clip path) - cairo_identity_matrix(mpRT); + // clip to this mask + cairo_clip(mpRT); + + // reset transformation to not have it set when processing + // child content below (was only used to set clip path) + cairo_identity_matrix(mpRT); + } // process sub-content (that shall be masked) mnClipRecursionCount++; @@ -1957,14 +2094,6 @@ void CairoPixelProcessor2D::processPolygonStrokePrimitive2D( cairo_save(mpRT); - // set linear transformation - cairo_matrix_t aMatrix; - const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e() + fAAOffset, - rObjectToView.f() + fAAOffset); - cairo_set_matrix(mpRT, &aMatrix); - // setup line attributes cairo_line_join_t eCairoLineJoin = CAIRO_LINE_JOIN_MITER; switch (rLineAttribute.getLineJoin()) @@ -2015,33 +2144,77 @@ void CairoPixelProcessor2D::processPolygonStrokePrimitive2D( aLineColor.setRed(0.5); cairo_set_source_rgb(mpRT, aLineColor.getRed(), aLineColor.getGreen(), aLineColor.getBlue()); - // process/set LineWidth - const double fObjectLineWidth( - bHairline ? (getViewInformation2D().getInverseObjectToViewTransformation() - * basegfx::B2DVector(1.0, 0.0)) - .getLength() - : rLineAttribute.getWidth()); - cairo_set_line_width(mpRT, fObjectLineWidth); - // check stroke const attribute::StrokeAttribute& rStrokeAttribute( rPolygonStrokeCandidate.getStrokeAttribute()); const bool bDashUsed(!rStrokeAttribute.isDefault() && !rStrokeAttribute.getDotDashArray().empty() && 0.0 < rStrokeAttribute.getFullDotDashLen()); - if (bDashUsed) - { - const std::vector<double>& rStroke = rStrokeAttribute.getDotDashArray(); - cairo_set_dash(mpRT, rStroke.data(), rStroke.size(), 0.0); + if (isCairoCoordinateLimitWorkaroundActive()) + { + // need to fallback to paint in view coordinates, unfortunately + // need to transform self (cairo will do it wrong in this coordinate + // space), so no need to try to buffer + cairo_new_path(mpRT); + basegfx::B2DPolygon aAdaptedPolygon(rPolygon); + const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); + aAdaptedPolygon.transform(basegfx::utils::createTranslateB2DHomMatrix(fAAOffset, fAAOffset) + * getViewInformation2D().getObjectToViewTransformation()); + cairo_identity_matrix(mpRT); + addB2DPolygonToPathGeometry(mpRT, aAdaptedPolygon); + + // process/set LineWidth + const double fObjectLineWidth(bHairline + ? 1.0 + : (getViewInformation2D().getObjectToViewTransformation() + * basegfx::B2DVector(rLineAttribute.getWidth(), 0.0)) + .getLength()); + cairo_set_line_width(mpRT, fObjectLineWidth); + + if (bDashUsed) + { + std::vector<double> aStroke(rStrokeAttribute.getDotDashArray()); + for (auto& rCandidate : aStroke) + rCandidate = (getViewInformation2D().getObjectToViewTransformation() + * basegfx::B2DVector(rCandidate, 0.0)) + .getLength(); + cairo_set_dash(mpRT, aStroke.data(), aStroke.size(), 0.0); + } + + cairo_stroke(mpRT); } + else + { + // set linear transformation + cairo_matrix_t aMatrix; + const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); + cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), + rObjectToView.d(), rObjectToView.e() + fAAOffset, + rObjectToView.f() + fAAOffset); + cairo_set_matrix(mpRT, &aMatrix); - // create path geometry and put mask as path - cairo_new_path(mpRT); - getOrCreatePathGeometry(mpRT, rPolygon, getViewInformation2D(), - bHairline && getViewInformation2D().getUseAntiAliasing()); + // create path geometry and put mask as path + cairo_new_path(mpRT); + getOrCreatePathGeometry(mpRT, rPolygon, getViewInformation2D(), + bHairline && getViewInformation2D().getUseAntiAliasing()); - // render - cairo_stroke(mpRT); + // process/set LineWidth + const double fObjectLineWidth( + bHairline ? (getViewInformation2D().getInverseObjectToViewTransformation() + * basegfx::B2DVector(1.0, 0.0)) + .getLength() + : rLineAttribute.getWidth()); + cairo_set_line_width(mpRT, fObjectLineWidth); + + if (bDashUsed) + { + const std::vector<double>& rStroke = rStrokeAttribute.getDotDashArray(); + cairo_set_dash(mpRT, rStroke.data(), rStroke.size(), 0.0); + } + + // render + cairo_stroke(mpRT); + } cairo_restore(mpRT); } @@ -2057,16 +2230,11 @@ void CairoPixelProcessor2D::processLineRectanglePrimitive2D( cairo_save(mpRT); - cairo_matrix_t aMatrix; + // work in view coordinates const double fAAOffset(getViewInformation2D().getUseAntiAliasing() ? 0.5 : 0.0); - const basegfx::B2DHomMatrix& rObjectToView( - getViewInformation2D().getObjectToViewTransformation()); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e() + fAAOffset, - rObjectToView.f() + fAAOffset); - - // set linear transformation - cairo_set_matrix(mpRT, &aMatrix); + basegfx::B2DRange aRange(rLineRectanglePrimitive2D.getB2DRange()); + aRange.transform(getViewInformation2D().getObjectToViewTransformation()); + cairo_identity_matrix(mpRT); const basegfx::BColor aHairlineColor( maBColorModifierStack.getModifiedColor(rLineRectanglePrimitive2D.getBColor())); @@ -2078,9 +2246,8 @@ void CairoPixelProcessor2D::processLineRectanglePrimitive2D( .getLength()); cairo_set_line_width(mpRT, fDiscreteLineWidth); - const basegfx::B2DRange& rRange(rLineRectanglePrimitive2D.getB2DRange()); - cairo_rectangle(mpRT, rRange.getMinX(), rRange.getMinY(), rRange.getWidth(), - rRange.getHeight()); + cairo_rectangle(mpRT, aRange.getMinX() + fAAOffset, aRange.getMinY() + fAAOffset, + aRange.getWidth(), aRange.getHeight()); cairo_stroke(mpRT); cairo_restore(mpRT); @@ -2097,22 +2264,17 @@ void CairoPixelProcessor2D::processFilledRectanglePrimitive2D( cairo_save(mpRT); - cairo_matrix_t aMatrix; - const basegfx::B2DHomMatrix& rObjectToView( - getViewInformation2D().getObjectToViewTransformation()); - cairo_matrix_init(&aMatrix, rObjectToView.a(), rObjectToView.b(), rObjectToView.c(), - rObjectToView.d(), rObjectToView.e(), rObjectToView.f()); - - // set linear transformation - cairo_set_matrix(mpRT, &aMatrix); + // work in view coordinates + basegfx::B2DRange aRange(rFilledRectanglePrimitive2D.getB2DRange()); + aRange.transform(getViewInformation2D().getObjectToViewTransformation()); + cairo_identity_matrix(mpRT); const basegfx::BColor aFillColor( maBColorModifierStack.getModifiedColor(rFilledRectanglePrimitive2D.getBColor())); cairo_set_source_rgb(mpRT, aFillColor.getRed(), aFillColor.getGreen(), aFillColor.getBlue()); - const basegfx::B2DRange& rRange(rFilledRectanglePrimitive2D.getB2DRange()); - cairo_rectangle(mpRT, rRange.getMinX(), rRange.getMinY(), rRange.getWidth(), - rRange.getHeight()); + cairo_rectangle(mpRT, aRange.getMinX(), aRange.getMinY(), aRange.getWidth(), + aRange.getHeight()); cairo_fill(mpRT); cairo_restore(mpRT); @@ -2132,6 +2294,7 @@ void CairoPixelProcessor2D::processSingleLinePrimitive2D( getViewInformation2D().getObjectToViewTransformation()); const basegfx::B2DPoint aStart(rObjectToView * rSingleLinePrimitive2D.getStart()); const basegfx::B2DPoint aEnd(rObjectToView * rSingleLinePrimitive2D.getEnd()); + cairo_identity_matrix(mpRT); cairo_set_line_width(mpRT, 1.0f); @@ -2195,7 +2358,7 @@ void CairoPixelProcessor2D::processFillGraphicPrimitive2D( aPolygon.transform(rFillGraphicPrimitive2D.getTransformation()); // draw directly - paintPolyPoylgonRGBA(basegfx::B2DPolyPolygon(aPolygon), aModifiedColor, + paintPolyPolygonRGBA(basegfx::B2DPolyPolygon(aPolygon), aModifiedColor, rFillGraphicPrimitive2D.getTransparency()); return; @@ -2276,7 +2439,8 @@ void CairoPixelProcessor2D::processFillGraphicPrimitive2D( if (bRenderTransformationBounds) { cairo_set_source_rgba(mpRT, 0, 1, 0, 0.8); - impl_cairo_set_hairline(mpRT, getViewInformation2D()); + impl_cairo_set_hairline(mpRT, getViewInformation2D(), + isCairoCoordinateLimitWorkaroundActive()); // full object cairo_rectangle(mpRT, 0, 0, 1, 1); // outline of pattern root image @@ -3072,13 +3236,13 @@ void CairoPixelProcessor2D::processPolyPolygonRGBAPrimitive2D( if (!rPolyPolygonRGBAPrimitive2D.hasTransparency()) { // do what CairoPixelProcessor2D::processPolyPolygonColorPrimitive2D does - paintPolyPoylgonRGBA(rPolyPolygonRGBAPrimitive2D.getB2DPolyPolygon(), + paintPolyPolygonRGBA(rPolyPolygonRGBAPrimitive2D.getB2DPolyPolygon(), rPolyPolygonRGBAPrimitive2D.getBColor()); return; } // draw with alpha directly - paintPolyPoylgonRGBA(rPolyPolygonRGBAPrimitive2D.getB2DPolyPolygon(), + paintPolyPolygonRGBA(rPolyPolygonRGBAPrimitive2D.getB2DPolyPolygon(), rPolyPolygonRGBAPrimitive2D.getBColor(), rPolyPolygonRGBAPrimitive2D.getTransparency()); } @@ -3101,7 +3265,7 @@ void CairoPixelProcessor2D::processPolyPolygonAlphaGradientPrimitive2D( { // default is a single ColorStop at 0.0 with black (0, 0, 0). The // luminance is then 0.0, too -> not transparent at all - paintPolyPoylgonRGBA(rPolyPolygon, rColor); + paintPolyPolygonRGBA(rPolyPolygon, rColor); return; } @@ -3110,7 +3274,7 @@ void CairoPixelProcessor2D::processPolyPolygonAlphaGradientPrimitive2D( if (rAlphaStops.isSingleColor(aSingleColor)) { // draw with alpha directly - paintPolyPoylgonRGBA(rPolyPolygon, rColor, aSingleColor.luminance()); + paintPolyPolygonRGBA(rPolyPolygon, rColor, aSingleColor.luminance()); return; } @@ -3511,7 +3675,7 @@ bool CairoPixelProcessor2D::handleSvgGradientHelper( // only one color entry, fill with last existing color, done primitive2d::SvgGradientEntryVector::const_reference aEntry( rCandidate.getGradientEntries().back()); - paintPolyPoylgonRGBA(rCandidate.getPolyPolygon(), aEntry.getColor(), + paintPolyPolygonRGBA(rCandidate.getPolyPolygon(), aEntry.getColor(), 1.0 - aEntry.getOpacity()); return true; @@ -3717,6 +3881,47 @@ void CairoPixelProcessor2D::processControlPrimitive2D( process(rControlPrimitive); } +void CairoPixelProcessor2D::evaluateCairoCoordinateLimitWorkaround() +{ + static bool bAlreadyCheckedIfNeeded(false); + static bool bIsNeeded(false); + + if (!bAlreadyCheckedIfNeeded) + { + // check once for office runtime: is workaround needed? + bAlreadyCheckedIfNeeded = true; + bIsNeeded = checkCoordinateLimitWorkaroundNeededForUsedCairo(); + } + + if (!bIsNeeded) + { + // we have a working cairo, so workaround is not needed + // and mbCairoCoordinateLimitWorkaroundActive can stay false + return; + } + + // get discrete size (pixels) + basegfx::B2DRange aLogicViewRange(getDiscreteViewRange(mpRT)); + + // transform to world coordinates -> logic view range + basegfx::B2DHomMatrix aInvViewTrans(getViewInformation2D().getViewTransformation()); + aInvViewTrans.invert(); + aLogicViewRange.transform(aInvViewTrans); + + // create 1<<23 CairoCoordinate limit from 24.8 internal format + // and a range fitting to it (just once, this is static) + constexpr double fNumCairoMax(1 << 23); + static const basegfx::B2DRange aNumericalCairoLimit(-fNumCairoMax, -fNumCairoMax, + fNumCairoMax - 1.0, fNumCairoMax - 1.0); + + if (!aLogicViewRange.isEmpty() && !aNumericalCairoLimit.isInside(aLogicViewRange)) + { + // aLogicViewRange is not completely inside region covered by + // 24.8 cairo format, thus workaround is needed, set flag + mbCairoCoordinateLimitWorkaroundActive = true; + } +} + void CairoPixelProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) { const cairo_status_t aStart(cairo_status(mpRT)); diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index 2658ed6410de..b39341f72612 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -2247,6 +2247,12 @@ void VclMetafileProcessor2D::processMaskPrimitive2D( if (aMask.count()) { + // A clipping path is a set of closed vector path that may consist of an arbitrary number + // of straight and curved segments. The region(s) enclosed by the path define(s) the visible area, + // i.e. after applying a clipping path, only those portions of the subsequently drawn graphics that + // fall inside the enclosed area are visible, everything else is cut away. + if (!aMask.isClosed()) + aMask.setClosed(true); // prepare new mask polygon and rescue current one aMask.transform(maCurrentTransformation); const basegfx::B2DPolyPolygon aLastClipPolyPolygon(maClipPolyPolygon); diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx index 579940313d6b..79eba7bb0024 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx @@ -797,7 +797,7 @@ void VclPixelProcessor2D::processFillHatchPrimitive2D( maCurrentTransformation * basegfx::B2DVector(rFillHatchAttributes.getDistance(), 0.0)); const sal_uInt32 nDistance(basegfx::fround(aDiscreteDistance.getLength())); const sal_uInt32 nAngle10( - basegfx::rad2deg<10>(basegfx::fround(rFillHatchAttributes.getAngle()))); + basegfx::fround(basegfx::rad2deg<10>(rFillHatchAttributes.getAngle()))); ::Hatch aVCLHatch(eHatchStyle, Color(rFillHatchAttributes.getColor()), nDistance, Degree10(nAngle10)); diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx index a5c4c3b3bdb3..887648433d36 100644 --- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx +++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx @@ -1423,7 +1423,8 @@ namespace accessibility if (rRes.Name == "CharColor") { uno::Any &anyChar = rRes.Value; - Color crChar(ColorTransparency, static_cast<sal_uInt32>( reinterpret_cast<sal_uIntPtr>(anyChar.pReserved))); + Color crChar; + anyChar >>= crChar; if (COL_AUTO == crChar ) { uno::Reference< css::accessibility::XAccessibleComponent > xComponent(mxParent,uno::UNO_QUERY); @@ -1454,7 +1455,8 @@ namespace accessibility if (rRes.Name == "CharUnderlineColor") { uno::Any &anyCharUnderLine = rRes.Value; - Color crCharUnderLine(ColorTransparency, static_cast<sal_uInt32>( reinterpret_cast<sal_uIntPtr>( anyCharUnderLine.pReserved))); + Color crCharUnderLine; + anyCharUnderLine >>= crCharUnderLine; if (COL_AUTO == crCharUnderLine ) { uno::Reference< css::accessibility::XAccessibleComponent > xComponent(mxParent,uno::UNO_QUERY); diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx index 6f7182f383af..536d7c2c6acb 100644 --- a/editeng/source/editeng/editobj.cxx +++ b/editeng/source/editeng/editobj.cxx @@ -30,6 +30,7 @@ #include <editeng/flditem.hxx> #include <svl/sharedstringpool.hxx> +#include <rtl/ustrbuf.hxx> #include <libxml/xmlwriter.h> #include <algorithm> @@ -398,6 +399,26 @@ OUString EditTextObjectImpl::GetText(sal_Int32 nPara) const return maContents[nPara]->GetText(); } +OUString EditTextObjectImpl::GetText(LineEnd eEnd) const +{ + const size_t nParas = maContents.size(); + if (nParas == 0) + return OUString(); + + const OUString aSep = EditDoc::GetSepStr(eEnd); + + OUStringBuffer aBuffer; + + for (size_t nPara = 0; nPara < nParas; ++nPara) + { + if (!aSep.isEmpty() && nPara > 0) + aBuffer.append(aSep); + aBuffer.append(maContents[nPara]->GetText()); + } + + return aBuffer.makeStringAndClear(); +} + sal_Int32 EditTextObjectImpl::GetTextLen(sal_Int32 nPara ) const { if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size()) diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx index f1bfa4e773ac..9cfe1c09f5e5 100644 --- a/editeng/source/editeng/editobj2.hxx +++ b/editeng/source/editeng/editobj2.hxx @@ -227,6 +227,7 @@ public: virtual sal_Int32 GetParagraphCount() const override; virtual OUString GetText(sal_Int32 nParagraph) const override; + virtual OUString GetText(LineEnd eEnd = LINEEND_LF) const override; virtual sal_Int32 GetTextLen(sal_Int32 nParagraph) const override; virtual void ClearPortionInfo() override; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 2cd3d66de41b..fee808e6bc39 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -755,7 +755,8 @@ const SfxItemSet& ImpEditEngine::GetEmptyItemSet() const { if ( !pEmptyItemSet ) { - pEmptyItemSet = std::make_unique<SfxItemSetFixed<EE_ITEMS_START, EE_ITEMS_END>>(const_cast<SfxItemPool&>(maEditDoc.GetItemPool())); + pEmptyItemSet = std::make_unique<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + EE_ITEMS_START, EE_ITEMS_END>(const_cast<SfxItemPool&>(maEditDoc.GetItemPool()))); for ( sal_uInt16 nWhich = EE_ITEMS_START; nWhich <= EE_CHAR_END; nWhich++) { pEmptyItemSet->ClearItem( nWhich ); diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx index 62fa083b0321..80b15c89b225 100644 --- a/editeng/source/outliner/outlvw.cxx +++ b/editeng/source/outliner/outlvw.cxx @@ -926,6 +926,45 @@ void OutlinerView::ToggleBullets() pOwner->UndoActionEnd(); } +bool OutlinerView::IsBulletOrNumbering(bool& bBullets, bool& bNumbering) +{ + //TODO: returns true if the same list is active in the selection, + // sets bBullets/bNumbering if the related list type is found + bool bBulletFound = false; + bool bNumberingFound = false; + + ESelection aSel( pEditView->GetSelection() ); + aSel.Adjust(); + for (sal_Int32 nPara = aSel.start.nPara; nPara <= aSel.end.nPara; nPara++) + { + Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara ); + DBG_ASSERT(pPara, "OutlinerView::IsBulletOrNumbering(), illegal selection?"); + + if( pPara ) + { + if (pOwner->GetDepth(nPara) < 0) + return false; + const SvxNumberFormat* pFmt = pOwner ->GetNumberFormat(nPara); + if (pFmt) + { + sal_Int16 nNumType = pFmt->GetNumberingType(); + if (nNumType != SVX_NUM_BITMAP && nNumType != SVX_NUM_CHAR_SPECIAL) + bNumberingFound = true; + else + bBulletFound = true; + } + } + } + if (bNumberingFound) + { + if (bBulletFound) + return false; + bNumbering = true; + } + else + bBullets = true; + return true; +} void OutlinerView::ToggleBulletsNumbering( const bool bToggle, diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx index b437cb5598d4..3753d1066827 100644 --- a/editeng/source/rtf/svxrtf.cxx +++ b/editeng/source/rtf/svxrtf.cxx @@ -985,10 +985,7 @@ SvxRTFItemStackType::SvxRTFItemStackType( const EditPosition& rPos ) : aAttrSet( rPool, pWhichRange ) , mxStartNodeIdx(rPos.MakeNodeIdx()) -#if !defined(__COVERITY__) || __COVERITY_MAJOR__ > 2023 - // coverity 2020 has difficulty wrt std::optional leading to bogus 'Uninitialized scalar variable' , mxEndNodeIdx(mxStartNodeIdx) -#endif , nSttCnt(rPos.GetCntIdx()) , nEndCnt(nSttCnt) , nStyleNo(0) @@ -1001,10 +998,7 @@ SvxRTFItemStackType::SvxRTFItemStackType( bool const bCopyAttr ) : aAttrSet( *rCpy.aAttrSet.GetPool(), rCpy.aAttrSet.GetRanges() ) , mxStartNodeIdx(rPos.MakeNodeIdx()) -#if !defined(__COVERITY__) || __COVERITY_MAJOR__ > 2023 - // coverity 2020 has difficulty wrt std::optional leading to bogus 'Uninitialized scalar variable' , mxEndNodeIdx(mxStartNodeIdx) -#endif , nSttCnt(rPos.GetCntIdx()) , nEndCnt(nSttCnt) , nStyleNo(rCpy.nStyleNo) diff --git a/emfio/source/reader/mtftools.cxx b/emfio/source/reader/mtftools.cxx index 6d920a2ce5a4..a6409d0257b4 100644 --- a/emfio/source/reader/mtftools.cxx +++ b/emfio/source/reader/mtftools.cxx @@ -1634,6 +1634,25 @@ namespace emfio } } + static bool AllowDim(tools::Long nDim) + { + static bool bFuzzing = comphelper::IsFuzzing(); + if (bFuzzing) + { + if (nDim > 0x20000000 || nDim < -0x20000000) + { + SAL_WARN("vcl", "skipping huge dimension: " << nDim); + return false; + } + } + return true; + } + + static bool AllowPoint(const Point& rPoint) + { + return AllowDim(rPoint.X()) && AllowDim(rPoint.Y()); + } + void MtfTools::DrawPolyBezier( tools::Polygon rPolygon, bool bTo, bool bRecordPath ) { sal_uInt16 nPoints = rPolygon.GetSize(); @@ -1861,8 +1880,11 @@ namespace emfio for (sal_Int32 i = 0; i < rText.getLength(); ++i) { Point aCharDisplacement( i ? (*pDXArry)[i-1] : 0, i ? pDYArry[i-1] : 0 ); - Point().RotateAround(aCharDisplacement, maFont.GetOrientation()); - mpGDIMetaFile->AddAction( new MetaTextArrayAction( rPosition + aCharDisplacement, OUString( rText[i] ), KernArraySpan(), {}, 0, 1 ) ); + if (AllowPoint(aCharDisplacement)) + { + Point().RotateAround(aCharDisplacement, maFont.GetOrientation()); + mpGDIMetaFile->AddAction( new MetaTextArrayAction( rPosition + aCharDisplacement, OUString( rText[i] ), KernArraySpan(), {}, 0, 1 ) ); + } } } else diff --git a/extensions/source/activex/SOActiveX.cxx b/extensions/source/activex/SOActiveX.cxx index b72ab0d66ca0..9bb3b34a4afe 100644 --- a/extensions/source/activex/SOActiveX.cxx +++ b/extensions/source/activex/SOActiveX.cxx @@ -146,7 +146,7 @@ CSOActiveX::CSOActiveX() , mbDrawLocked( false ) { CLSID const clsFactory = {0x82154420,0x0FBF,0x11d4,{0x83, 0x13,0x00,0x50,0x04,0x52,0x6A,0xB4}}; - HRESULT hr = CoCreateInstance( clsFactory, nullptr, CLSCTX_ALL, __uuidof(IDispatch), reinterpret_cast<void**>(&mpDispFactory)); + HRESULT hr = CoCreateInstance(clsFactory, nullptr, CLSCTX_ALL, IID_PPV_ARGS(&mpDispFactory)); if( !SUCCEEDED( hr ) ) OutputError_Impl( nullptr, hr ); @@ -303,8 +303,8 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CSOActiveX::Load( LPPROPERTYBAG pPropBag, LPER { mnVersion = GetVersionConnected(); - IPropertyBag2* pPropBag2; - HRESULT hr = pPropBag->QueryInterface( IID_IPropertyBag2, reinterpret_cast<void**>(&pPropBag2) ); + CComPtr<IPropertyBag2> pPropBag2; + HRESULT hr = pPropBag->QueryInterface(&pPropBag2); //ATLASSERT( hr >= 0 ); if( !SUCCEEDED( hr ) ) @@ -1096,9 +1096,7 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CSOActiveX::SetClientSite( IOleClientSite* aCl if( aServiceProvider ) { - aServiceProvider->QueryService( SID_SInternetExplorer, - IID_IWebBrowser, - reinterpret_cast<void**>(&mWebBrowser2) ); + aServiceProvider->QueryService(SID_SInternetExplorer, IID_PPV_ARGS(&mWebBrowser2)); // ATLASSERT( mWebBrowser2 ); if( mWebBrowser2 ) AtlAdvise( mWebBrowser2, GetUnknown(), DIID_DWebBrowserEvents2, &mCookie ); diff --git a/extensions/source/ole/oleobjw.cxx b/extensions/source/ole/oleobjw.cxx index d9c0296110fd..e3e5c23357f5 100644 --- a/extensions/source/ole/oleobjw.cxx +++ b/extensions/source/ole/oleobjw.cxx @@ -430,6 +430,8 @@ void SAL_CALL IUnknownWrapper::setValue( const OUString& aPropertyName, } } +static OUString BStrToOUString(BSTR s) { return OUString(o3tl::toU(s), SysStringLen(s)); } + Any SAL_CALL IUnknownWrapper::getValue( const OUString& aPropertyName ) { if ( ! m_spDispatch ) @@ -539,13 +541,13 @@ Any SAL_CALL IUnknownWrapper::getValue( const OUString& aPropertyName ) case DISP_E_BADPARAMCOUNT: case DISP_E_BADVARTYPE: case DISP_E_EXCEPTION: - throw RuntimeException(OUString(o3tl::toU(excepinfo.bstrDescription))); + throw RuntimeException(BStrToOUString(excepinfo.bstrDescription)); break; case DISP_E_MEMBERNOTFOUND: - throw UnknownPropertyException(OUString(o3tl::toU(excepinfo.bstrDescription))); + throw UnknownPropertyException(BStrToOUString(excepinfo.bstrDescription)); break; default: - throw RuntimeException(OUString(o3tl::toU(excepinfo.bstrDescription))); + throw RuntimeException(BStrToOUString(excepinfo.bstrDescription)); break; } } diff --git a/extensions/source/ole/servprov.cxx b/extensions/source/ole/servprov.cxx index 0c3920ccca11..a37703eb012d 100644 --- a/extensions/source/ole/servprov.cxx +++ b/extensions/source/ole/servprov.cxx @@ -395,47 +395,21 @@ css::uno::Sequence<OUString> OleClient::getSupportedServiceNames() Reference<XInterface> SAL_CALL OleClient::createInstance(const OUString& ServiceSpecifier) { Reference<XInterface> ret; - HRESULT result; - IUnknown* pUnknown = nullptr; - CLSID classId; o2u_attachCurrentThread(); - result = CLSIDFromProgID( - o3tl::toW(ServiceSpecifier.getStr()), //Pointer to the ProgID - &classId); //Pointer to the CLSID - - - if (result == NOERROR) - { - result = CoCreateInstance( - classId, //Class identifier (CLSID) of the object - nullptr, //Pointer to whether object is or isn't part of an aggregate - CLSCTX_SERVER, //Context for running executable code - IID_IUnknown, //Reference to the identifier of the interface - reinterpret_cast<void**>(&pUnknown)); //Address of output variable that receives - // the interface pointer requested in riid - } - - if (pUnknown != nullptr) + CComPtr<IUnknown> pUnknown; + pUnknown.CoCreateInstance(o3tl::toW(ServiceSpecifier.getStr()), nullptr, CLSCTX_SERVER); + if (pUnknown) { Any any; - CComVariant variant; - - V_VT(&variant) = VT_UNKNOWN; - V_UNKNOWN(&variant) = pUnknown; - // AddRef for Variant - pUnknown->AddRef(); - - // When the object is wrapped, then its refcount is increased + CComVariant variant(pUnknown); variantToAny(&variant, any); if (any.getValueTypeClass() == TypeClass_INTERFACE) { any >>= ret; } - pUnknown->Release(); // CoCreateInstance } - return ret; } diff --git a/external/cairo/ExternalPackage_cairo.mk b/external/cairo/ExternalPackage_cairo.mk index 6bd0800d9f21..3e16e08a97ee 100644 --- a/external/cairo/ExternalPackage_cairo.mk +++ b/external/cairo/ExternalPackage_cairo.mk @@ -12,7 +12,7 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,cairo,cairo)) $(eval $(call gb_ExternalPackage_use_external_project,cairo,cairo)) ifneq ($(DISABLE_DYNLOADING),TRUE) -$(eval $(call gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.so.2,src/.libs/libcairo-lo.so.2.1170$(CAIRO_VERSION_MICRO).0)) +$(eval $(call gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.so.2,src/.libs/libcairo.so.2.1170$(CAIRO_VERSION_MICRO).0)) endif # vim: set noet sw=4 ts=4: diff --git a/external/cairo/UnpackedTarball_cairo.mk b/external/cairo/UnpackedTarball_cairo.mk index f1697c6d0cc9..a434b750082e 100644 --- a/external/cairo/UnpackedTarball_cairo.mk +++ b/external/cairo/UnpackedTarball_cairo.mk @@ -28,7 +28,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\ external/cairo/cairo/cairo.ofz46165.patch.1 \ external/cairo/cairo/cairo.ofz50805.patch.1 \ external/cairo/cairo/0025-libtool-pass-use-ld.patch \ - external/cairo/cairo/libcairo-bundled-soname.patch.0 \ external/cairo/cairo/cairo-fd-hack.patch.0 \ external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \ )) diff --git a/external/cairo/cairo/libcairo-bundled-soname.patch.0 b/external/cairo/cairo/libcairo-bundled-soname.patch.0 deleted file mode 100644 index 92aac5f753df..000000000000 --- a/external/cairo/cairo/libcairo-bundled-soname.patch.0 +++ /dev/null @@ -1,12 +0,0 @@ -# -*- Mode: Diff -*- ---- src/Makefile.in -+++ src/Makefile.in -@@ -2075,7 +2075,7 @@ - $(enabled_cairo_sources) \ - $(NULL) - --libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -+libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -release lo -Wl,-soname -Wl,libcairo-lo.so.2 - libcairo_la_LIBADD = $(CAIRO_LIBS) - libcairo_la_DEPENDENCIES = $(cairo_def_dependency) - diff --git a/external/fontconfig/ExternalPackage_fontconfig.mk b/external/fontconfig/ExternalPackage_fontconfig.mk index 688ae520bfe8..dd0550ce2106 100644 --- a/external/fontconfig/ExternalPackage_fontconfig.mk +++ b/external/fontconfig/ExternalPackage_fontconfig.mk @@ -12,7 +12,7 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,fontconfig,fontconfig)) $(eval $(call gb_ExternalPackage_use_external_project,fontconfig,fontconfig)) ifeq ($(DISABLE_DYNLOADING),) -$(eval $(call gb_ExternalPackage_add_file,fontconfig,$(LIBO_LIB_FOLDER)/libfontconfig-lo.so.1.12.1,src/.libs/libfontconfig-lo.so.1.12.1)) +$(eval $(call gb_ExternalPackage_add_file,fontconfig,$(LIBO_LIB_FOLDER)/libfontconfig-lo.so.1.15.0,src/.libs/libfontconfig-lo.so.1.15.0)) endif # vim: set noet sw=4 ts=4: diff --git a/external/fontconfig/ExternalPackage_fontconfig_data.mk b/external/fontconfig/ExternalPackage_fontconfig_data.mk index 63bcc8a2a3a2..e7d78142f456 100644 --- a/external/fontconfig/ExternalPackage_fontconfig_data.mk +++ b/external/fontconfig/ExternalPackage_fontconfig_data.mk @@ -15,6 +15,8 @@ $(eval $(call gb_ExternalPackage_add_files,fontconfig_data,$(LIBO_SHARE_FOLDER)/ fonts.conf \ )) +# The list below is created with +# find workdir/UnpackedTarball/fontconfig/conf.d/ -name "*.conf" | LC_COLLATE=C sort | sed -e 's/^/ /' -e 's/$/ \\/' -e 's/workdir\/UnpackedTarball\/fontconfig\///' $(eval $(call gb_ExternalPackage_add_unpacked_files,fontconfig_data,$(LIBO_SHARE_FOLDER)/fontconfig/conf.d,\ conf.d/05-reset-dirs-sample.conf \ conf.d/09-autohint-if-no-hinting.conf \ @@ -53,6 +55,8 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,fontconfig_data,$(LIBO_SHARE conf.d/65-khmer.conf \ conf.d/65-nonlatin.conf \ conf.d/69-unifont.conf \ + conf.d/70-no-bitmaps-and-emoji.conf \ + conf.d/70-no-bitmaps-except-emoji.conf \ conf.d/70-no-bitmaps.conf \ conf.d/70-yes-bitmaps.conf \ conf.d/80-delicious.conf \ diff --git a/external/fontconfig/UnpackedTarball_fontconfig.mk b/external/fontconfig/UnpackedTarball_fontconfig.mk index ceb87ea062ad..e37e8f6cb3e5 100644 --- a/external/fontconfig/UnpackedTarball_fontconfig.mk +++ b/external/fontconfig/UnpackedTarball_fontconfig.mk @@ -15,7 +15,6 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,fontconfig,0)) $(eval $(call gb_UnpackedTarball_add_patches,fontconfig,\ external/fontconfig/fontconfig-2.12.1.patch.1 \ - external/fontconfig/ubsan.patch \ external/fontconfig/libfontconfig-bundled-soname.patch.0 \ )) diff --git a/external/fontconfig/fontconfig-2.12.1.patch.1 b/external/fontconfig/fontconfig-2.12.1.patch.1 index b6f54361bb8c..b2dce3f1526b 100644 --- a/external/fontconfig/fontconfig-2.12.1.patch.1 +++ b/external/fontconfig/fontconfig-2.12.1.patch.1 @@ -19,13 +19,13 @@ diff -up fontconfig/configure.dt fontconfig/configure else ld_shlibs=no fi -@@ -11584,7 +11584,7 @@ _LT_EOF +@@ -11913,7 +11913,7 @@ ;; haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $lib' - link_all_deplibs=yes + link_all_deplibs=no ;; @@ -11680,13 +11680,13 @@ _LT_EOF diff --git a/external/fontconfig/libfontconfig-bundled-soname.patch.0 b/external/fontconfig/libfontconfig-bundled-soname.patch.0 index 46222ca0d6b0..8ee239d52266 100644 --- a/external/fontconfig/libfontconfig-bundled-soname.patch.0 +++ b/external/fontconfig/libfontconfig-bundled-soname.patch.0 @@ -5,7 +5,7 @@ lib_LTLIBRARIES = libfontconfig.la libfontconfig_la_LDFLAGS = \ - -version-info @LIBT_VERSION_INFO@ -no-undefined $(export_symbols) -+ -version-info @LIBT_VERSION_INFO@ -no-undefined $(export_symbols) -release lo -Wl,-soname -Wl,libfontconfig-lo.so.1.12.1 - ++ -version-info @LIBT_VERSION_INFO@ -no-undefined $(export_symbols) -release lo -Wl,-soname -Wl,libfontconfig-lo.so.1.15.0 + libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) $(LTLIBINTL) libfontconfig_la_DEPENDENCIES = $(fontconfig_def_dependency) diff --git a/external/fontconfig/ubsan.patch b/external/fontconfig/ubsan.patch deleted file mode 100644 index 91586b093480..000000000000 --- a/external/fontconfig/ubsan.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- src/fcdir.c -+++ src/fcdir.c -@@ -265,7 +265,7 @@ - /* - * Sort files to make things prettier - */ -- qsort(files->strs, files->num, sizeof(FcChar8 *), cmpstringp); -+ if (files->num != 0) qsort(files->strs, files->num, sizeof(FcChar8 *), cmpstringp); - - /* - * Scan file files to build font patterns ---- src/fcserialize.c -+++ src/fcserialize.c -@@ -163,7 +163,7 @@ - size_t old_used = serialize->buckets_used; - size_t old_count = serialize->buckets_count; - FcSerializeBucket *old_buckets = serialize->buckets; -- FcSerializeBucket *old_buckets_end = old_buckets + old_count; -+ FcSerializeBucket *old_buckets_end = old_count == 0 ? old_buckets : old_buckets + old_count; - - FcSerializeBucket *new_buckets = malloc (new_count * sizeof (*old_buckets)); - if (!new_buckets) diff --git a/external/lxml/UnpackedTarball_lxml.mk b/external/lxml/UnpackedTarball_lxml.mk index b0e564a6c4bd..083ee6c961a7 100644 --- a/external/lxml/UnpackedTarball_lxml.mk +++ b/external/lxml/UnpackedTarball_lxml.mk @@ -13,10 +13,4 @@ $(eval $(call gb_UnpackedTarball_set_tarball,lxml,$(LXML_TARBALL))) $(eval $(call gb_UnpackedTarball_set_patchlevel,lxml,0)) -ifneq ($(OS),MACOSX) -$(eval $(call gb_UnpackedTarball_add_patches,lxml, \ - external/lxml/replace-setuptools-with-distutils.patch.1 \ -)) -endif - # vim: set noet sw=4 ts=4: diff --git a/external/lxml/replace-setuptools-with-distutils.patch.1 b/external/lxml/replace-setuptools-with-distutils.patch.1 deleted file mode 100644 index 17fb51278d81..000000000000 --- a/external/lxml/replace-setuptools-with-distutils.patch.1 +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur lxml.org/setupinfo.py lxml/setupinfo.py ---- lxml.org/setupinfo.py 2023-10-20 10:32:17.921500435 +0200 -+++ lxml/setupinfo.py 2023-10-20 10:33:40.303323572 +0200 -@@ -4,7 +4,7 @@ - import os.path - import subprocess - --from setuptools.command.build_ext import build_ext as _build_ext -+from distutils.command.build_ext import build_ext as _build_ext - from distutils.core import Extension - from distutils.errors import CompileError, DistutilsOptionError - from versioninfo import get_base_dir diff --git a/external/python3/ExternalPackage_python3.mk b/external/python3/ExternalPackage_python3.mk index c948de3a7513..984e925bf102 100644 --- a/external/python3/ExternalPackage_python3.mk +++ b/external/python3/ExternalPackage_python3.mk @@ -60,7 +60,7 @@ $(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$( # Obviously this list should not contain stuff with external dependencies # that may not be available on baseline systems. -python3_EXTENSION_MODULE_SUFFIX=cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if $(ENABLE_DBGUTIL),d) +python3_EXTENSION_MODULE_SUFFIX=cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(ENABLE_DBGUTIL),d)-x86_64-linux-gnu python3_EXTENSION_MODULES= \ LO_lib/array.$(python3_EXTENSION_MODULE_SUFFIX).so \ LO_lib/_asyncio.$(python3_EXTENSION_MODULE_SUFFIX).so \ @@ -363,6 +363,11 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/__phello__/ham/eggs.py \ )) +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/_distutils_hack,\ + Lib/_distutils_hack/__init__.py \ + Lib/_distutils_hack/override.py \ +)) + $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/asyncio,\ Lib/asyncio/__init__.py \ Lib/asyncio/__main__.py \ @@ -424,17 +429,13 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p )) $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ctypes/macholib,\ - Lib/ctypes/macholib/README.ctypes \ Lib/ctypes/macholib/__init__.py \ Lib/ctypes/macholib/dyld.py \ Lib/ctypes/macholib/dylib.py \ - Lib/ctypes/macholib/fetch_macholib \ - Lib/ctypes/macholib/fetch_macholib.bat \ Lib/ctypes/macholib/framework.py \ )) $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/distutils,\ - Lib/distutils/README \ Lib/distutils/__init__.py \ Lib/distutils/_msvccompiler.py \ Lib/distutils/archive_util.py \ @@ -477,7 +478,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/distutils/command/build_scripts.py \ Lib/distutils/command/check.py \ Lib/distutils/command/clean.py \ - Lib/distutils/command/command_template \ Lib/distutils/command/config.py \ Lib/distutils/command/install.py \ Lib/distutils/command/install_data.py \ @@ -496,7 +496,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/email/_header_value_parser.py \ Lib/email/_parseaddr.py \ Lib/email/_policybase.py \ - Lib/email/architecture.rst \ Lib/email/base64mime.py \ Lib/email/charset.py \ Lib/email/contentmanager.py \ @@ -657,11 +656,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/ensurepip/_uninstall.py \ )) -$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ensurepip/_bundled,\ - Lib/ensurepip/_bundled/pip-24.0-py3-none-any.whl \ - Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl \ -)) - $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/html,\ Lib/html/__init__.py \ Lib/html/entities.py \ @@ -718,8 +712,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p )) $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3,\ - Lib/lib2to3/Grammar.txt \ - Lib/lib2to3/PatternGrammar.txt \ Lib/lib2to3/__init__.py \ Lib/lib2to3/__main__.py \ Lib/lib2to3/btm_matcher.py \ @@ -845,9 +837,744 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/multiprocessing/dummy/connection.py \ )) +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip,\ + Lib/pip/__init__.py \ + Lib/pip/__main__.py \ + Lib/pip/__pip-runner__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal,\ + Lib/pip/_internal/__init__.py \ + Lib/pip/_internal/build_env.py \ + Lib/pip/_internal/cache.py \ + Lib/pip/_internal/configuration.py \ + Lib/pip/_internal/exceptions.py \ + Lib/pip/_internal/main.py \ + Lib/pip/_internal/pyproject.py \ + Lib/pip/_internal/self_outdated_check.py \ + Lib/pip/_internal/wheel_builder.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/cli,\ + Lib/pip/_internal/cli/__init__.py \ + Lib/pip/_internal/cli/autocompletion.py \ + Lib/pip/_internal/cli/base_command.py \ + Lib/pip/_internal/cli/cmdoptions.py \ + Lib/pip/_internal/cli/command_context.py \ + Lib/pip/_internal/cli/main.py \ + Lib/pip/_internal/cli/main_parser.py \ + Lib/pip/_internal/cli/parser.py \ + Lib/pip/_internal/cli/progress_bars.py \ + Lib/pip/_internal/cli/req_command.py \ + Lib/pip/_internal/cli/spinners.py \ + Lib/pip/_internal/cli/status_codes.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/commands,\ + Lib/pip/_internal/commands/__init__.py \ + Lib/pip/_internal/commands/cache.py \ + Lib/pip/_internal/commands/check.py \ + Lib/pip/_internal/commands/completion.py \ + Lib/pip/_internal/commands/configuration.py \ + Lib/pip/_internal/commands/debug.py \ + Lib/pip/_internal/commands/download.py \ + Lib/pip/_internal/commands/freeze.py \ + Lib/pip/_internal/commands/hash.py \ + Lib/pip/_internal/commands/help.py \ + Lib/pip/_internal/commands/index.py \ + Lib/pip/_internal/commands/inspect.py \ + Lib/pip/_internal/commands/install.py \ + Lib/pip/_internal/commands/list.py \ + Lib/pip/_internal/commands/search.py \ + Lib/pip/_internal/commands/show.py \ + Lib/pip/_internal/commands/uninstall.py \ + Lib/pip/_internal/commands/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/distributions,\ + Lib/pip/_internal/distributions/__init__.py \ + Lib/pip/_internal/distributions/base.py \ + Lib/pip/_internal/distributions/installed.py \ + Lib/pip/_internal/distributions/sdist.py \ + Lib/pip/_internal/distributions/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/index,\ + Lib/pip/_internal/index/__init__.py \ + Lib/pip/_internal/index/collector.py \ + Lib/pip/_internal/index/package_finder.py \ + Lib/pip/_internal/index/sources.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/locations,\ + Lib/pip/_internal/locations/__init__.py \ + Lib/pip/_internal/locations/_distutils.py \ + Lib/pip/_internal/locations/_sysconfig.py \ + Lib/pip/_internal/locations/base.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/metadata,\ + Lib/pip/_internal/metadata/__init__.py \ + Lib/pip/_internal/metadata/_json.py \ + Lib/pip/_internal/metadata/base.py \ + Lib/pip/_internal/metadata/pkg_resources.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/metadata/importlib,\ + Lib/pip/_internal/metadata/importlib/__init__.py \ + Lib/pip/_internal/metadata/importlib/_compat.py \ + Lib/pip/_internal/metadata/importlib/_dists.py \ + Lib/pip/_internal/metadata/importlib/_envs.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/models,\ + Lib/pip/_internal/models/__init__.py \ + Lib/pip/_internal/models/candidate.py \ + Lib/pip/_internal/models/direct_url.py \ + Lib/pip/_internal/models/format_control.py \ + Lib/pip/_internal/models/index.py \ + Lib/pip/_internal/models/installation_report.py \ + Lib/pip/_internal/models/link.py \ + Lib/pip/_internal/models/scheme.py \ + Lib/pip/_internal/models/search_scope.py \ + Lib/pip/_internal/models/selection_prefs.py \ + Lib/pip/_internal/models/target_python.py \ + Lib/pip/_internal/models/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/network,\ + Lib/pip/_internal/network/__init__.py \ + Lib/pip/_internal/network/auth.py \ + Lib/pip/_internal/network/cache.py \ + Lib/pip/_internal/network/download.py \ + Lib/pip/_internal/network/lazy_wheel.py \ + Lib/pip/_internal/network/session.py \ + Lib/pip/_internal/network/utils.py \ + Lib/pip/_internal/network/xmlrpc.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations,\ + Lib/pip/_internal/operations/__init__.py \ + Lib/pip/_internal/operations/check.py \ + Lib/pip/_internal/operations/freeze.py \ + Lib/pip/_internal/operations/prepare.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations/build,\ + Lib/pip/_internal/operations/build/__init__.py \ + Lib/pip/_internal/operations/build/build_tracker.py \ + Lib/pip/_internal/operations/build/metadata.py \ + Lib/pip/_internal/operations/build/metadata_editable.py \ + Lib/pip/_internal/operations/build/metadata_legacy.py \ + Lib/pip/_internal/operations/build/wheel.py \ + Lib/pip/_internal/operations/build/wheel_editable.py \ + Lib/pip/_internal/operations/build/wheel_legacy.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations/install,\ + Lib/pip/_internal/operations/install/__init__.py \ + Lib/pip/_internal/operations/install/editable_legacy.py \ + Lib/pip/_internal/operations/install/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/req,\ + Lib/pip/_internal/req/__init__.py \ + Lib/pip/_internal/req/constructors.py \ + Lib/pip/_internal/req/req_file.py \ + Lib/pip/_internal/req/req_install.py \ + Lib/pip/_internal/req/req_set.py \ + Lib/pip/_internal/req/req_uninstall.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution,\ + Lib/pip/_internal/resolution/__init__.py \ + Lib/pip/_internal/resolution/base.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution/legacy,\ + Lib/pip/_internal/resolution/legacy/__init__.py \ + Lib/pip/_internal/resolution/legacy/resolver.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution/resolvelib,\ + Lib/pip/_internal/resolution/resolvelib/__init__.py \ + Lib/pip/_internal/resolution/resolvelib/base.py \ + Lib/pip/_internal/resolution/resolvelib/candidates.py \ + Lib/pip/_internal/resolution/resolvelib/factory.py \ + Lib/pip/_internal/resolution/resolvelib/found_candidates.py \ + Lib/pip/_internal/resolution/resolvelib/provider.py \ + Lib/pip/_internal/resolution/resolvelib/reporter.py \ + Lib/pip/_internal/resolution/resolvelib/requirements.py \ + Lib/pip/_internal/resolution/resolvelib/resolver.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/utils,\ + Lib/pip/_internal/utils/__init__.py \ + Lib/pip/_internal/utils/_jaraco_text.py \ + Lib/pip/_internal/utils/_log.py \ + Lib/pip/_internal/utils/appdirs.py \ + Lib/pip/_internal/utils/compat.py \ + Lib/pip/_internal/utils/compatibility_tags.py \ + Lib/pip/_internal/utils/datetime.py \ + Lib/pip/_internal/utils/deprecation.py \ + Lib/pip/_internal/utils/direct_url_helpers.py \ + Lib/pip/_internal/utils/egg_link.py \ + Lib/pip/_internal/utils/encoding.py \ + Lib/pip/_internal/utils/entrypoints.py \ + Lib/pip/_internal/utils/filesystem.py \ + Lib/pip/_internal/utils/filetypes.py \ + Lib/pip/_internal/utils/glibc.py \ + Lib/pip/_internal/utils/hashes.py \ + Lib/pip/_internal/utils/logging.py \ + Lib/pip/_internal/utils/misc.py \ + Lib/pip/_internal/utils/models.py \ + Lib/pip/_internal/utils/packaging.py \ + Lib/pip/_internal/utils/setuptools_build.py \ + Lib/pip/_internal/utils/subprocess.py \ + Lib/pip/_internal/utils/temp_dir.py \ + Lib/pip/_internal/utils/unpacking.py \ + Lib/pip/_internal/utils/urls.py \ + Lib/pip/_internal/utils/virtualenv.py \ + Lib/pip/_internal/utils/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/vcs,\ + Lib/pip/_internal/vcs/__init__.py \ + Lib/pip/_internal/vcs/bazaar.py \ + Lib/pip/_internal/vcs/git.py \ + Lib/pip/_internal/vcs/mercurial.py \ + Lib/pip/_internal/vcs/subversion.py \ + Lib/pip/_internal/vcs/versioncontrol.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor,\ + Lib/pip/_vendor/__init__.py \ + Lib/pip/_vendor/six.py \ + Lib/pip/_vendor/typing_extensions.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/cachecontrol,\ + Lib/pip/_vendor/cachecontrol/__init__.py \ + Lib/pip/_vendor/cachecontrol/_cmd.py \ + Lib/pip/_vendor/cachecontrol/adapter.py \ + Lib/pip/_vendor/cachecontrol/cache.py \ + Lib/pip/_vendor/cachecontrol/controller.py \ + Lib/pip/_vendor/cachecontrol/filewrapper.py \ + Lib/pip/_vendor/cachecontrol/heuristics.py \ + Lib/pip/_vendor/cachecontrol/serialize.py \ + Lib/pip/_vendor/cachecontrol/wrapper.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/cachecontrol/caches,\ + Lib/pip/_vendor/cachecontrol/caches/__init__.py \ + Lib/pip/_vendor/cachecontrol/caches/file_cache.py \ + Lib/pip/_vendor/cachecontrol/caches/redis_cache.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/certifi,\ + Lib/pip/_vendor/certifi/__init__.py \ + Lib/pip/_vendor/certifi/__main__.py \ + Lib/pip/_vendor/certifi/cacert.pem \ + Lib/pip/_vendor/certifi/core.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet,\ + Lib/pip/_vendor/chardet/__init__.py \ + Lib/pip/_vendor/chardet/big5freq.py \ + Lib/pip/_vendor/chardet/big5prober.py \ + Lib/pip/_vendor/chardet/chardistribution.py \ + Lib/pip/_vendor/chardet/charsetgroupprober.py \ + Lib/pip/_vendor/chardet/charsetprober.py \ + Lib/pip/_vendor/chardet/codingstatemachine.py \ + Lib/pip/_vendor/chardet/codingstatemachinedict.py \ + Lib/pip/_vendor/chardet/cp949prober.py \ + Lib/pip/_vendor/chardet/enums.py \ + Lib/pip/_vendor/chardet/escprober.py \ + Lib/pip/_vendor/chardet/escsm.py \ + Lib/pip/_vendor/chardet/eucjpprober.py \ + Lib/pip/_vendor/chardet/euckrfreq.py \ + Lib/pip/_vendor/chardet/euckrprober.py \ + Lib/pip/_vendor/chardet/euctwfreq.py \ + Lib/pip/_vendor/chardet/euctwprober.py \ + Lib/pip/_vendor/chardet/gb2312freq.py \ + Lib/pip/_vendor/chardet/gb2312prober.py \ + Lib/pip/_vendor/chardet/hebrewprober.py \ + Lib/pip/_vendor/chardet/jisfreq.py \ + Lib/pip/_vendor/chardet/johabfreq.py \ + Lib/pip/_vendor/chardet/johabprober.py \ + Lib/pip/_vendor/chardet/jpcntx.py \ + Lib/pip/_vendor/chardet/langbulgarianmodel.py \ + Lib/pip/_vendor/chardet/langgreekmodel.py \ + Lib/pip/_vendor/chardet/langhebrewmodel.py \ + Lib/pip/_vendor/chardet/langhungarianmodel.py \ + Lib/pip/_vendor/chardet/langrussianmodel.py \ + Lib/pip/_vendor/chardet/langthaimodel.py \ + Lib/pip/_vendor/chardet/langturkishmodel.py \ + Lib/pip/_vendor/chardet/latin1prober.py \ + Lib/pip/_vendor/chardet/macromanprober.py \ + Lib/pip/_vendor/chardet/mbcharsetprober.py \ + Lib/pip/_vendor/chardet/mbcsgroupprober.py \ + Lib/pip/_vendor/chardet/mbcssm.py \ + Lib/pip/_vendor/chardet/resultdict.py \ + Lib/pip/_vendor/chardet/sbcharsetprober.py \ + Lib/pip/_vendor/chardet/sbcsgroupprober.py \ + Lib/pip/_vendor/chardet/sjisprober.py \ + Lib/pip/_vendor/chardet/universaldetector.py \ + Lib/pip/_vendor/chardet/utf1632prober.py \ + Lib/pip/_vendor/chardet/utf8prober.py \ + Lib/pip/_vendor/chardet/version.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet/cli,\ + Lib/pip/_vendor/chardet/cli/__init__.py \ + Lib/pip/_vendor/chardet/cli/chardetect.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet/metadata,\ + Lib/pip/_vendor/chardet/metadata/__init__.py \ + Lib/pip/_vendor/chardet/metadata/languages.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/colorama,\ + Lib/pip/_vendor/colorama/__init__.py \ + Lib/pip/_vendor/colorama/ansi.py \ + Lib/pip/_vendor/colorama/ansitowin32.py \ + Lib/pip/_vendor/colorama/initialise.py \ + Lib/pip/_vendor/colorama/win32.py \ + Lib/pip/_vendor/colorama/winterm.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/distlib,\ + Lib/pip/_vendor/distlib/__init__.py \ + Lib/pip/_vendor/distlib/compat.py \ + Lib/pip/_vendor/distlib/database.py \ + Lib/pip/_vendor/distlib/index.py \ + Lib/pip/_vendor/distlib/locators.py \ + Lib/pip/_vendor/distlib/manifest.py \ + Lib/pip/_vendor/distlib/markers.py \ + Lib/pip/_vendor/distlib/metadata.py \ + Lib/pip/_vendor/distlib/resources.py \ + Lib/pip/_vendor/distlib/scripts.py \ + Lib/pip/_vendor/distlib/util.py \ + Lib/pip/_vendor/distlib/version.py \ + Lib/pip/_vendor/distlib/wheel.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/distro,\ + Lib/pip/_vendor/distro/__init__.py \ + Lib/pip/_vendor/distro/__main__.py \ + Lib/pip/_vendor/distro/distro.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/idna,\ + Lib/pip/_vendor/idna/__init__.py \ + Lib/pip/_vendor/idna/codec.py \ + Lib/pip/_vendor/idna/compat.py \ + Lib/pip/_vendor/idna/core.py \ + Lib/pip/_vendor/idna/idnadata.py \ + Lib/pip/_vendor/idna/intranges.py \ + Lib/pip/_vendor/idna/package_data.py \ + Lib/pip/_vendor/idna/uts46data.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/msgpack,\ + Lib/pip/_vendor/msgpack/__init__.py \ + Lib/pip/_vendor/msgpack/exceptions.py \ + Lib/pip/_vendor/msgpack/ext.py \ + Lib/pip/_vendor/msgpack/fallback.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/packaging,\ + Lib/pip/_vendor/packaging/__about__.py \ + Lib/pip/_vendor/packaging/__init__.py \ + Lib/pip/_vendor/packaging/_manylinux.py \ + Lib/pip/_vendor/packaging/_musllinux.py \ + Lib/pip/_vendor/packaging/_structures.py \ + Lib/pip/_vendor/packaging/markers.py \ + Lib/pip/_vendor/packaging/requirements.py \ + Lib/pip/_vendor/packaging/specifiers.py \ + Lib/pip/_vendor/packaging/tags.py \ + Lib/pip/_vendor/packaging/utils.py \ + Lib/pip/_vendor/packaging/version.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pkg_resources,\ + Lib/pip/_vendor/pkg_resources/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/platformdirs,\ + Lib/pip/_vendor/platformdirs/__init__.py \ + Lib/pip/_vendor/platformdirs/__main__.py \ + Lib/pip/_vendor/platformdirs/android.py \ + Lib/pip/_vendor/platformdirs/api.py \ + Lib/pip/_vendor/platformdirs/macos.py \ + Lib/pip/_vendor/platformdirs/unix.py \ + Lib/pip/_vendor/platformdirs/version.py \ + Lib/pip/_vendor/platformdirs/windows.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments,\ + Lib/pip/_vendor/pygments/__init__.py \ + Lib/pip/_vendor/pygments/__main__.py \ + Lib/pip/_vendor/pygments/cmdline.py \ + Lib/pip/_vendor/pygments/console.py \ + Lib/pip/_vendor/pygments/filter.py \ + Lib/pip/_vendor/pygments/formatter.py \ + Lib/pip/_vendor/pygments/lexer.py \ + Lib/pip/_vendor/pygments/modeline.py \ + Lib/pip/_vendor/pygments/plugin.py \ + Lib/pip/_vendor/pygments/regexopt.py \ + Lib/pip/_vendor/pygments/scanner.py \ + Lib/pip/_vendor/pygments/sphinxext.py \ + Lib/pip/_vendor/pygments/style.py \ + Lib/pip/_vendor/pygments/token.py \ + Lib/pip/_vendor/pygments/unistring.py \ + Lib/pip/_vendor/pygments/util.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/filters,\ + Lib/pip/_vendor/pygments/filters/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/formatters,\ + Lib/pip/_vendor/pygments/formatters/__init__.py \ + Lib/pip/_vendor/pygments/formatters/_mapping.py \ + Lib/pip/_vendor/pygments/formatters/bbcode.py \ + Lib/pip/_vendor/pygments/formatters/groff.py \ + Lib/pip/_vendor/pygments/formatters/html.py \ + Lib/pip/_vendor/pygments/formatters/img.py \ + Lib/pip/_vendor/pygments/formatters/irc.py \ + Lib/pip/_vendor/pygments/formatters/latex.py \ + Lib/pip/_vendor/pygments/formatters/other.py \ + Lib/pip/_vendor/pygments/formatters/pangomarkup.py \ + Lib/pip/_vendor/pygments/formatters/rtf.py \ + Lib/pip/_vendor/pygments/formatters/svg.py \ + Lib/pip/_vendor/pygments/formatters/terminal.py \ + Lib/pip/_vendor/pygments/formatters/terminal256.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/lexers,\ + Lib/pip/_vendor/pygments/lexers/__init__.py \ + Lib/pip/_vendor/pygments/lexers/_mapping.py \ + Lib/pip/_vendor/pygments/lexers/python.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/styles,\ + Lib/pip/_vendor/pygments/styles/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyparsing,\ + Lib/pip/_vendor/pyparsing/__init__.py \ + Lib/pip/_vendor/pyparsing/actions.py \ + Lib/pip/_vendor/pyparsing/common.py \ + Lib/pip/_vendor/pyparsing/core.py \ + Lib/pip/_vendor/pyparsing/exceptions.py \ + Lib/pip/_vendor/pyparsing/helpers.py \ + Lib/pip/_vendor/pyparsing/results.py \ + Lib/pip/_vendor/pyparsing/testing.py \ + Lib/pip/_vendor/pyparsing/unicode.py \ + Lib/pip/_vendor/pyparsing/util.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyparsing/diagram,\ + Lib/pip/_vendor/pyparsing/diagram/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyproject_hooks,\ + Lib/pip/_vendor/pyproject_hooks/__init__.py \ + Lib/pip/_vendor/pyproject_hooks/_compat.py \ + Lib/pip/_vendor/pyproject_hooks/_impl.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyproject_hooks/_in_process,\ + Lib/pip/_vendor/pyproject_hooks/_in_process/__init__.py \ + Lib/pip/_vendor/pyproject_hooks/_in_process/_in_process.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/requests,\ + Lib/pip/_vendor/requests/__init__.py \ + Lib/pip/_vendor/requests/__version__.py \ + Lib/pip/_vendor/requests/_internal_utils.py \ + Lib/pip/_vendor/requests/adapters.py \ + Lib/pip/_vendor/requests/api.py \ + Lib/pip/_vendor/requests/auth.py \ + Lib/pip/_vendor/requests/certs.py \ + Lib/pip/_vendor/requests/compat.py \ + Lib/pip/_vendor/requests/cookies.py \ + Lib/pip/_vendor/requests/exceptions.py \ + Lib/pip/_vendor/requests/help.py \ + Lib/pip/_vendor/requests/hooks.py \ + Lib/pip/_vendor/requests/models.py \ + Lib/pip/_vendor/requests/packages.py \ + Lib/pip/_vendor/requests/sessions.py \ + Lib/pip/_vendor/requests/status_codes.py \ + Lib/pip/_vendor/requests/structures.py \ + Lib/pip/_vendor/requests/utils.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/resolvelib,\ + Lib/pip/_vendor/resolvelib/__init__.py \ + Lib/pip/_vendor/resolvelib/providers.py \ + Lib/pip/_vendor/resolvelib/reporters.py \ + Lib/pip/_vendor/resolvelib/resolvers.py \ + Lib/pip/_vendor/resolvelib/structs.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/resolvelib/compat,\ + Lib/pip/_vendor/resolvelib/compat/__init__.py \ + Lib/pip/_vendor/resolvelib/compat/collections_abc.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/rich,\ + Lib/pip/_vendor/rich/__init__.py \ + Lib/pip/_vendor/rich/__main__.py \ + Lib/pip/_vendor/rich/_cell_widths.py \ + Lib/pip/_vendor/rich/_emoji_codes.py \ + Lib/pip/_vendor/rich/_emoji_replace.py \ + Lib/pip/_vendor/rich/_export_format.py \ + Lib/pip/_vendor/rich/_extension.py \ + Lib/pip/_vendor/rich/_fileno.py \ + Lib/pip/_vendor/rich/_inspect.py \ + Lib/pip/_vendor/rich/_log_render.py \ + Lib/pip/_vendor/rich/_loop.py \ + Lib/pip/_vendor/rich/_null_file.py \ + Lib/pip/_vendor/rich/_palettes.py \ + Lib/pip/_vendor/rich/_pick.py \ + Lib/pip/_vendor/rich/_ratio.py \ + Lib/pip/_vendor/rich/_spinners.py \ + Lib/pip/_vendor/rich/_stack.py \ + Lib/pip/_vendor/rich/_timer.py \ + Lib/pip/_vendor/rich/_win32_console.py \ + Lib/pip/_vendor/rich/_windows.py \ + Lib/pip/_vendor/rich/_windows_renderer.py \ + Lib/pip/_vendor/rich/_wrap.py \ + Lib/pip/_vendor/rich/abc.py \ + Lib/pip/_vendor/rich/align.py \ + Lib/pip/_vendor/rich/ansi.py \ + Lib/pip/_vendor/rich/bar.py \ + Lib/pip/_vendor/rich/box.py \ + Lib/pip/_vendor/rich/cells.py \ + Lib/pip/_vendor/rich/color.py \ + Lib/pip/_vendor/rich/color_triplet.py \ + Lib/pip/_vendor/rich/columns.py \ + Lib/pip/_vendor/rich/console.py \ + Lib/pip/_vendor/rich/constrain.py \ + Lib/pip/_vendor/rich/containers.py \ + Lib/pip/_vendor/rich/control.py \ + Lib/pip/_vendor/rich/default_styles.py \ + Lib/pip/_vendor/rich/diagnose.py \ + Lib/pip/_vendor/rich/emoji.py \ + Lib/pip/_vendor/rich/errors.py \ + Lib/pip/_vendor/rich/file_proxy.py \ + Lib/pip/_vendor/rich/filesize.py \ + Lib/pip/_vendor/rich/highlighter.py \ + Lib/pip/_vendor/rich/json.py \ + Lib/pip/_vendor/rich/jupyter.py \ + Lib/pip/_vendor/rich/layout.py \ + Lib/pip/_vendor/rich/live.py \ + Lib/pip/_vendor/rich/live_render.py \ + Lib/pip/_vendor/rich/logging.py \ + Lib/pip/_vendor/rich/markup.py \ + Lib/pip/_vendor/rich/measure.py \ + Lib/pip/_vendor/rich/padding.py \ + Lib/pip/_vendor/rich/pager.py \ + Lib/pip/_vendor/rich/palette.py \ + Lib/pip/_vendor/rich/panel.py \ + Lib/pip/_vendor/rich/pretty.py \ + Lib/pip/_vendor/rich/progress.py \ + Lib/pip/_vendor/rich/progress_bar.py \ + Lib/pip/_vendor/rich/prompt.py \ + Lib/pip/_vendor/rich/protocol.py \ + Lib/pip/_vendor/rich/region.py \ + Lib/pip/_vendor/rich/repr.py \ + Lib/pip/_vendor/rich/rule.py \ + Lib/pip/_vendor/rich/scope.py \ + Lib/pip/_vendor/rich/screen.py \ + Lib/pip/_vendor/rich/segment.py \ + Lib/pip/_vendor/rich/spinner.py \ + Lib/pip/_vendor/rich/status.py \ + Lib/pip/_vendor/rich/style.py \ + Lib/pip/_vendor/rich/styled.py \ + Lib/pip/_vendor/rich/syntax.py \ + Lib/pip/_vendor/rich/table.py \ + Lib/pip/_vendor/rich/terminal_theme.py \ + Lib/pip/_vendor/rich/text.py \ + Lib/pip/_vendor/rich/theme.py \ + Lib/pip/_vendor/rich/themes.py \ + Lib/pip/_vendor/rich/traceback.py \ + Lib/pip/_vendor/rich/tree.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/tenacity,\ + Lib/pip/_vendor/tenacity/__init__.py \ + Lib/pip/_vendor/tenacity/_asyncio.py \ + Lib/pip/_vendor/tenacity/_utils.py \ + Lib/pip/_vendor/tenacity/after.py \ + Lib/pip/_vendor/tenacity/before.py \ + Lib/pip/_vendor/tenacity/before_sleep.py \ + Lib/pip/_vendor/tenacity/nap.py \ + Lib/pip/_vendor/tenacity/retry.py \ + Lib/pip/_vendor/tenacity/stop.py \ + Lib/pip/_vendor/tenacity/tornadoweb.py \ + Lib/pip/_vendor/tenacity/wait.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/tomli,\ + Lib/pip/_vendor/tomli/__init__.py \ + Lib/pip/_vendor/tomli/_parser.py \ + Lib/pip/_vendor/tomli/_re.py \ + Lib/pip/_vendor/tomli/_types.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/truststore,\ + Lib/pip/_vendor/truststore/__init__.py \ + Lib/pip/_vendor/truststore/_api.py \ + Lib/pip/_vendor/truststore/_macos.py \ + Lib/pip/_vendor/truststore/_openssl.py \ + Lib/pip/_vendor/truststore/_ssl_constants.py \ + Lib/pip/_vendor/truststore/_windows.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3,\ + Lib/pip/_vendor/urllib3/__init__.py \ + Lib/pip/_vendor/urllib3/_collections.py \ + Lib/pip/_vendor/urllib3/_version.py \ + Lib/pip/_vendor/urllib3/connection.py \ + Lib/pip/_vendor/urllib3/connectionpool.py \ + Lib/pip/_vendor/urllib3/exceptions.py \ + Lib/pip/_vendor/urllib3/fields.py \ + Lib/pip/_vendor/urllib3/filepost.py \ + Lib/pip/_vendor/urllib3/poolmanager.py \ + Lib/pip/_vendor/urllib3/request.py \ + Lib/pip/_vendor/urllib3/response.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/contrib,\ + Lib/pip/_vendor/urllib3/contrib/__init__.py \ + Lib/pip/_vendor/urllib3/contrib/_appengine_environ.py \ + Lib/pip/_vendor/urllib3/contrib/appengine.py \ + Lib/pip/_vendor/urllib3/contrib/ntlmpool.py \ + Lib/pip/_vendor/urllib3/contrib/pyopenssl.py \ + Lib/pip/_vendor/urllib3/contrib/securetransport.py \ + Lib/pip/_vendor/urllib3/contrib/socks.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/contrib/_securetransport,\ + Lib/pip/_vendor/urllib3/contrib/_securetransport/__init__.py \ + Lib/pip/_vendor/urllib3/contrib/_securetransport/bindings.py \ + Lib/pip/_vendor/urllib3/contrib/_securetransport/low_level.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/packages,\ + Lib/pip/_vendor/urllib3/packages/__init__.py \ + Lib/pip/_vendor/urllib3/packages/six.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/packages/backports,\ + Lib/pip/_vendor/urllib3/packages/backports/__init__.py \ + Lib/pip/_vendor/urllib3/packages/backports/makefile.py \ + Lib/pip/_vendor/urllib3/packages/backports/weakref_finalize.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/util,\ + Lib/pip/_vendor/urllib3/util/__init__.py \ + Lib/pip/_vendor/urllib3/util/connection.py \ + Lib/pip/_vendor/urllib3/util/proxy.py \ + Lib/pip/_vendor/urllib3/util/queue.py \ + Lib/pip/_vendor/urllib3/util/request.py \ + Lib/pip/_vendor/urllib3/util/response.py \ + Lib/pip/_vendor/urllib3/util/retry.py \ + Lib/pip/_vendor/urllib3/util/ssl_.py \ + Lib/pip/_vendor/urllib3/util/ssl_match_hostname.py \ + Lib/pip/_vendor/urllib3/util/ssltransport.py \ + Lib/pip/_vendor/urllib3/util/timeout.py \ + Lib/pip/_vendor/urllib3/util/url.py \ + Lib/pip/_vendor/urllib3/util/wait.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/webencodings,\ + Lib/pip/_vendor/webencodings/__init__.py \ + Lib/pip/_vendor/webencodings/labels.py \ + Lib/pip/_vendor/webencodings/mklabels.py \ + Lib/pip/_vendor/webencodings/tests.py \ + Lib/pip/_vendor/webencodings/x_user_defined.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources,\ + Lib/pkg_resources/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor,\ + Lib/pkg_resources/_vendor/__init__.py \ + Lib/pkg_resources/_vendor/appdirs.py \ + Lib/pkg_resources/_vendor/zipp.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/importlib_resources,\ + Lib/pkg_resources/_vendor/importlib_resources/__init__.py \ + Lib/pkg_resources/_vendor/importlib_resources/_adapters.py \ + Lib/pkg_resources/_vendor/importlib_resources/_common.py \ + Lib/pkg_resources/_vendor/importlib_resources/_compat.py \ + Lib/pkg_resources/_vendor/importlib_resources/_itertools.py \ + Lib/pkg_resources/_vendor/importlib_resources/_legacy.py \ + Lib/pkg_resources/_vendor/importlib_resources/abc.py \ + Lib/pkg_resources/_vendor/importlib_resources/readers.py \ + Lib/pkg_resources/_vendor/importlib_resources/simple.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/jaraco,\ + Lib/pkg_resources/_vendor/jaraco/__init__.py \ + Lib/pkg_resources/_vendor/jaraco/context.py \ + Lib/pkg_resources/_vendor/jaraco/functools.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/jaraco/text,\ + Lib/pkg_resources/_vendor/jaraco/text/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/more_itertools,\ + Lib/pkg_resources/_vendor/more_itertools/__init__.py \ + Lib/pkg_resources/_vendor/more_itertools/more.py \ + Lib/pkg_resources/_vendor/more_itertools/recipes.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/packaging,\ + Lib/pkg_resources/_vendor/packaging/__about__.py \ + Lib/pkg_resources/_vendor/packaging/__init__.py \ + Lib/pkg_resources/_vendor/packaging/_manylinux.py \ + Lib/pkg_resources/_vendor/packaging/_musllinux.py \ + Lib/pkg_resources/_vendor/packaging/_structures.py \ + Lib/pkg_resources/_vendor/packaging/markers.py \ + Lib/pkg_resources/_vendor/packaging/requirements.py \ + Lib/pkg_resources/_vendor/packaging/specifiers.py \ + Lib/pkg_resources/_vendor/packaging/tags.py \ + Lib/pkg_resources/_vendor/packaging/utils.py \ + Lib/pkg_resources/_vendor/packaging/version.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/pyparsing,\ + Lib/pkg_resources/_vendor/pyparsing/__init__.py \ + Lib/pkg_resources/_vendor/pyparsing/actions.py \ + Lib/pkg_resources/_vendor/pyparsing/common.py \ + Lib/pkg_resources/_vendor/pyparsing/core.py \ + Lib/pkg_resources/_vendor/pyparsing/exceptions.py \ + Lib/pkg_resources/_vendor/pyparsing/helpers.py \ + Lib/pkg_resources/_vendor/pyparsing/results.py \ + Lib/pkg_resources/_vendor/pyparsing/testing.py \ + Lib/pkg_resources/_vendor/pyparsing/unicode.py \ + Lib/pkg_resources/_vendor/pyparsing/util.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/pyparsing/diagram,\ + Lib/pkg_resources/_vendor/pyparsing/diagram/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/extern,\ + Lib/pkg_resources/extern/__init__.py \ +)) + $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pydoc_data,\ Lib/pydoc_data/__init__.py \ - Lib/pydoc_data/_pydoc.css \ Lib/pydoc_data/topics.py \ )) @@ -859,8 +1586,233 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/re/_parser.py \ )) -$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/site-packages,\ - Lib/site-packages/README.txt \ +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools,\ + Lib/setuptools/__init__.py \ + Lib/setuptools/_deprecation_warning.py \ + Lib/setuptools/_entry_points.py \ + Lib/setuptools/_imp.py \ + Lib/setuptools/_importlib.py \ + Lib/setuptools/_itertools.py \ + Lib/setuptools/_path.py \ + Lib/setuptools/_reqs.py \ + Lib/setuptools/archive_util.py \ + Lib/setuptools/build_meta.py \ + Lib/setuptools/dep_util.py \ + Lib/setuptools/depends.py \ + Lib/setuptools/discovery.py \ + Lib/setuptools/dist.py \ + Lib/setuptools/errors.py \ + Lib/setuptools/extension.py \ + Lib/setuptools/glob.py \ + Lib/setuptools/installer.py \ + Lib/setuptools/launch.py \ + Lib/setuptools/logging.py \ + Lib/setuptools/monkey.py \ + Lib/setuptools/msvc.py \ + Lib/setuptools/namespaces.py \ + Lib/setuptools/package_index.py \ + Lib/setuptools/py34compat.py \ + Lib/setuptools/sandbox.py \ + Lib/setuptools/unicode_utils.py \ + Lib/setuptools/version.py \ + Lib/setuptools/wheel.py \ + Lib/setuptools/windows_support.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_distutils,\ + Lib/setuptools/_distutils/__init__.py \ + Lib/setuptools/_distutils/_collections.py \ + Lib/setuptools/_distutils/_functools.py \ + Lib/setuptools/_distutils/_macos_compat.py \ + Lib/setuptools/_distutils/_msvccompiler.py \ + Lib/setuptools/_distutils/archive_util.py \ + Lib/setuptools/_distutils/bcppcompiler.py \ + Lib/setuptools/_distutils/ccompiler.py \ + Lib/setuptools/_distutils/cmd.py \ + Lib/setuptools/_distutils/config.py \ + Lib/setuptools/_distutils/core.py \ + Lib/setuptools/_distutils/cygwinccompiler.py \ + Lib/setuptools/_distutils/debug.py \ + Lib/setuptools/_distutils/dep_util.py \ + Lib/setuptools/_distutils/dir_util.py \ + Lib/setuptools/_distutils/dist.py \ + Lib/setuptools/_distutils/errors.py \ + Lib/setuptools/_distutils/extension.py \ + Lib/setuptools/_distutils/fancy_getopt.py \ + Lib/setuptools/_distutils/file_util.py \ + Lib/setuptools/_distutils/filelist.py \ + Lib/setuptools/_distutils/log.py \ + Lib/setuptools/_distutils/msvc9compiler.py \ + Lib/setuptools/_distutils/msvccompiler.py \ + Lib/setuptools/_distutils/py38compat.py \ + Lib/setuptools/_distutils/py39compat.py \ + Lib/setuptools/_distutils/spawn.py \ + Lib/setuptools/_distutils/sysconfig.py \ + Lib/setuptools/_distutils/text_file.py \ + Lib/setuptools/_distutils/unixccompiler.py \ + Lib/setuptools/_distutils/util.py \ + Lib/setuptools/_distutils/version.py \ + Lib/setuptools/_distutils/versionpredicate.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_distutils/command,\ + Lib/setuptools/_distutils/command/__init__.py \ + Lib/setuptools/_distutils/command/_framework_compat.py \ + Lib/setuptools/_distutils/command/bdist.py \ + Lib/setuptools/_distutils/command/bdist_dumb.py \ + Lib/setuptools/_distutils/command/bdist_rpm.py \ + Lib/setuptools/_distutils/command/build.py \ + Lib/setuptools/_distutils/command/build_clib.py \ + Lib/setuptools/_distutils/command/build_ext.py \ + Lib/setuptools/_distutils/command/build_py.py \ + Lib/setuptools/_distutils/command/build_scripts.py \ + Lib/setuptools/_distutils/command/check.py \ + Lib/setuptools/_distutils/command/clean.py \ + Lib/setuptools/_distutils/command/config.py \ + Lib/setuptools/_distutils/command/install.py \ + Lib/setuptools/_distutils/command/install_data.py \ + Lib/setuptools/_distutils/command/install_egg_info.py \ + Lib/setuptools/_distutils/command/install_headers.py \ + Lib/setuptools/_distutils/command/install_lib.py \ + Lib/setuptools/_distutils/command/install_scripts.py \ + Lib/setuptools/_distutils/command/py37compat.py \ + Lib/setuptools/_distutils/command/register.py \ + Lib/setuptools/_distutils/command/sdist.py \ + Lib/setuptools/_distutils/command/upload.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor,\ + Lib/setuptools/_vendor/__init__.py \ + Lib/setuptools/_vendor/ordered_set.py \ + Lib/setuptools/_vendor/typing_extensions.py \ + Lib/setuptools/_vendor/zipp.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/importlib_metadata,\ + Lib/setuptools/_vendor/importlib_metadata/__init__.py \ + Lib/setuptools/_vendor/importlib_metadata/_adapters.py \ + Lib/setuptools/_vendor/importlib_metadata/_collections.py \ + Lib/setuptools/_vendor/importlib_metadata/_compat.py \ + Lib/setuptools/_vendor/importlib_metadata/_functools.py \ + Lib/setuptools/_vendor/importlib_metadata/_itertools.py \ + Lib/setuptools/_vendor/importlib_metadata/_meta.py \ + Lib/setuptools/_vendor/importlib_metadata/_text.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/importlib_resources,\ + Lib/setuptools/_vendor/importlib_resources/__init__.py \ + Lib/setuptools/_vendor/importlib_resources/_adapters.py \ + Lib/setuptools/_vendor/importlib_resources/_common.py \ + Lib/setuptools/_vendor/importlib_resources/_compat.py \ + Lib/setuptools/_vendor/importlib_resources/_itertools.py \ + Lib/setuptools/_vendor/importlib_resources/_legacy.py \ + Lib/setuptools/_vendor/importlib_resources/abc.py \ + Lib/setuptools/_vendor/importlib_resources/readers.py \ + Lib/setuptools/_vendor/importlib_resources/simple.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/jaraco,\ + Lib/setuptools/_vendor/jaraco/__init__.py \ + Lib/setuptools/_vendor/jaraco/context.py \ + Lib/setuptools/_vendor/jaraco/functools.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/jaraco/text,\ + Lib/setuptools/_vendor/jaraco/text/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/more_itertools,\ + Lib/setuptools/_vendor/more_itertools/__init__.py \ + Lib/setuptools/_vendor/more_itertools/more.py \ + Lib/setuptools/_vendor/more_itertools/recipes.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/packaging,\ + Lib/setuptools/_vendor/packaging/__about__.py \ + Lib/setuptools/_vendor/packaging/__init__.py \ + Lib/setuptools/_vendor/packaging/_manylinux.py \ + Lib/setuptools/_vendor/packaging/_musllinux.py \ + Lib/setuptools/_vendor/packaging/_structures.py \ + Lib/setuptools/_vendor/packaging/markers.py \ + Lib/setuptools/_vendor/packaging/requirements.py \ + Lib/setuptools/_vendor/packaging/specifiers.py \ + Lib/setuptools/_vendor/packaging/tags.py \ + Lib/setuptools/_vendor/packaging/utils.py \ + Lib/setuptools/_vendor/packaging/version.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/pyparsing,\ + Lib/setuptools/_vendor/pyparsing/__init__.py \ + Lib/setuptools/_vendor/pyparsing/actions.py \ + Lib/setuptools/_vendor/pyparsing/common.py \ + Lib/setuptools/_vendor/pyparsing/core.py \ + Lib/setuptools/_vendor/pyparsing/exceptions.py \ + Lib/setuptools/_vendor/pyparsing/helpers.py \ + Lib/setuptools/_vendor/pyparsing/results.py \ + Lib/setuptools/_vendor/pyparsing/testing.py \ + Lib/setuptools/_vendor/pyparsing/unicode.py \ + Lib/setuptools/_vendor/pyparsing/util.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/pyparsing/diagram,\ + Lib/setuptools/_vendor/pyparsing/diagram/__init__.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/tomli,\ + Lib/setuptools/_vendor/tomli/__init__.py \ + Lib/setuptools/_vendor/tomli/_parser.py \ + Lib/setuptools/_vendor/tomli/_re.py \ + Lib/setuptools/_vendor/tomli/_types.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/command,\ + Lib/setuptools/command/__init__.py \ + Lib/setuptools/command/alias.py \ + Lib/setuptools/command/bdist_egg.py \ + Lib/setuptools/command/bdist_rpm.py \ + Lib/setuptools/command/build.py \ + Lib/setuptools/command/build_clib.py \ + Lib/setuptools/command/build_ext.py \ + Lib/setuptools/command/build_py.py \ + Lib/setuptools/command/develop.py \ + Lib/setuptools/command/dist_info.py \ + Lib/setuptools/command/easy_install.py \ + Lib/setuptools/command/editable_wheel.py \ + Lib/setuptools/command/egg_info.py \ + Lib/setuptools/command/install.py \ + Lib/setuptools/command/install_egg_info.py \ + Lib/setuptools/command/install_lib.py \ + Lib/setuptools/command/install_scripts.py \ + Lib/setuptools/command/py36compat.py \ + Lib/setuptools/command/register.py \ + Lib/setuptools/command/rotate.py \ + Lib/setuptools/command/saveopts.py \ + Lib/setuptools/command/sdist.py \ + Lib/setuptools/command/setopt.py \ + Lib/setuptools/command/test.py \ + Lib/setuptools/command/upload.py \ + Lib/setuptools/command/upload_docs.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/config,\ + Lib/setuptools/config/__init__.py \ + Lib/setuptools/config/_apply_pyprojecttoml.py \ + Lib/setuptools/config/expand.py \ + Lib/setuptools/config/pyprojecttoml.py \ + Lib/setuptools/config/setupcfg.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/config/_validate_pyproject,\ + Lib/setuptools/config/_validate_pyproject/__init__.py \ + Lib/setuptools/config/_validate_pyproject/error_reporting.py \ + Lib/setuptools/config/_validate_pyproject/extra_validations.py \ + Lib/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py \ + Lib/setuptools/config/_validate_pyproject/fastjsonschema_validations.py \ + Lib/setuptools/config/_validate_pyproject/formats.py \ +)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/extern,\ + Lib/setuptools/extern/__init__.py \ )) $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/tomllib,\ diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk index 5bafc38e5260..7530031563ee 100644 --- a/external/python3/ExternalProject_python3.mk +++ b/external/python3/ExternalProject_python3.mk @@ -142,7 +142,8 @@ endif ifeq ($(OS),MACOSX) -python3_fw_prefix=$(gb_UnpackedTarball_workdir)/python3/python-inst/@__________________________________________________OOO/LibreOfficePython.framework +python3_fw_prefix:=$(gb_UnpackedTarball_workdir)/python3/python-inst/@__________________________________________________OOO/LibreOfficePython.framework/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) +python3_EXTENSION_MODULE_SUFFIX:=cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(ENABLE_DBGUTIL),d)-darwin # rule to allow relocating the whole framework, removing reference to buildinstallation directory # also scripts are not allowed to be signed as executables (with extended attributes), but need to @@ -150,7 +151,7 @@ python3_fw_prefix=$(gb_UnpackedTarball_workdir)/python3/python-inst/@___________ # https://developer.apple.com/library/archive/technotes/tn2206/_index.html $(call gb_ExternalProject_get_state_target,python3,fixscripts) : $(call gb_ExternalProject_get_state_target,python3,build) $(call gb_Output_announce,python3 - remove reference to installroot from scripts,build,CUS,5) - $(COMMAND_ECHO)cd $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/ && \ + $(COMMAND_ECHO)cd $(python3_fw_prefix)/bin/ && \ for file in \ 2to3-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \ idle$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \ @@ -173,19 +174,19 @@ cd \"$$origpath\"\n\ $(call gb_ExternalProject_get_state_target,python3,fixinstallnames) : $(call gb_ExternalProject_get_state_target,python3,build) \ | $(call gb_ExternalProject_get_state_target,python3,removeunnecessarystuff) $(INSTALL_NAME_TOOL) -change \ - $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/LibreOfficePython \ + $(python3_fw_prefix)/LibreOfficePython \ @executable_path/../../../../LibreOfficePython \ - $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/Resources/Python.app/Contents/MacOS/LibreOfficePython - for file in $(shell $(FIND) $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload -name "*.so") ; do \ + $(python3_fw_prefix)/Resources/Python.app/Contents/MacOS/LibreOfficePython + for file in $(shell $(FIND) $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload -name "*.so") ; do \ $(INSTALL_NAME_TOOL) -change \ - $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/LibreOfficePython \ + $(python3_fw_prefix)/LibreOfficePython \ @loader_path/../../../LibreOfficePython $$file ; done touch $@ $(call gb_ExternalProject_get_state_target,python3,executables) : $(call gb_ExternalProject_get_state_target,python3,build) - cd $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin ; \ + cd $(python3_fw_prefix)/bin ; \ $(INSTALL_NAME_TOOL) -change \ - $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/LibreOfficePython \ + $(python3_fw_prefix)/LibreOfficePython \ @executable_path/../LibreOfficePython python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) touch $@ @@ -194,20 +195,20 @@ $(call gb_ExternalProject_get_state_target,python3,executables) : $(call gb_Exte $(call gb_ExternalProject_get_state_target,python3,removeunnecessarystuff) : $(call gb_ExternalProject_get_state_target,python3,build) $(call gb_Output_announce,python3 - remove the stuff we don't need to ship,build,CUS,5) - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/dbm - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/sqlite3 - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/curses - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/idlelib - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/tkinter - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/turtledemo - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/test - rm -r $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/venv + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/dbm + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/sqlite3 + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/curses + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/idlelib + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/tkinter + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/turtledemo + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/test + rm -r $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/venv # Then the binary libraries - rm $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_dbm.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)*.so - rm $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_sqlite3.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)*.so - rm $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)*.so - rm $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses_panel.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)*.so - rm $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_test*.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)*.so + rm $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_dbm.$(python3_EXTENSION_MODULE_SUFFIX).so + rm $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_sqlite3.$(python3_EXTENSION_MODULE_SUFFIX).so + rm $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses.$(python3_EXTENSION_MODULE_SUFFIX).so + rm $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses_panel.$(python3_EXTENSION_MODULE_SUFFIX).so + rm $(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_test*.$(python3_EXTENSION_MODULE_SUFFIX).so touch $@ endif diff --git a/external/python3/UnpackedTarball_python3.mk b/external/python3/UnpackedTarball_python3.mk index 0424a8d22c0f..28c22d0e3fca 100644 --- a/external/python3/UnpackedTarball_python3.mk +++ b/external/python3/UnpackedTarball_python3.mk @@ -11,13 +11,17 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,python3)) $(eval $(call gb_UnpackedTarball_set_tarball,python3,$(PYTHON_TARBALL),,python3)) -# Since Python 3.11, _freeze_module.vcxproj needs python.exe to build deepfreeze.c -# on Windows -ifeq ($(OS),WNT) +# Since Python 3.11, _freeze_module.vcxproj needs python.exe to build deepfreeze.c on Windows +# Since a wheel file is just a zip file, unzil them to the Lib directory with the other libraries +ifneq ($(OS),MACOSX) $(eval $(call gb_UnpackedTarball_set_pre_action,python3,\ - mkdir -p externals/pythonx86 && \ - unzip -q -d externals/pythonx86 -o $(gb_UnpackedTarget_TARFILE_LOCATION)/$(PYTHON_BOOTSTRAP_TARBALL) && \ - chmod +x externals/pythonx86/tools/* \ + $(if $(filter WNT,$(OS)), \ + mkdir -p externals/pythonx86 && \ + unzip -q -d externals/pythonx86 -o $(gb_UnpackedTarget_TARFILE_LOCATION)/$(PYTHON_BOOTSTRAP_TARBALL) && \ + chmod +x externals/pythonx86/tools/* && \ + ) \ + unzip -q -d Lib/ -o Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl && \ + unzip -q -d Lib/ -o Lib/ensurepip/_bundled/pip-24.0-py3-none-any.whl \ )) endif @@ -37,7 +41,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\ external/python3/python-3.7.6-msvc-ssl.patch.1 \ external/python3/python-3.5.4-msvc-disable.patch.1 \ external/python3/ubsan.patch.0 \ - external/python3/python-3.5.tweak.strip.soabi.patch \ external/python3/darwin.patch.0 \ external/python3/tsan.patch.0 \ external/python3/init-sys-streams-cant-initialize-stdin.patch.0 \ diff --git a/external/python3/generateExternalPackage.py b/external/python3/generateExternalPackage.py index b5fe0d1e158e..ef6650438626 100755 --- a/external/python3/generateExternalPackage.py +++ b/external/python3/generateExternalPackage.py @@ -34,7 +34,7 @@ if __name__ == '__main__': continue for fileName in sorted(files): - if fileName.endswith(".pyc"): + if not fileName.endswith(".py") and not fileName.endswith(".pem"): continue filesList.append(path.join(relPythonDir, fileName)) if filesList: diff --git a/external/python3/python-3.5.tweak.strip.soabi.patch b/external/python3/python-3.5.tweak.strip.soabi.patch deleted file mode 100644 index 4c2bb2bb9a29..000000000000 --- a/external/python3/python-3.5.tweak.strip.soabi.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru python3.orig/configure python3/configure ---- misc/python3.orig/configure 2015-07-26 21:14:31.127377193 +0200 -+++ misc/python3/configure 2015-07-26 21:21:34.975405648 +0200 -@@ -15229,7 +15229,7 @@ - $as_echo "$ABIFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 - $as_echo_n "checking SOABI... " >&6; } --SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} -+SOABI='cpython-'`echo $VERSION$ABIFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 - $as_echo "$SOABI" >&6; } - diff --git a/external/skia/share-grcontext.patch.1 b/external/skia/share-grcontext.patch.1 index ce225bcbb6c7..71d7c247d334 100644 --- a/external/skia/share-grcontext.patch.1 +++ b/external/skia/share-grcontext.patch.1 @@ -199,6 +199,37 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind +} + } //namespace skwindow::internal +diff -ur skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.cpp.orig skia/tools/window/unix/GaneshVulkanWindowContext_unix.cpp +--- skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.cpp.orig 2025-01-17 09:32:18.346355282 -0700 ++++ skia/tools/window/unix/GaneshVulkanWindowContext_unix.cpp 2025-01-17 09:34:12.368151987 -0700 +@@ -23,7 +23,7 @@ + return nullptr; + } + +- auto createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { ++ internal::VulkanWindowContext::CreateVkSurfaceFn createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { + static PFN_vkCreateXcbSurfaceKHR createXcbSurfaceKHR = nullptr; + if (!createXcbSurfaceKHR) { + createXcbSurfaceKHR = +@@ -47,6 +47,9 @@ + + return surface; + }; ++ // Allow creating just the shared context, without an associated window. ++ if(info.fWindow == 0) ++ createVkSurface = nullptr; + + auto canPresent = [&info, instProc](VkInstance instance, + VkPhysicalDevice physDev, +@@ -68,7 +71,7 @@ + }; + std::unique_ptr<WindowContext> ctx(new internal::VulkanWindowContext( + displayParams, createVkSurface, canPresent, instProc)); +- if (!ctx->isValid()) { ++ if (!ctx->isValid() && createVkSurface != nullptr) { + return nullptr; + } + return ctx; diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanWindowContext.cpp --- skia.org/tools/window/VulkanWindowContext.cpp 2024-10-10 14:11:32.362258108 +0200 +++ skia/tools/window/VulkanWindowContext.cpp 2024-10-10 14:15:27.179546520 +0200 diff --git a/extras/source/wordbook/technical.dic b/extras/source/wordbook/technical.dic index 7244cb32752b..5c2aa80d5a08 100644 --- a/extras/source/wordbook/technical.dic +++ b/extras/source/wordbook/technical.dic @@ -9,9 +9,11 @@ Add-in Adobe ADSL Advanced +AGI AI AIX= Alibaba +AlphaFold Amazon AMD Amiga= @@ -124,6 +126,7 @@ GNOME GNU Google GPS +GPT GroupWise GSM= GSoC @@ -177,6 +180,7 @@ LG LibreOffice= LINE Linux +LLM LTE= Lubuntu Lucid @@ -226,6 +230,7 @@ NRadius Nvidia ODBC Ogg +Ollama OnDemand OnePlus Online @@ -300,6 +305,7 @@ SunHSI= SunOS= SunSAI= SUSE +SynthID Systemd Tahr TCL diff --git a/filter/source/msfilter/rtfutil.cxx b/filter/source/msfilter/rtfutil.cxx index f61cc9a5ce16..bb1b85876bfd 100644 --- a/filter/source/msfilter/rtfutil.cxx +++ b/filter/source/msfilter/rtfutil.cxx @@ -15,6 +15,7 @@ #include <rtl/character.hxx> #include <tools/stream.hxx> #include <sot/storage.hxx> +#include <o3tl/numeric.hxx> namespace { @@ -250,24 +251,6 @@ OString OutStringUpr(std::string_view pToken, std::u16string_view rStr, rtl_Text + OutString(rStr, eDestEnc) + "}}}"; } -int AsHex(char ch) -{ - int ret = 0; - if (rtl::isAsciiDigit(static_cast<unsigned char>(ch))) - ret = ch - '0'; - else - { - if (ch >= 'a' && ch <= 'f') - ret = ch - 'a'; - else if (ch >= 'A' && ch <= 'F') - ret = ch - 'A'; - else - return -1; - ret += 10; - } - return ret; -} - OString WriteHex(const sal_uInt8* pData, sal_uInt32 nSize, SvStream* pStream, sal_uInt32 nLimit) { OStringBuffer aRet; @@ -313,7 +296,7 @@ bool ExtractOLE2FromObjdata(const OString& rObjdata, SvStream& rOle2) if (ch != 0x0d && ch != 0x0a) { b = b << 4; - sal_Int8 parsed = msfilter::rtfutil::AsHex(ch); + sal_Int8 parsed = o3tl::convertToHex<sal_Int8>(ch); if (parsed == -1) return false; b += parsed; diff --git a/filter/source/t602/t602filter.cxx b/filter/source/t602/t602filter.cxx index 85c7fa0ba773..94c52f52bb0a 100644 --- a/filter/source/t602/t602filter.cxx +++ b/filter/source/t602/t602filter.cxx @@ -21,7 +21,6 @@ #include <strings.hrc> #include <cppuhelper/factory.hxx> -#include <cppuhelper/bootstrap.hxx> #include <cppuhelper/supportsservice.hxx> #include <com/sun/star/awt/Toolkit.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -30,6 +29,7 @@ #include <com/sun/star/awt/XControl.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <comphelper/processfactory.hxx> #include <osl/diagnose.h> #include <rtl/ref.hxx> #include <rtl/character.hxx> @@ -883,7 +883,7 @@ bool T602ImportFilterDialog::OptionsDlg() any <<= _obj;\ _cont->insertByName( _nam, any ); - Reference < XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext(); + Reference < XComponentContext > rComponentContext = ::comphelper::getProcessComponentContext(); Reference < XMultiComponentFactory > rServiceManager = rComponentContext->getServiceManager(); Reference < XInterface > rInstance = rServiceManager->createInstanceWithContext(u"com.sun.star.awt.UnoControlDialogModel"_ustr, rComponentContext ); diff --git a/filter/uiconfig/ui/pdfgeneralpage.ui b/filter/uiconfig/ui/pdfgeneralpage.ui index 212631e6c2de..0d8c8983424c 100644 --- a/filter/uiconfig/ui/pdfgeneralpage.ui +++ b/filter/uiconfig/ui/pdfgeneralpage.ui @@ -586,9 +586,9 @@ <items> <item id="17" translatable="yes" context="pdfgeneralpage|pdf_version">PDF 1.7</item> <item id="20" translatable="yes" context="pdfgeneralpage|pdf_version">PDF 2.0</item> - <item id="1" context="pdfgeneralpage|pdf_version">PDF/A-1b (PDF 1.4 base)</item> - <item id="2" context="pdfgeneralpage|pdf_version">PDF/A-2b (PDF 1.7 base)</item> - <item id="3" context="pdfgeneralpage|pdf_version">PDF/A-3b (PDF 1.7 base)</item> + <item id="1" translatable="yes" context="pdfgeneralpage|pdf_version">PDF/A-1b (PDF 1.4 base)</item> + <item id="2" translatable="yes" context="pdfgeneralpage|pdf_version">PDF/A-2b (PDF 1.7 base)</item> + <item id="3" translatable="yes" context="pdfgeneralpage|pdf_version">PDF/A-3b (PDF 1.7 base)</item> <item id="4" translatable="yes" context="pdfgeneralpage|pdf_version">PDF/A-4 (PDF 2.0 base)</item> </items> <accessibility> diff --git a/formula/inc/core_resource.hrc b/formula/inc/core_resource.hrc index 216faf259d47..5b6165a35202 100644 --- a/formula/inc/core_resource.hrc +++ b/formula/inc/core_resource.hrc @@ -281,10 +281,15 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF[] = { "COM.MICROSOFT.FILTER" , SC_OPCODE_FILTER }, { "COM.MICROSOFT.SORT" , SC_OPCODE_SORT }, { "COM.MICROSOFT.SORTBY" , SC_OPCODE_SORTBY }, + { "COM.MICROSOFT.DROP" , SC_OPCODE_DROP }, + { "COM.MICROSOFT.EXPAND" , SC_OPCODE_EXPAND }, + { "COM.MICROSOFT.TAKE" , SC_OPCODE_TAKE }, { "COM.MICROSOFT.TOCOL" , SC_OPCODE_TOCOL }, { "COM.MICROSOFT.TOROW" , SC_OPCODE_TOROW }, { "COM.MICROSOFT.UNIQUE" , SC_OPCODE_UNIQUE }, { "COM.MICROSOFT.LET" , SC_OPCODE_LET }, + { "COM.MICROSOFT.WRAPCOLS" , SC_OPCODE_WRAPCOLS }, + { "COM.MICROSOFT.WRAPROWS" , SC_OPCODE_WRAPROWS }, { "_xlpm." , SC_OPCODE_STRINGNAME }, { "ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union) { "OFFSET" , SC_OPCODE_OFFSET }, @@ -740,10 +745,15 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML[] = { "_xlfn._xlws.FILTER" , SC_OPCODE_FILTER }, { "_xlfn._xlws.SORT" , SC_OPCODE_SORT }, { "_xlfn.SORTBY" , SC_OPCODE_SORTBY }, + { "_xlfn.DROP" , SC_OPCODE_DROP }, + { "_xlfn.EXPAND" , SC_OPCODE_EXPAND }, + { "_xlfn.TAKE" , SC_OPCODE_TAKE }, { "_xlfn.TOCOL" , SC_OPCODE_TOCOL }, { "_xlfn.TOROW" , SC_OPCODE_TOROW }, { "_xlfn.UNIQUE" , SC_OPCODE_UNIQUE }, { "_xlfn.LET" , SC_OPCODE_LET }, + { "_xlfn.WRAPCOLS" , SC_OPCODE_WRAPCOLS }, + { "_xlfn.WRAPROWS" , SC_OPCODE_WRAPROWS }, { "_xlpm." , SC_OPCODE_STRINGNAME }, { "_xlfn.ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union) { "OFFSET" , SC_OPCODE_OFFSET }, @@ -1202,10 +1212,15 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF[] = { "FILTER" , SC_OPCODE_FILTER }, { "SORT" , SC_OPCODE_SORT }, { "SORTBY" , SC_OPCODE_SORTBY }, + { "DROP" , SC_OPCODE_DROP }, + { "EXPAND" , SC_OPCODE_EXPAND }, + { "TAKE" , SC_OPCODE_TAKE }, { "TOCOL" , SC_OPCODE_TOCOL }, { "TOROW" , SC_OPCODE_TOROW }, { "UNIQUE" , SC_OPCODE_UNIQUE }, { "LET" , SC_OPCODE_LET }, + { "WRAPCOLS" , SC_OPCODE_WRAPCOLS }, + { "WRAPROWS" , SC_OPCODE_WRAPROWS }, { "MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union) { "OFFSET" , SC_OPCODE_OFFSET }, { "INDEX" , SC_OPCODE_INDEX }, @@ -1664,10 +1679,15 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_API[] = { "FILTER" , SC_OPCODE_FILTER }, { "SORT" , SC_OPCODE_SORT }, { "SORTBY" , SC_OPCODE_SORTBY }, + { "DROP" , SC_OPCODE_DROP }, + { "EXPAND" , SC_OPCODE_EXPAND }, + { "TAKE" , SC_OPCODE_TAKE }, { "TOCOL" , SC_OPCODE_TOCOL }, { "TOROW" , SC_OPCODE_TOROW }, { "UNIQUE" , SC_OPCODE_UNIQUE }, { "LET" , SC_OPCODE_LET }, + { "WRAPCOLS" , SC_OPCODE_WRAPCOLS }, + { "WRAPROWS" , SC_OPCODE_WRAPROWS }, { "MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union) { "OFFSET" , SC_OPCODE_OFFSET }, { "INDEX" , SC_OPCODE_INDEX }, // ?? first character = I ?? @@ -2124,10 +2144,15 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH[] = { "FILTER" , SC_OPCODE_FILTER }, { "SORT" , SC_OPCODE_SORT }, { "SORTBY" , SC_OPCODE_SORTBY }, + { "DROP" , SC_OPCODE_DROP }, + { "EXPAND" , SC_OPCODE_EXPAND }, + { "TAKE" , SC_OPCODE_TAKE }, { "TOCOL" , SC_OPCODE_TOCOL }, { "TOROW" , SC_OPCODE_TOROW }, { "UNIQUE" , SC_OPCODE_UNIQUE }, { "LET" , SC_OPCODE_LET }, + { "WRAPCOLS" , SC_OPCODE_WRAPCOLS }, + { "WRAPROWS" , SC_OPCODE_WRAPROWS }, { "MULTIRANGE" , SC_OPCODE_MULTI_AREA }, { "OFFSET" , SC_OPCODE_OFFSET }, { "INDEX" , SC_OPCODE_INDEX }, @@ -2565,10 +2590,15 @@ const std::pair<TranslateId, int> RID_STRLIST_FUNCTION_NAMES[] = { NC_("RID_STRLIST_FUNCTION_NAMES", "FILTER") , SC_OPCODE_FILTER }, { NC_("RID_STRLIST_FUNCTION_NAMES", "SORT") , SC_OPCODE_SORT }, { NC_("RID_STRLIST_FUNCTION_NAMES", "SORTBY") , SC_OPCODE_SORTBY }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "DROP") , SC_OPCODE_DROP }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "EXPAND") , SC_OPCODE_EXPAND }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "TAKE") , SC_OPCODE_TAKE }, { NC_("RID_STRLIST_FUNCTION_NAMES", "TOCOL") , SC_OPCODE_TOCOL }, { NC_("RID_STRLIST_FUNCTION_NAMES", "TOROW") , SC_OPCODE_TOROW }, { NC_("RID_STRLIST_FUNCTION_NAMES", "UNIQUE") , SC_OPCODE_UNIQUE }, { NC_("RID_STRLIST_FUNCTION_NAMES", "LET") , SC_OPCODE_LET }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "WRAPCOLS") , SC_OPCODE_WRAPCOLS }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "WRAPROWS") , SC_OPCODE_WRAPROWS }, { NC_("RID_STRLIST_FUNCTION_NAMES", "MULTIRANGE") , SC_OPCODE_MULTI_AREA }, // legacy for range list (union) { NC_("RID_STRLIST_FUNCTION_NAMES", "OFFSET") , SC_OPCODE_OFFSET }, { NC_("RID_STRLIST_FUNCTION_NAMES", "INDEX") , SC_OPCODE_INDEX }, // ?? first character = I ?? diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx index 2fb982daac23..eafb6220c78a 100644 --- a/formula/source/core/api/FormulaCompiler.cxx +++ b/formula/source/core/api/FormulaCompiler.cxx @@ -1279,10 +1279,15 @@ bool FormulaCompiler::IsMatrixFunction( OpCode eOpCode ) case ocSort : case ocSortBy : case ocRandArray : + case ocDrop : + case ocExpand : + case ocTake : case ocToCol : case ocToRow : case ocUnique : case ocLet : + case ocWrapCols : + case ocWrapRows : return true; default: { diff --git a/formula/uiconfig/ui/functionpage.ui b/formula/uiconfig/ui/functionpage.ui index c867539ce6e9..389a1706ee0a 100644 --- a/formula/uiconfig/ui/functionpage.ui +++ b/formula/uiconfig/ui/functionpage.ui @@ -173,7 +173,7 @@ </child> <child> <object class="GtkButton" id="help"> - <property name="label">Help</property> + <property name="label" translatable="yes" context="functionpage|help">Help</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="can-default">True</property> diff --git a/helpcompiler/source/HelpIndexer.cxx b/helpcompiler/source/HelpIndexer.cxx index 65e46743b482..738ea0d3e092 100644 --- a/helpcompiler/source/HelpIndexer.cxx +++ b/helpcompiler/source/HelpIndexer.cxx @@ -26,6 +26,7 @@ #include <o3tl/char16_t2wchar_t.hxx> #include <prewin.h> #include <postwin.h> +#include <systools/win32/extended_max_path.hxx> #endif using namespace lucene::document; @@ -64,7 +65,7 @@ auto TryWithUnicodePathWorkaround(const OUString& ustrPath, const Constructor& c // For a workaround, try short name, which should only contain ASCII characters. Would // not help (i.e., would return original long name) if short (8.3) file name creation is // disabled in OS or volume settings. - wchar_t buf[32767]; + wchar_t buf[EXTENDED_MAX_PATH]; if (GetShortPathNameW(o3tl::toW(ustrPath.getStr()), buf, std::size(buf)) == 0) throw; sPath = OUStringToOString(o3tl::toU(buf), eThreadEncoding); diff --git a/helpcontent2 b/helpcontent2 -Subproject 8f4c572d64b2fbe1ce66dc917c2709d96a4158f +Subproject 12039db8f078823fd754faf87e7c126e953e368 diff --git a/i18npool/Library_localedata_others.mk b/i18npool/Library_localedata_others.mk index 9164995c3966..287eda351a83 100644 --- a/i18npool/Library_localedata_others.mk +++ b/i18npool/Library_localedata_others.mk @@ -99,6 +99,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,localedata_others,\ CustomTarget/i18npool/localedata/localedata_mkw_CG \ CustomTarget/i18npool/localedata/localedata_ml_IN \ CustomTarget/i18npool/localedata/localedata_mn_Cyrl_MN \ + CustomTarget/i18npool/localedata/localedata_mn_Mong_MN \ CustomTarget/i18npool/localedata/localedata_mos_BF \ CustomTarget/i18npool/localedata/localedata_mr_IN \ CustomTarget/i18npool/localedata/localedata_ms_MY \ diff --git a/i18npool/source/localedata/data/mn_Mong_MN.xml b/i18npool/source/localedata/data/mn_Mong_MN.xml new file mode 100644 index 000000000000..bf139fbb2ce6 --- /dev/null +++ b/i18npool/source/localedata/data/mn_Mong_MN.xml @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE Locale SYSTEM 'locale.dtd'> +<!-- + * 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 . + --> +<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.0"> + <LC_INFO> + <Language> + <LangID>qlt</LangID> + <DefaultName>Mongolian Mongolian</DefaultName> + </Language> + <Country> + <CountryID>MN</CountryID> + <DefaultName>Mongolia</DefaultName> + </Country> + <Variant>mn-Mong-MN</Variant> + </LC_INFO> + <LC_CTYPE unoid="generic"> + <Separators> + <DateSeparator>.</DateSeparator> + <ThousandSeparator> </ThousandSeparator> + <DecimalSeparator>,</DecimalSeparator> + <TimeSeparator>:</TimeSeparator> + <Time100SecSeparator>,</Time100SecSeparator> + <ListSeparator>;</ListSeparator> + <LongDateDayOfWeekSeparator> </LongDateDayOfWeekSeparator> + <LongDateDaySeparator> </LongDateDaySeparator> + <LongDateMonthSeparator> </LongDateMonthSeparator> + <LongDateYearSeparator> ᠣᠨ</LongDateYearSeparator> + </Separators> + <Markers> + <QuotationStart>‘</QuotationStart> + <QuotationEnd>’</QuotationEnd> + <DoubleQuotationStart>“</DoubleQuotationStart> + <DoubleQuotationEnd>”</DoubleQuotationEnd> + </Markers> + <TimeAM>AM</TimeAM> + <TimePM>PM</TimePM> + <MeasurementSystem>Metric</MeasurementSystem> + </LC_CTYPE> + <LC_FORMAT ref="mn_Cyrl_MN" replaceFrom="[CURRENCY]" replaceTo="[$₮-450]"/> + <LC_COLLATION ref="mn_Cyrl_MN"/> + <LC_SEARCH ref="mn_Cyrl_MN"/> + <LC_INDEX> + <IndexKey unoid="alphanumeric" default="true" phonetic="false">ᠠ-ᡂ</IndexKey> + <UnicodeScript>36</UnicodeScript> + <FollowPageWord>p.</FollowPageWord> + <FollowPageWord>pp.</FollowPageWord> + </LC_INDEX> + <LC_CALENDAR> + <Calendar unoid="gregorian" default="true"> + <DaysOfWeek> + <Day> + <DayID>sun</DayID> + <DefaultAbbrvName>ᠨᠢ</DefaultAbbrvName> + <DefaultFullName>ᠨᠢᠮᠠ</DefaultFullName> + </Day> + <Day> + <DayID>mon</DayID> + <DefaultAbbrvName>ᠲᠠ</DefaultAbbrvName> + <DefaultFullName>ᠳᠠᠸᠠ</DefaultFullName> + </Day> + <Day> + <DayID>tue</DayID> + <DefaultAbbrvName>ᠮᠢᠭ</DefaultAbbrvName> + <DefaultFullName>ᠮᠢᠠᠠᠮᠠᠷ</DefaultFullName> + </Day> + <Day> + <DayID>wed</DayID> + <DefaultAbbrvName>ᡀᠠ</DefaultAbbrvName> + <DefaultFullName>ᡀᠠᠭᠪᠠ</DefaultFullName> + </Day> + <Day> + <DayID>thu</DayID> + <DefaultAbbrvName>ᠫᠥᠷ</DefaultAbbrvName> + <DefaultFullName>ᠫᠦᠷᠪᠦ</DefaultFullName> + </Day> + <Day> + <DayID>fri</DayID> + <DefaultAbbrvName>ᠪᠠ</DefaultAbbrvName> + <DefaultFullName>ᠪᠠᠰᠠᠩ</DefaultFullName> + </Day> + <Day> + <DayID>sat</DayID> + <DefaultAbbrvName>ᠪᠢᠮ</DefaultAbbrvName> + <DefaultFullName>ᠪᠢᠮᠪᠠ</DefaultFullName> + </Day> + </DaysOfWeek> + <MonthsOfYear> + <Month> + <MonthID>jan</MonthID> + <DefaultAbbrvName>1 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠨᠢᠭᠡᠳᠥᠭᠡᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>feb</MonthID> + <DefaultAbbrvName>2 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠬᠣᠶᠠᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>mar</MonthID> + <DefaultAbbrvName>3 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠭᠣᠷᠪᠡᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>apr</MonthID> + <DefaultAbbrvName>4 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠳᠥᠷᠪᠡᠳᠥᠭᠡᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>may</MonthID> + <DefaultAbbrvName>5 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠲᠠᠪᠣᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>jun</MonthID> + <DefaultAbbrvName>6 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠵᠢᠷᠭᠣᠭᠠᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>jul</MonthID> + <DefaultAbbrvName>7 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠲᠣᠯᠣᠭᠠᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>aug</MonthID> + <DefaultAbbrvName>8 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠨᠠᠢᠮᠠᠳᠥᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>sep</MonthID> + <DefaultAbbrvName>9 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠶᠢᠰᠥᠳᠥᠭᠡᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>oct</MonthID> + <DefaultAbbrvName>10 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠠᠷᠪᠠᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>nov</MonthID> + <DefaultAbbrvName>11 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠥᠭᠡᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + <Month> + <MonthID>dec</MonthID> + <DefaultAbbrvName>12 ᠊ᠷ ᠰᠠᠷᠠ</DefaultAbbrvName> + <DefaultFullName>ᠠᠷᠪᠠᠨ ᠬᠣᠶᠠᠳᠣᠭᠠᠷ ᠰᠠᠷᠠ</DefaultFullName> + </Month> + </MonthsOfYear> + <Eras> + <Era> + <EraID>bc</EraID> + <DefaultAbbrvName>ᠮ᠂ ᠡᠡ᠂ ᠦ</DefaultAbbrvName> + <DefaultFullName>ᠮᠠᠨ ᠤ ᠡᠷᠡᠨ ᠦ ᠡᠮᠦᠨᠡᠬᠢ</DefaultFullName> + </Era> + <Era> + <EraID>ad</EraID> + <DefaultAbbrvName>ᠮ᠂ ᠡ</DefaultAbbrvName> + <DefaultFullName>ᠮᠠᠨ ᠤ ᠡᠷᠡᠨ ᠦ</DefaultFullName> + </Era> + </Eras> + <StartDayOfWeek> + <DayID>mon</DayID> + </StartDayOfWeek> + <MinimalDaysInFirstWeek>4</MinimalDaysInFirstWeek> + </Calendar> + </LC_CALENDAR> + <LC_CURRENCY ref="mn_Cyrl_MN"/> + <LC_TRANSLITERATION ref="mn_Cyrl_MN"/> + <LC_MISC> + <ReservedWords> + <trueWord>ᠦᠨᠡᠨ</trueWord> + <falseWord>ᠬᠤᠳᠠᠯ</falseWord> + <quarter1Word>ᠳᠥᠷᠪᠡᠨ ᠦ ᠨᠢᠭᠡ</quarter1Word> + <quarter2Word>ᠳᠥᠷᠪᠡᠨ ᠦ ᠬᠣᠶᠠᠷ</quarter2Word> + <quarter3Word>ᠳᠥᠷᠪᠡᠨ ᠦ ᠭᠤᠷᠪᠠ</quarter3Word> + <quarter4Word>ᠳᠥᠷᠪᠡᠨ ᠦ ᠳᠥᠷᠪᠡ</quarter4Word> + <aboveWord>ᠳᠡᠭᠡᠷᠡ</aboveWord> + <belowWord>ᠳᠣᠣᠷᠠ</belowWord> + <quarter1Abbreviation>1/4</quarter1Abbreviation> + <quarter2Abbreviation>2/4</quarter2Abbreviation> + <quarter3Abbreviation>4/4</quarter3Abbreviation> + <quarter4Abbreviation>4/4</quarter4Abbreviation> + </ReservedWords> + </LC_MISC> + <LC_NumberingLevel ref="mn_Cyrl_MN"/> + <LC_OutLineNumberingLevel ref="mn_Cyrl_MN"/> +</Locale> diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index 6eec14dd8df5..9c3352e6dc0d 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -258,6 +258,7 @@ constexpr struct { { "en_MY", DataLocaleLibrary::OTHERS }, // needs to be in OTHERS instead of EN because currency inherited from ms_MY { "ia", DataLocaleLibrary::OTHERS }, { "mn_Cyrl_MN", DataLocaleLibrary::OTHERS }, + { "mn_Mong_MN", DataLocaleLibrary::OTHERS }, { "az_AZ", DataLocaleLibrary::OTHERS }, { "sw_TZ", DataLocaleLibrary::OTHERS }, { "km_KH", DataLocaleLibrary::OTHERS }, diff --git a/icon-themes/colibre/res/queryinsmode.png b/icon-themes/colibre/res/query.png Binary files differindex 029c7570a7bf..029c7570a7bf 100644 --- a/icon-themes/colibre/res/queryinsmode.png +++ b/icon-themes/colibre/res/query.png diff --git a/include/basegfx/tuple/Tuple2D.hxx b/include/basegfx/tuple/Tuple2D.hxx index 7494b4d1b13a..09acb035620c 100644 --- a/include/basegfx/tuple/Tuple2D.hxx +++ b/include/basegfx/tuple/Tuple2D.hxx @@ -10,6 +10,7 @@ #pragma once +#include <o3tl/concepts.hxx> #include <basegfx/utils/common.hxx> #include <basegfx/numeric/ftools.hxx> @@ -68,26 +69,19 @@ public: // comparators with tolerance - template <typename T = TYPE, std::enable_if_t<std::is_integral_v<T>, int> = 0> - bool equal(const Tuple2D<TYPE>& rTup) const + template <o3tl::integral T = TYPE> bool equal(const Tuple2D<TYPE>& rTup) const { return mnX == rTup.mnX && mnY == rTup.mnY; } - template <typename T = TYPE, std::enable_if_t<std::is_floating_point_v<T>, int> = 0> - bool equal(const Tuple2D<TYPE>& rTup) const + template <o3tl::floating_point T = TYPE> bool equal(const Tuple2D<TYPE>& rTup) const { return this == &rTup || (fTools::equal(mnX, rTup.mnX) && fTools::equal(mnY, rTup.mnY)); } - template <typename T = TYPE, std::enable_if_t<std::is_integral_v<T>, int> = 0> - bool equalZero() const - { - return mnX == 0 && mnY == 0; - } + template <o3tl::integral T = TYPE> bool equalZero() const { return mnX == 0 && mnY == 0; } - template <typename T = TYPE, std::enable_if_t<std::is_floating_point_v<T>, int> = 0> - bool equalZero() const + template <o3tl::floating_point T = TYPE> bool equalZero() const { return fTools::equalZero(mnX) && fTools::equalZero(mnY); } diff --git a/include/comphelper/proparrhlp.hxx b/include/comphelper/proparrhlp.hxx index 77fa9e1b9714..9093ff579f0c 100644 --- a/include/comphelper/proparrhlp.hxx +++ b/include/comphelper/proparrhlp.hxx @@ -112,14 +112,11 @@ template <class TYPE> ::cppu::IPropertyArrayHelper* OPropertyArrayUsageHelper<TYPE>::getArrayHelper() { OSL_ENSURE(s_nRefCount, "OPropertyArrayUsageHelper::getArrayHelper : suspicious call : have a refcount of 0 !"); + std::unique_lock aGuard(theMutex()); if (!s_pProps) { - std::unique_lock aGuard(theMutex()); - if (!s_pProps) - { - s_pProps = createArrayHelper(); - OSL_ENSURE(s_pProps, "OPropertyArrayUsageHelper::getArrayHelper : createArrayHelper returned nonsense !"); - } + s_pProps = createArrayHelper(); + OSL_ENSURE(s_pProps, "OPropertyArrayUsageHelper::getArrayHelper : createArrayHelper returned nonsense !"); } return s_pProps; } diff --git a/include/drawinglayer/processor2d/cairopixelprocessor2d.hxx b/include/drawinglayer/processor2d/cairopixelprocessor2d.hxx index fc67ed78932b..1a211806713b 100644 --- a/include/drawinglayer/processor2d/cairopixelprocessor2d.hxx +++ b/include/drawinglayer/processor2d/cairopixelprocessor2d.hxx @@ -86,8 +86,11 @@ class UNLESS_MERGELIBS(DRAWINGLAYER_DLLPUBLIC) CairoPixelProcessor2D final : pub // see comment there sal_uInt16 mnClipRecursionCount; + // calculated result of if we are in outsideCairoCoordinateLimits mode + bool mbCairoCoordinateLimitWorkaroundActive; + // helpers for direct paints - void paintPolyPoylgonRGBA(const basegfx::B2DPolyPolygon& rPolyPolygon, + void paintPolyPolygonRGBA(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::BColor& rColor, double fTransparency = 0.0); void processPolygonHairlinePrimitive2D( const primitive2d::PolygonHairlinePrimitive2D& rPolygonHairlinePrimitive2D); @@ -179,6 +182,9 @@ class UNLESS_MERGELIBS(DRAWINGLAYER_DLLPUBLIC) CairoPixelProcessor2D final : pub void processFillGradientPrimitive2D_square_rect( const primitive2d::FillGradientPrimitive2D& rFillGradientPrimitive2D); + // check if CairoCoordinateLimitWorkaround is needed + void evaluateCairoCoordinateLimitWorkaround(); + protected: bool hasError() const { return cairo_status(mpRT) != CAIRO_STATUS_SUCCESS; } bool hasRenderTarget() const { return nullptr != mpRT; } @@ -186,6 +192,12 @@ protected: public: bool valid() const { return hasRenderTarget() && !hasError(); } + // read access to CairoCoordinateLimitWorkaround mechanism + bool isCairoCoordinateLimitWorkaroundActive() const + { + return mbCairoCoordinateLimitWorkaroundActive; + } + // constructor to create a CairoPixelProcessor2D which // allocates and owns a cairo surface of given size. You // should check the result using valid() diff --git a/include/editeng/editobj.hxx b/include/editeng/editobj.hxx index b78b1a918b27..840f2e291da7 100644 --- a/include/editeng/editobj.hxx +++ b/include/editeng/editobj.hxx @@ -24,6 +24,7 @@ #include <editeng/editengdllapi.h> #include <editeng/macros.hxx> #include <svl/languageoptions.hxx> +#include <tools/lineend.hxx> #include <com/sun/star/text/textfield/Type.hpp> @@ -87,6 +88,8 @@ public: virtual OUString GetText(sal_Int32 nPara) const = 0; + virtual OUString GetText(LineEnd eEnd = LINEEND_LF) const = 0; + virtual sal_Int32 GetTextLen(sal_Int32 nPara) const = 0; bool HasText(sal_Int32 nPara) const { return GetTextLen(nPara) > 0; } diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index d1d46dc67326..2948bf6bdfdd 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -317,6 +317,7 @@ public: or disables bullets/numbering for the selected paragraphs if the bullets/numbering of the first paragraph is on */ void ToggleBullets(); + bool IsBulletOrNumbering(bool& bBullets, bool& bNumbering); void ToggleBulletsNumbering( const bool bToggle, diff --git a/include/formula/compiler.hxx b/include/formula/compiler.hxx index 266d260622d3..a8962479a432 100644 --- a/include/formula/compiler.hxx +++ b/include/formula/compiler.hxx @@ -517,10 +517,15 @@ #define SC_OPCODE_SORTBY 502 #define SC_OPCODE_MAT_SEQUENCE 503 #define SC_OPCODE_RANDARRAY 504 -#define SC_OPCODE_TOCOL 505 -#define SC_OPCODE_TOROW 506 -#define SC_OPCODE_UNIQUE 507 -#define SC_OPCODE_STOP_2_PAR 508 /* last function with two or more parameters' OpCode + 1 */ +#define SC_OPCODE_DROP 505 +#define SC_OPCODE_EXPAND 506 +#define SC_OPCODE_TAKE 507 +#define SC_OPCODE_TOCOL 508 +#define SC_OPCODE_TOROW 509 +#define SC_OPCODE_UNIQUE 510 +#define SC_OPCODE_WRAPCOLS 511 +#define SC_OPCODE_WRAPROWS 512 +#define SC_OPCODE_STOP_2_PAR 513 /* last function with two or more parameters' OpCode + 1 */ #define SC_OPCODE_STOP_FUNCTION SC_OPCODE_STOP_2_PAR /* last function's OpCode + 1 */ #define SC_OPCODE_LAST_OPCODE_ID (SC_OPCODE_STOP_FUNCTION - 1) /* last OpCode */ diff --git a/include/formula/opcode.hxx b/include/formula/opcode.hxx index e71b3ff05549..81774d97e255 100644 --- a/include/formula/opcode.hxx +++ b/include/formula/opcode.hxx @@ -513,9 +513,14 @@ enum OpCode : sal_uInt16 ocSortBy = SC_OPCODE_SORTBY, ocMatSequence = SC_OPCODE_MAT_SEQUENCE, ocRandArray = SC_OPCODE_RANDARRAY, + ocDrop = SC_OPCODE_DROP, + ocExpand = SC_OPCODE_EXPAND, + ocTake = SC_OPCODE_TAKE, ocToCol = SC_OPCODE_TOCOL, ocToRow = SC_OPCODE_TOROW, ocUnique = SC_OPCODE_UNIQUE, + ocWrapCols = SC_OPCODE_WRAPCOLS, + ocWrapRows = SC_OPCODE_WRAPROWS, // internal stuff ocInternalBegin = SC_OPCODE_INTERNAL_BEGIN, ocTTT = SC_OPCODE_TTT, @@ -1000,10 +1005,15 @@ inline std::string OpCodeEnumToString(OpCode eCode) case ocFilter: return "Filter"; case ocSort: return "Sort"; case ocSortBy: return "SortBy"; + case ocDrop: return "Drop"; + case ocExpand: return "Expand"; + case ocTake: return "Take"; case ocToCol: return "ToCol"; case ocToRow: return "ToRow"; case ocUnique: return "Unique"; case ocLet: return "Let"; + case ocWrapCols: return "WrapCols"; + case ocWrapRows: return "WrapRows"; case ocTTT: return "TTT"; case ocDebugVar: return "DebugVar"; case ocDataToken1: return "DataToken1"; diff --git a/include/o3tl/concepts.hxx b/include/o3tl/concepts.hxx index 261d063ebca2..f47aef5f256d 100644 --- a/include/o3tl/concepts.hxx +++ b/include/o3tl/concepts.hxx @@ -23,6 +23,7 @@ namespace o3tl using std::integral; using std::signed_integral; using std::unsigned_integral; +using std::floating_point; } #else @@ -38,6 +39,8 @@ template <typename T> concept integral = std::is_integral_v<T>; template <typename T> concept signed_integral = integral<T>&& std::is_signed_v<T>; template <typename T> concept unsigned_integral = integral<T> && !signed_integral<T>; + +template <typename T> concept floating_point = std::is_floating_point_v<T>; } #endif diff --git a/include/o3tl/numeric.hxx b/include/o3tl/numeric.hxx index 9980319a648b..5a6b4b17858b 100644 --- a/include/o3tl/numeric.hxx +++ b/include/o3tl/numeric.hxx @@ -7,22 +7,39 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef INCLUDED_O3TL_NUMERIC_HXX -#define INCLUDED_O3TL_NUMERIC_HXX - +#pragma once #include <stdexcept> +#include <o3tl/concepts.hxx> namespace o3tl { - struct divide_by_zero final : public std::runtime_error + +struct divide_by_zero final : public std::runtime_error +{ + explicit divide_by_zero() + : std::runtime_error("divide by zero") { - explicit divide_by_zero() - : std::runtime_error("divide by zero") - { - } - }; + } +}; + +template <o3tl::integral T, o3tl::integral U> +constexpr T convertToHex(U aChar) +{ + if (aChar >= '0' && aChar <= '9') + return T(aChar - '0'); + else if (aChar >= 'a' && aChar <= 'f') + return T(aChar - 'a' + 10); + else if (aChar >= 'A' && aChar <= 'F') + return T(aChar - 'A' + 10); + return T(-1); } -#endif +template <o3tl::integral T, o3tl::integral U> +constexpr T convertToHex(U cHigh, U cLow) +{ + return (o3tl::convertToHex<T>(cHigh) << 4) | o3tl::convertToHex<T>(cLow); +} + +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/StylePreviewRenderer.hxx b/include/sfx2/StylePreviewRenderer.hxx index 1692182bd113..33ed26c793e7 100644 --- a/include/sfx2/StylePreviewRenderer.hxx +++ b/include/sfx2/StylePreviewRenderer.hxx @@ -52,6 +52,8 @@ public: } // end namespace sfx2 +SFX2_DLLPUBLIC Color ColorHash(std::u16string_view rString); + #endif // INCLUDED_SVX_STYLEPREVIEWRENDERER_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx index 88a766a9a3cc..39c4e588c8fa 100644 --- a/include/sfx2/objsh.hxx +++ b/include/sfx2/objsh.hxx @@ -812,11 +812,6 @@ public: /// Is this read-only object shell opened via .uno:SignPDF? bool IsSignPDF() const; - /// Gets the certificate that is already picked by the user but not yet used for signing. - svl::crypto::CertificateOrName GetSignPDFCertificate() const; - - void ResetSignPDFCertificate(); - /// Gets grab-bagged password info to unprotect change tracking with verification css::uno::Sequence< css::beans::PropertyValue > GetDocumentProtectionFromGrabBag() const; diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index 082890c6b200..3680a515e8cc 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -495,6 +495,12 @@ public: int getA11yCaretPosition() const; void SetSigningCertificate(const svl::crypto::CertificateOrName& rCertificateOrName); svl::crypto::CertificateOrName GetSigningCertificate() const; + + // These are used for visual signing: SetSignPDFCertificate() is called when the signature + // line is inserted, and GetSignPDFCertificate() is used by the signing code to get the already + // selected certificate. + void SetSignPDFCertificate(const svl::crypto::CertificateOrName& rCertificateOrName); + svl::crypto::CertificateOrName GetSignPDFCertificate() const; }; #endif // INCLUDED_SFX2_VIEWSH_HXX diff --git a/include/svl/cryptosign.hxx b/include/svl/cryptosign.hxx index 0e02a2173860..503463686cf1 100644 --- a/include/svl/cryptosign.hxx +++ b/include/svl/cryptosign.hxx @@ -129,7 +129,7 @@ public: OUString m_aName; /// Returns if a certificate or a name is set. - bool Is(); + bool Is() const; }; } diff --git a/include/svl/ctloptions.hxx b/include/svl/ctloptions.hxx index fe3432658929..06ada1b14854 100644 --- a/include/svl/ctloptions.hxx +++ b/include/svl/ctloptions.hxx @@ -41,6 +41,9 @@ public: void SetCTLFontEnabled( bool _bEnabled ); static bool IsCTLFontEnabled(); + void SetCTLVerticalText(bool bVertical); + static bool IsCTLVerticalText(); + void SetCTLSequenceChecking( bool _bEnabled ); static bool IsCTLSequenceChecking(); @@ -75,7 +78,8 @@ public: E_CTLCURSORMOVEMENT, E_CTLTEXTNUMERALS, E_CTLSEQUENCECHECKINGRESTRICTED, - E_CTLSEQUENCECHECKINGTYPEANDREPLACE + E_CTLSEQUENCECHECKINGTYPEANDREPLACE, + E_CTLVERTICALTEXT }; bool IsReadOnly(EOption eOption) const; }; diff --git a/include/svl/hint.hxx b/include/svl/hint.hxx index 53875a19dfa5..ee919d32c442 100644 --- a/include/svl/hint.hxx +++ b/include/svl/hint.hxx @@ -234,6 +234,7 @@ enum class SfxHintId { SwFormatChange, SwAttrSetChange, SwObjectDying, + SwUpdateAttr, ThisIsAnSdrHint, ThisIsAnSfxEventHint diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx index 979a4ceccc8d..6d0105707077 100644 --- a/include/svl/poolitem.hxx +++ b/include/svl/poolitem.hxx @@ -496,7 +496,6 @@ enum class SfxItemType : sal_uInt16 SwTOXMarkType, SwTransparencyGrfType, SwUINumRuleItemType, - SwUpdateAttrType, SwWrtShellItemType, XColorItemType, XFillAttrSetItemType, diff --git a/include/svl/style.hxx b/include/svl/style.hxx index 1a1d589fd684..0073d5b93ee9 100644 --- a/include/svl/style.hxx +++ b/include/svl/style.hxx @@ -172,6 +172,9 @@ public: virtual sal_uInt32 GetHelpId( OUString& rFile ); virtual void SetHelpId( const OUString& r, sal_uInt32 nId ); + // Spotlight Id, @return -1 for style not in use + virtual sal_Int32 GetSpotlightId(); + virtual SfxItemSet& GetItemSet(); /// Due to writer's usual lack of sanity this is a separate function for /// preview only; it shall not create the style in case it does not exist. diff --git a/include/svtools/ehdl.hxx b/include/svtools/ehdl.hxx index 1e70ee1ca55e..a8e7481e8c92 100644 --- a/include/svtools/ehdl.hxx +++ b/include/svtools/ehdl.hxx @@ -29,21 +29,21 @@ SVT_DLLPUBLIC extern const ErrMsgCode RID_ERRCTX[]; namespace weld { class Window; } -class SVT_DLLPUBLIC SfxErrorContext final : private ErrorContext +class SVT_DLLPUBLIC SfxErrorContext : private ErrorContext { public: SfxErrorContext( sal_uInt16 nCtxIdP, weld::Window *pWin=nullptr, - const ErrMsgCode* pIds = nullptr, const std::locale& rResLocaleP = SvtResLocale()); + const ErrMsgCode* pIds = nullptr); SfxErrorContext( sal_uInt16 nCtxIdP, OUString aArg1, weld::Window *pWin=nullptr, - const ErrMsgCode* pIds = nullptr, const std::locale& rResLocaleP = SvtResLocale()); + const ErrMsgCode* pIds = nullptr); bool GetString(const ErrCodeMsg& nErrId, OUString &rStr) override; - +private: + virtual OUString Translate(TranslateId aId) const; private: sal_uInt16 nCtxId; const ErrMsgCode* pIds; - std::locale aResLocale; OUString aArg1; }; diff --git a/include/svx/ColorSets.hxx b/include/svx/ColorSets.hxx index 6d7ba41398b4..6bf29c4ea196 100644 --- a/include/svx/ColorSets.hxx +++ b/include/svx/ColorSets.hxx @@ -5,11 +5,9 @@ * 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/. - * */ -#ifndef INCLUDED_SVX_COLORSETS_HXX -#define INCLUDED_SVX_COLORSETS_HXX +#pragma once #include <svx/svxdllapi.h> #include <docmodel/theme/ColorSet.hxx> @@ -21,6 +19,8 @@ class SVXCORE_DLLPUBLIC ColorSets { private: std::vector<model::ColorSet> maColorSets; + OUString maUserFolder; + ColorSets(); void init(); public: @@ -39,11 +39,11 @@ public: model::ColorSet const* getColorSet(std::u16string_view rName) const; - void insert(model::ColorSet const& rColorSet, IdenticalNameAction eAction = IdenticalNameAction::Overwrite); + void insert(model::ColorSet const& rColorSet, IdenticalNameAction eAction); + void writeToUserFolder(model::ColorSet const& rNewColorSet); + }; } // end of namespace svx -#endif // INCLUDED_SVX_COLORSETS_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svx/clipfmtitem.hxx b/include/svx/clipfmtitem.hxx index 2ad29035302f..a02091e5263a 100644 --- a/include/svx/clipfmtitem.hxx +++ b/include/svx/clipfmtitem.hxx @@ -54,7 +54,7 @@ public: OUString const& GetClipbrdFormatName(sal_uInt16 nPos) const; private: - std::unique_ptr<SvxClipboardFormatItem_Impl> pImpl; + std::unique_ptr<SvxClipboardFormatItem_Impl> m_pImpl; }; #endif diff --git a/include/svx/ehdl.hxx b/include/svx/ehdl.hxx new file mode 100644 index 000000000000..553f8420396f --- /dev/null +++ b/include/svx/ehdl.hxx @@ -0,0 +1,24 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +#pragma once + +#include <svx/svxdllapi.h> +#include <svtools/ehdl.hxx> + +class SVX_DLLPUBLIC SvxErrorContext : public SfxErrorContext +{ +public: + SvxErrorContext(sal_uInt16 nCtxIdP, OUString aArg1, weld::Window* pWin); + +private: + virtual OUString Translate(TranslateId aId) const; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/include/svx/signaturelinehelper.hxx b/include/svx/signaturelinehelper.hxx index 6f17f3726dd2..e17d4ce148e6 100644 --- a/include/svx/signaturelinehelper.hxx +++ b/include/svx/signaturelinehelper.hxx @@ -61,7 +61,7 @@ SVX_DLLPUBLIC css::uno::Reference<css::graphic::XGraphic> importSVG(std::u16stri /** * Sets xCertificate as the signing certificate of the selected shape on pView. */ -SVX_DLLPUBLIC void setShapeCertificate(const SdrView* pView, +SVX_DLLPUBLIC void setShapeCertificate(SfxViewShell* pViewShell, const svl::crypto::CertificateOrName& rCertificateOrName); } diff --git a/include/svx/svdovirt.hxx b/include/svx/svdovirt.hxx index 2b47f25cbc57..01bfe1925f85 100644 --- a/include/svx/svdovirt.hxx +++ b/include/svx/svdovirt.hxx @@ -40,7 +40,7 @@ protected: virtual std::unique_ptr<sdr::contact::ViewContact> CreateObjectSpecificViewContact() override; rtl::Reference<SdrObject> mxRefObj; // Referenced drawing object - tools::Rectangle aSnapRect; + tools::Rectangle maSnapRect; protected: virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) override; diff --git a/include/tools/Guid.hxx b/include/tools/Guid.hxx index 3922a3da9ff2..1f7cc374a387 100644 --- a/include/tools/Guid.hxx +++ b/include/tools/Guid.hxx @@ -16,6 +16,7 @@ #include <algorithm> #include <stdio.h> #include <cctype> +#include <o3tl/numeric.hxx> namespace tools { @@ -26,23 +27,6 @@ private: GuidArrayType maGuidArray; - static sal_uInt8 gethex(char nChar) - { - if (nChar >= '0' && nChar <= '9') - return nChar - '0'; - else if (nChar >= 'a' && nChar <= 'f') - return nChar - 'a' + 10; - else if (nChar >= 'A' && nChar <= 'F') - return nChar - 'A' + 10; - else - return 0; - } - - static sal_uInt8 covertHexChar(char high, char low) - { - return (gethex(high) << 4) + gethex(low); - } - void parse(std::string_view rString) { if (rString.size() != 38) @@ -68,26 +52,26 @@ private: if (!std::isxdigit(rString[x])) return; - maGuidArray[0] = covertHexChar(rString[1], rString[2]); - maGuidArray[1] = covertHexChar(rString[3], rString[4]); - maGuidArray[2] = covertHexChar(rString[5], rString[6]); - maGuidArray[3] = covertHexChar(rString[7], rString[8]); + maGuidArray[0] = o3tl::convertToHex<sal_uInt8>(rString[1], rString[2]); + maGuidArray[1] = o3tl::convertToHex<sal_uInt8>(rString[3], rString[4]); + maGuidArray[2] = o3tl::convertToHex<sal_uInt8>(rString[5], rString[6]); + maGuidArray[3] = o3tl::convertToHex<sal_uInt8>(rString[7], rString[8]); - maGuidArray[4] = covertHexChar(rString[10], rString[11]); - maGuidArray[5] = covertHexChar(rString[12], rString[13]); + maGuidArray[4] = o3tl::convertToHex<sal_uInt8>(rString[10], rString[11]); + maGuidArray[5] = o3tl::convertToHex<sal_uInt8>(rString[12], rString[13]); - maGuidArray[6] = covertHexChar(rString[15], rString[16]); - maGuidArray[7] = covertHexChar(rString[17], rString[18]); + maGuidArray[6] = o3tl::convertToHex<sal_uInt8>(rString[15], rString[16]); + maGuidArray[7] = o3tl::convertToHex<sal_uInt8>(rString[17], rString[18]); - maGuidArray[8] = covertHexChar(rString[20], rString[21]); - maGuidArray[9] = covertHexChar(rString[22], rString[23]); + maGuidArray[8] = o3tl::convertToHex<sal_uInt8>(rString[20], rString[21]); + maGuidArray[9] = o3tl::convertToHex<sal_uInt8>(rString[22], rString[23]); - maGuidArray[10] = covertHexChar(rString[25], rString[26]); - maGuidArray[11] = covertHexChar(rString[27], rString[28]); - maGuidArray[12] = covertHexChar(rString[29], rString[30]); - maGuidArray[13] = covertHexChar(rString[31], rString[32]); - maGuidArray[14] = covertHexChar(rString[33], rString[34]); - maGuidArray[15] = covertHexChar(rString[35], rString[36]); + maGuidArray[10] = o3tl::convertToHex<sal_uInt8>(rString[25], rString[26]); + maGuidArray[11] = o3tl::convertToHex<sal_uInt8>(rString[27], rString[28]); + maGuidArray[12] = o3tl::convertToHex<sal_uInt8>(rString[29], rString[30]); + maGuidArray[13] = o3tl::convertToHex<sal_uInt8>(rString[31], rString[32]); + maGuidArray[14] = o3tl::convertToHex<sal_uInt8>(rString[33], rString[34]); + maGuidArray[15] = o3tl::convertToHex<sal_uInt8>(rString[35], rString[36]); } public: diff --git a/include/tools/color.hxx b/include/tools/color.hxx index 5d2052e297a4..16c1a6259f8e 100644 --- a/include/tools/color.hxx +++ b/include/tools/color.hxx @@ -480,6 +480,11 @@ inline std::basic_ostream<charT, traits>& operator <<(std::basic_ostream<charT, return rStream; } +namespace color +{ +TOOLS_DLLPUBLIC bool createFromString(OString const& rString, Color& rColor); +} + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/tools/inetmime.hxx b/include/tools/inetmime.hxx index bd0ba36bb1b9..3c8dd90c06b5 100644 --- a/include/tools/inetmime.hxx +++ b/include/tools/inetmime.hxx @@ -23,6 +23,7 @@ #include <rtl/character.hxx> #include <rtl/string.hxx> #include <rtl/ustring.hxx> +#include <o3tl/numeric.hxx> #include <unordered_map> @@ -217,9 +218,7 @@ inline int INetMIME::getWeight(sal_uInt32 nChar) // static inline int INetMIME::getHexWeight(sal_uInt32 nChar) { - return rtl::isAsciiDigit(nChar) ? int(nChar - '0') : - nChar >= 'A' && nChar <= 'F' ? int(nChar - 'A' + 10) : - nChar >= 'a' && nChar <= 'f' ? int(nChar - 'a' + 10) : -1; + return o3tl::convertToHex<int>(nChar); } // static diff --git a/include/tools/link.hxx b/include/tools/link.hxx index 62f8d4910860..226c0aefec09 100644 --- a/include/tools/link.hxx +++ b/include/tools/link.hxx @@ -71,11 +71,29 @@ #ifdef DBG_UTIL #define LINK(Instance, Class, Member) ::tools::detail::makeLink( \ ::tools::detail::castTo<Class *>(Instance), &Class::LinkStub##Member, __FILE__ ":" SAL_STRINGIFY(__LINE__), SAL_STRINGIFY(Class::LinkStub##Member)) +#define LINK_NONMEMBER(Instance, Function) ::tools::detail::makeLink( \ + Instance, &Function, __FILE__ ":" SAL_STRINGIFY(__LINE__), SAL_STRINGIFY(Function)) #else #define LINK(Instance, Class, Member) ::tools::detail::makeLink( \ ::tools::detail::castTo<Class *>(Instance), &Class::LinkStub##Member) +#define LINK_NONMEMBER(Instance, Function) ::tools::detail::makeLink(Instance, &Function) #endif +template<typename Arg, typename Ret> class SAL_WARN_UNUSED Link; + +namespace tools::detail { + +#ifdef DBG_UTIL +template<typename Arg, typename Ret> +Link<Arg, Ret> makeLink( + void * instance, Ret (* function)(void *, Arg), const char* source, const char* target); +#else +template<typename Arg, typename Ret> +Link<Arg, Ret> makeLink(void * instance, Ret (* function)(void *, Arg)); +#endif + +} + template<typename Arg, typename Ret> class SAL_WARN_UNUSED Link { public: @@ -83,20 +101,6 @@ public: Link() = default; -#ifdef DBG_UTIL - Link(void* instance, Stub* function, const char* const source = "unknown", - const char* const target = "unknown") - : function_(function) - , instance_(instance) - , source_(source) - , target_(target) - { - } -#else - Link(void * instance, Stub * function): - function_(function), instance_(instance) {} -#endif - Ret Call(Arg data) const { return function_ == nullptr ? Ret() : (*function_)(instance_, data); } @@ -126,6 +130,28 @@ public: #endif private: +#ifdef DBG_UTIL + template<typename Arg2, typename Ret2> friend Link<Arg2, Ret2> tools::detail::makeLink( + void * instance, Ret2 (* function)(void *, Arg2), const char* source, const char* target); +#else + template<typename Arg2, typename Ret2> friend Link<Arg2, Ret2> tools::detail::makeLink( + void * instance, Ret2 (* function)(void *, Arg2)); +#endif + +#ifdef DBG_UTIL + Link(void* instance, Stub* function, const char* const source, + const char* const target) + : function_(function) + , instance_(instance) + , source_(source) + , target_(target) + { + } +#else + Link(void * instance, Stub * function): + function_(function), instance_(instance) {} +#endif + Stub* function_ = nullptr; void* instance_ = nullptr; @@ -134,8 +160,8 @@ private: /// When debugging async events, it's often critical /// to find out not only where a link leads (i.e. the target /// function), but also where it was created (file:line). - const char* source_ = "unknown"; - const char* target_ = "unknown"; + const char* source_ = "empty"; + const char* target_ = "empty"; #endif }; diff --git a/include/unotools/pathoptions.hxx b/include/unotools/pathoptions.hxx index 6c1f63713143..1bbb84502587 100644 --- a/include/unotools/pathoptions.hxx +++ b/include/unotools/pathoptions.hxx @@ -61,6 +61,7 @@ public: Storage, Temp, Template, + DocumentTheme, UserConfig, Work, Classification, @@ -101,6 +102,7 @@ public: const OUString& GetFingerprintPath() const; const OUString& GetNumbertextPath() const; const OUString& GetClassificationPath() const; + const OUString& GetDocumentThemePath() const; // set the paths void SetAutoTextPath( const OUString& rPath ); diff --git a/include/vcl/BitmapBuffer.hxx b/include/vcl/BitmapBuffer.hxx index 120c3140909c..b5444afc877b 100644 --- a/include/vcl/BitmapBuffer.hxx +++ b/include/vcl/BitmapBuffer.hxx @@ -26,7 +26,6 @@ #include <vcl/dllapi.h> #include <vcl/BitmapPalette.hxx> -#include <vcl/ColorMask.hxx> #include <vcl/Scanline.hxx> #include <tools/long.hxx> @@ -40,13 +39,13 @@ struct VCL_DLLPUBLIC BitmapBuffer BitmapPalette maPalette; sal_uInt8* mpBits; ScanlineFormat meFormat = ScanlineFormat::NONE; - ColorMask maColorMask; + ScanlineDirection meDirection = ScanlineDirection::BottomUp; sal_uInt16 mnBitCount; }; VCL_DLLPUBLIC std::optional<BitmapBuffer> StretchAndConvert( const BitmapBuffer& rSrcBuffer, const SalTwoRect& rTwoRect, - ScanlineFormat nDstBitmapFormat, std::optional<BitmapPalette> pDstPal = std::nullopt, const ColorMask* pDstMask = nullptr ); + ScanlineFormat nDstBitmapFormat, std::optional<BitmapPalette> pDstPal = std::nullopt ); #endif // INCLUDED_VCL_BITMAPBUFFER_HXX diff --git a/include/vcl/BitmapInfoAccess.hxx b/include/vcl/BitmapInfoAccess.hxx index 1896dc9bfc44..e01c2aba7a8f 100644 --- a/include/vcl/BitmapInfoAccess.hxx +++ b/include/vcl/BitmapInfoAccess.hxx @@ -27,9 +27,8 @@ bool Bitmap32IsPreMultipled(); -typedef BitmapColor (*FncGetPixel)(ConstScanline pScanline, tools::Long nX, const ColorMask& rMask); -typedef void (*FncSetPixel)(Scanline pScanline, tools::Long nX, const BitmapColor& rBitmapColor, - const ColorMask& rMask); +typedef BitmapColor (*FncGetPixel)(ConstScanline pScanline, tools::Long nX); +typedef void (*FncSetPixel)(Scanline pScanline, tools::Long nX, const BitmapColor& rBitmapColor); class VCL_DLLPUBLIC BitmapInfoAccess { @@ -48,6 +47,15 @@ public: tools::Long Height() const { return mpBuffer ? mpBuffer->mnHeight : 0L; } + bool IsTopDown() const + { + assert(mpBuffer && "Access is not valid!"); + + return mpBuffer && mpBuffer->meDirection == ScanlineDirection::TopDown; + } + + bool IsBottomUp() const { return !IsTopDown(); } + ScanlineFormat GetScanlineFormat() const { assert(mpBuffer && "Access is not valid!"); @@ -124,15 +132,6 @@ public: /// of the required color. Returns SAL_MAX_UINT16 if nothing found. sal_uInt16 GetMatchingPaletteIndex(const BitmapColor& rBitmapColor) const; - const ColorMask& GetColorMask() const - { - const BitmapBuffer* pBuffer = mpBuffer; - - assert(pBuffer && "Access is not valid!"); - - return pBuffer->maColorMask; - } - private: BitmapInfoAccess(const BitmapInfoAccess&) = delete; BitmapInfoAccess& operator=(const BitmapInfoAccess&) = delete; @@ -140,7 +139,6 @@ private: protected: Bitmap maBitmap; BitmapBuffer* mpBuffer; - ColorMask maColorMask; BitmapAccessMode mnAccessMode; }; diff --git a/include/vcl/BitmapReadAccess.hxx b/include/vcl/BitmapReadAccess.hxx index b3895afa5c2e..3d6a47b33535 100644 --- a/include/vcl/BitmapReadAccess.hxx +++ b/include/vcl/BitmapReadAccess.hxx @@ -49,14 +49,18 @@ public: assert(mpBuffer && "Access is not valid!"); assert(nY < mpBuffer->mnHeight && "y-coordinate out of range!"); - return mpBuffer->mpBits + (nY * mpBuffer->mnScanlineSize); + if (mpBuffer->meDirection == ScanlineDirection::TopDown) + { + return mpBuffer->mpBits + (nY * mpBuffer->mnScanlineSize); + } + return mpBuffer->mpBits + ((mpBuffer->mnHeight - 1 - nY) * mpBuffer->mnScanlineSize); } BitmapColor GetPixelFromData(const sal_uInt8* pData, tools::Long nX) const { assert(pData && "Access is not valid!"); - return mFncGetPixel(pData, nX, maColorMask); + return mFncGetPixel(pData, nX); } sal_uInt8 GetIndexFromData(const sal_uInt8* pData, tools::Long nX) const @@ -68,7 +72,7 @@ public: { assert(pData && "Access is not valid!"); - mFncSetPixel(pData, nX, rBitmapColor, maColorMask); + mFncSetPixel(pData, nX, rBitmapColor); } BitmapColor GetPixel(tools::Long nY, tools::Long nX) const @@ -127,59 +131,43 @@ protected: public: BitmapBuffer* ImplGetBitmapBuffer() const { return mpBuffer; } - static BitmapColor GetPixelForN1BitMsbPal(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN8BitPal(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN24BitTcBgr(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN24BitTcRgb(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcAbgr(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcXbgr(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcArgb(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcXrgb(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcBgra(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcBgrx(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcRgba(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcRgbx(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); - static BitmapColor GetPixelForN32BitTcMask(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask); + static BitmapColor GetPixelForN1BitMsbPal(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN8BitPal(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN24BitTcBgr(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN24BitTcRgb(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcAbgr(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcXbgr(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcArgb(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcXrgb(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcBgra(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcBgrx(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcRgba(ConstScanline pScanline, tools::Long nX); + static BitmapColor GetPixelForN32BitTcRgbx(ConstScanline pScanline, tools::Long nX); static void SetPixelForN1BitMsbPal(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN8BitPal(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN24BitTcBgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN24BitTcRgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcAbgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcXbgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcArgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcXrgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcBgra(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcBgrx(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcRgba(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static void SetPixelForN32BitTcRgbx(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); - static void SetPixelForN32BitTcMask(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask& rMask); + const BitmapColor& rBitmapColor); static FncGetPixel GetPixelFunction(ScanlineFormat nFormat); static FncSetPixel SetPixelFunction(ScanlineFormat nFormat); diff --git a/include/vcl/BitmapWriteAccess.hxx b/include/vcl/BitmapWriteAccess.hxx index 631b097438bf..97611b30d96f 100644 --- a/include/vcl/BitmapWriteAccess.hxx +++ b/include/vcl/BitmapWriteAccess.hxx @@ -54,7 +54,7 @@ public: assert(nX < mpBuffer->mnWidth && "x-coordinate out of range!"); assert(nY < mpBuffer->mnHeight && "y-coordinate out of range!"); - mFncSetPixel(GetScanline(nY), nX, rBitmapColor, maColorMask); + mFncSetPixel(GetScanline(nY), nX, rBitmapColor); } void SetPixelIndex(tools::Long nY, tools::Long nX, sal_uInt8 cIndex) diff --git a/include/vcl/Scanline.hxx b/include/vcl/Scanline.hxx index b754e581d0c5..7432b48354f9 100644 --- a/include/vcl/Scanline.hxx +++ b/include/vcl/Scanline.hxx @@ -43,8 +43,13 @@ enum class ScanlineFormat : sal_uInt8 N32BitTcBgra, // premultiplied N32BitTcBgrx, // ignore alpha channel N32BitTcRgba, // premultiplied - N32BitTcRgbx, // ignore alpha channel - N32BitTcMask, + N32BitTcRgbx // ignore alpha channel +}; + +enum class ScanlineDirection : sal_uInt8 +{ + BottomUp, + TopDown }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/UserResourceScanner.hxx b/include/vcl/UserResourceScanner.hxx new file mode 100644 index 000000000000..2b2d4da0e7c5 --- /dev/null +++ b/include/vcl/UserResourceScanner.hxx @@ -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/. + */ + +#pragma once + +#include <vcl/dllapi.h> +#include <rtl/ustring.hxx> +#include <memory> +#include <vector> +#include <deque> +#include <osl/file.hxx> + +namespace vcl +{ +namespace file +{ +VCL_DLLPUBLIC bool readFileStatus(osl::FileStatus& rStatus, const OUString& rFile); +VCL_DLLPUBLIC void splitPathString(std::u16string_view aPathString, std::deque<OUString>& rPaths); +} + +class VCL_DLLPUBLIC UserResourceScanner +{ +protected: + /** Scans the provided directory for the resource. + * + * The returned strings will contain the URLs to the resources. + */ + std::vector<OUString> readFilesFromPath(const OUString& dir); + + /** Return true if the filename is a valid resource */ + virtual bool isValidResource(const OUString& rFilename) = 0; + + /** Adds the provided resource by path. */ + virtual bool addResource(const OUString& /*path*/) = 0; + +public: + UserResourceScanner(); + virtual ~UserResourceScanner() {} + + /** Provide a semicolon-separated list of paths to search for resource. + * + * There are several cases when scan will fail: + * - The directory does not exist + * - There are no files which have a valid resource + */ + + void addPaths(std::u16string_view paths); +}; + +} // end namespace vcl + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx index 1a6a83fc77ef..659babc6aab6 100644 --- a/include/vcl/abstdlg.hxx +++ b/include/vcl/abstdlg.hxx @@ -157,6 +157,14 @@ protected: virtual ~AbstractDiagramDialog() override = default; }; +class VCL_DLLPUBLIC AbstractQueryDialog : public VclAbstractDialog +{ +protected: + virtual ~AbstractQueryDialog() override = default; +public: + virtual bool ShowAgain() const = 0; +}; + class VCL_DLLPUBLIC VclAbstractDialogFactory { public: @@ -200,6 +208,11 @@ public: weld::Window* pParent, SdrObjGroup& rDiagram) = 0; + virtual VclPtr<AbstractQueryDialog> CreateQueryDialog( + weld::Window* pParent, + const OUString& sTitle, const OUString& sText, const OUString& sQuestion, + bool bShowAgain) = 0; + #ifdef _WIN32 virtual VclPtr<VclAbstractDialog> CreateFileExtCheckDialog(weld::Window* _pParent, const OUString& sTitle, const OUString& sMsg) diff --git a/include/vcl/accessibility/AccessibleTextAttributeHelper.hxx b/include/vcl/accessibility/AccessibleTextAttributeHelper.hxx index c2bb476aebd6..584127ab5e7a 100644 --- a/include/vcl/accessibility/AccessibleTextAttributeHelper.hxx +++ b/include/vcl/accessibility/AccessibleTextAttributeHelper.hxx @@ -32,8 +32,8 @@ * but others should be reported as object attributes (e.g. text alignment is reported * via the "text-align" object attribute on the paragraph object). * - * https://wiki.linuxfoundation.org/accessibility/iaccessible2/textattributes - * https://wiki.linuxfoundation.org/accessibility/iaccessible2/objectattributes + * https://github.com/LinuxA11y/IAccessible2/blob/master/spec/textattributes.md + * https://github.com/LinuxA11y/IAccessible2/blob/master/spec/objectattributes.md * * This enum class is used to specify the type(s) of attributes of interest. */ diff --git a/include/vcl/accessibility/vclxaccessiblecomponent.hxx b/include/vcl/accessibility/vclxaccessiblecomponent.hxx index 1026da164bf7..fa52ac9650aa 100644 --- a/include/vcl/accessibility/vclxaccessiblecomponent.hxx +++ b/include/vcl/accessibility/vclxaccessiblecomponent.hxx @@ -79,7 +79,6 @@ public: sal_Int64 SAL_CALL getAccessibleChildCount( ) override; css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; sal_Int16 SAL_CALL getAccessibleRole( ) override; OUString SAL_CALL getAccessibleDescription( ) override; OUString SAL_CALL getAccessibleName( ) override; diff --git a/include/vcl/accessiblefactory.hxx b/include/vcl/accessiblefactory.hxx index e1897e9dc4a5..db3d35a06d8f 100644 --- a/include/vcl/accessiblefactory.hxx +++ b/include/vcl/accessiblefactory.hxx @@ -62,15 +62,6 @@ class SvTreeListBox; class TextEngine; class TextView; -namespace vcl -{ - namespace table - { - class IAccessibleTable; - class IAccessibleTableControl; - } -} - class VCL_DLLPUBLIC AccessibleFactory { public: @@ -103,18 +94,10 @@ public: static css::uno::Reference<css::accessibility::XAccessibleContext> createAccessibleContext(vcl::Window* pWindow); - static vcl::IAccessibleTabListBox* - createAccessibleTabListBox(const css::uno::Reference<css::accessibility::XAccessible>& rxParent, - SvHeaderTabListBox& rBox); - static rtl::Reference<vcl::IAccessibleBrowseBox> createAccessibleBrowseBox(const css::uno::Reference<css::accessibility::XAccessible>& _rxParent, vcl::IAccessibleTableProvider& _rBrowseBox); - static rtl::Reference<vcl::table::IAccessibleTableControl> createAccessibleTableControl( - const css::uno::Reference<css::accessibility::XAccessible>& _rxParent, - vcl::table::IAccessibleTable& _rTable); - static css::uno::Reference<css::accessibility::XAccessible> createAccessibleIconChoiceCtrl( SvtIconChoiceCtrl& _rIconCtrl, const css::uno::Reference<css::accessibility::XAccessible>& _xParent); diff --git a/include/vcl/accessibletable.hxx b/include/vcl/accessibletable.hxx deleted file mode 100644 index 66f5a1e5c050..000000000000 --- a/include/vcl/accessibletable.hxx +++ /dev/null @@ -1,165 +0,0 @@ -/* -*- 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 . - */ - -#ifndef INCLUDED_VCL_ACCESSIBLETABLE_HXX -#define INCLUDED_VCL_ACCESSIBLETABLE_HXX - -#include <tools/gen.hxx> -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/accessibility/XAccessible.hpp> -#include <cppuhelper/implbase.hxx> - -namespace vcl { class Window; } - -namespace vcl::table -{ - -typedef sal_Int32 RowPos; - -enum class AccessibleTableControlObjType -{ - GRIDCONTROL, /// The GridControl itself. - TABLE, /// The data table. - ROWHEADERBAR, /// The row header bar. - COLUMNHEADERBAR, /// The horizontal column header bar. - TABLECELL, /// A cell of the data table. - ROWHEADERCELL, /// A cell of the row header bar. - COLUMNHEADERCELL, /// A cell of the column header bar. -}; - - -/** This abstract class provides methods to implement an accessible table object. -*/ -class IAccessibleTable -{ -public: - /** @return The position of the current row. */ - virtual sal_Int32 GetCurrentRow() const = 0; - /** @return The position of the current column. */ - virtual sal_Int32 GetCurrentColumn() const = 0; - virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl( sal_Int32 _nIndex )= 0; - virtual OUString GetAccessibleObjectName(AccessibleTableControlObjType eObjType, sal_Int32 _nRow, sal_Int32 _nCol) const= 0; - virtual void GoToCell( sal_Int32 _nColumnPos, sal_Int32 _nRow )= 0; - virtual bool HasColHeader() = 0; - virtual bool HasRowHeader() = 0; - - /** return the description of the specified object. - @param eObjType - The type to ask for - @return - The description of the specified object. - */ - virtual OUString GetAccessibleObjectDescription(AccessibleTableControlObjType eObjType) const= 0; - - /** Fills the StateSet with all states (except DEFUNC and SHOWING, done by - the accessible object), depending on the specified object type. */ - virtual void FillAccessibleStateSet( sal_Int64& rStateSet, - AccessibleTableControlObjType eObjType ) const= 0; - - // Window - virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() const = 0; - virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window& rRelativeWindow) const = 0; - virtual void GrabFocus()= 0; - virtual css::uno::Reference< css::accessibility::XAccessible > GetAccessible()= 0; - virtual vcl::Window* GetAccessibleParentWindow() const= 0; - virtual vcl::Window* GetWindowInstance()= 0; - virtual sal_Int32 GetAccessibleControlCount() const = 0; - virtual bool ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint )= 0; - virtual sal_Int32 GetRowCount() const= 0; - virtual sal_Int32 GetColumnCount() const= 0; - virtual bool ConvertPointToCellAddress( sal_Int32& _rnRow, sal_Int32& _rnColPos, const Point& _rPoint )= 0; - virtual tools::Rectangle calcHeaderRect( bool _bIsColumnBar ) = 0; - virtual tools::Rectangle calcHeaderCellRect( bool _bColHeader, sal_Int32 _nPos ) = 0; - virtual tools::Rectangle calcTableRect() = 0; - virtual tools::Rectangle calcCellRect( sal_Int32 _nRowPos, sal_Int32 _nColPos ) = 0; - virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex)= 0; - virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,const Point& _rPoint)= 0; - virtual void FillAccessibleStateSetForCell( sal_Int64& _rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const= 0; - virtual OUString GetRowName(sal_Int32 _nIndex) const = 0; - virtual OUString GetColumnName( sal_Int32 _nIndex ) const = 0; - virtual OUString GetAccessibleCellText(sal_Int32 _nRowPos, sal_Int32 _nColPos) const = 0; - - virtual sal_Int32 GetSelectedRowCount() const = 0; - virtual sal_Int32 GetSelectedRowIndex( sal_Int32 const i_selectionIndex ) const = 0; - virtual bool IsRowSelected( sal_Int32 const i_rowIndex ) const = 0; - virtual void SelectRow( sal_Int32 const i_rowIndex, bool const i_select ) = 0; - virtual void SelectAllRows( bool const i_select ) = 0; - -protected: - ~IAccessibleTable() {} -}; - - -/** interface for an implementation of a table control's Accessible component -*/ -class IAccessibleTableControl : public ::cppu::WeakImplHelper< css::accessibility::XAccessible > -{ -public: - - /** disposes the accessible implementation, so that it becomes defunc - */ - virtual void DisposeAccessImpl() = 0; - - /** checks whether the accessible implementation, and its context, are still alive - @return <TRUE/>, if the object is not disposed or disposing. - */ - virtual bool isAlive() const = 0; - - /** commits the event at all listeners of the cell - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - virtual void commitCellEvent( - sal_Int16 nEventId, - const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue - ) = 0; - /** commits the event at all listeners of the table - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - virtual void commitTableEvent( - sal_Int16 nEventId, - const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue - ) = 0; - - ///** Commits an event to all listeners. */ - virtual void commitEvent( - sal_Int16 nEventId, - const css::uno::Any& rNewValue - ) = 0; - -protected: - ~IAccessibleTableControl() {} -}; - -} // namespace vcl::table - -#endif // INCLUDED_VCL_ACCESSIBLETABLE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/rendercontext/RasterOp.hxx b/include/vcl/rendercontext/RasterOp.hxx index 44b2a6c03a17..3bfa85fb6044 100644 --- a/include/vcl/rendercontext/RasterOp.hxx +++ b/include/vcl/rendercontext/RasterOp.hxx @@ -19,12 +19,13 @@ #pragma once +// Note that the values in this class must line up exactly with the values in css::awt::RasterOperation enum class RasterOp { OverPaint, Xor, - N0, - N1, + N0, // All bits which are affected by this operation are set to 0. + N1, // All bits which are affected by this operation are set to 1. Invert }; diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx index 4f335a0b02a1..82f2cc75866d 100644 --- a/include/vcl/settings.hxx +++ b/include/vcl/settings.hxx @@ -228,6 +228,9 @@ public: SAL_DLLPRIVATE void Set3DColors( const Color& rColor ); + void SetSystemColorsLoaded( bool bLoaded ); + bool GetSystemColorsLoaded() const; + void SetFaceColor( const Color& rColor ); const Color& GetFaceColor() const; @@ -252,7 +255,7 @@ public: const Color& GetDarkShadowColor() const; void SetDefaultButtonTextColor( const Color& rColor ); - SAL_DLLPRIVATE const Color& GetDefaultButtonTextColor() const; + const Color& GetDefaultButtonTextColor() const; void SetButtonTextColor( const Color& rColor ); const Color& GetButtonTextColor() const; @@ -384,7 +387,7 @@ public: const Color& GetMenuBarColor() const; void SetMenuBarRolloverColor( const Color& rColor ); - SAL_DLLPRIVATE const Color& GetMenuBarRolloverColor() const; + const Color& GetMenuBarRolloverColor() const; void SetMenuBorderColor( const Color& rColor ); const Color& GetMenuBorderColor() const; @@ -396,7 +399,7 @@ public: const Color& GetMenuBarTextColor() const; void SetMenuBarRolloverTextColor( const Color& rColor ); - SAL_DLLPRIVATE const Color& GetMenuBarRolloverTextColor() const; + const Color& GetMenuBarRolloverTextColor() const; void SetMenuBarHighlightTextColor( const Color& rColor ); const Color& GetMenuBarHighlightTextColor() const; diff --git a/include/vcl/themecolors.hxx b/include/vcl/themecolors.hxx index 3e23368bd351..80bc1308565d 100644 --- a/include/vcl/themecolors.hxx +++ b/include/vcl/themecolors.hxx @@ -18,6 +18,7 @@ enum class ThemeState { DISABLED = 0, ENABLED = 1, + RESET = 2, }; class VCL_DLLPUBLIC ThemeColors @@ -42,13 +43,13 @@ public: static bool IsThemeDisabled() { return GetThemeState() == ThemeState::DISABLED; }; static bool IsThemeEnabled() { return GetThemeState() == ThemeState::ENABLED; }; + static bool IsThemeReset() { return GetThemeState() == ThemeState::RESET; } + static void ResetTheme() { SetThemeState(ThemeState::RESET); } // !IsThemeCached means that the ThemeColors object doesn't have the colors from the registry yet. - static bool VclPluginCanUseThemeColors() - { - return IsThemeCached() - && !ThemeColors::IsAutomaticTheme(ThemeColors::GetThemeColors().GetThemeName()); - }; + // IsThemeReset means that the user pressed the Reset All button and the UI colors in the registry + // are not valid anymore => read from the system again + static bool VclPluginCanUseThemeColors() { return IsThemeCached() && !IsThemeReset(); }; void SetWindowColor(const Color& rColor) { m_aWindowColor = rColor; } void SetWindowTextColor(const Color& rColor) { m_aWindowTextColor = rColor; } diff --git a/include/vcl/toolkit/combobox.hxx b/include/vcl/toolkit/combobox.hxx index 9e676601f8a8..2448626cd597 100644 --- a/include/vcl/toolkit/combobox.hxx +++ b/include/vcl/toolkit/combobox.hxx @@ -28,7 +28,6 @@ #include <vcl/toolkit/edit.hxx> #define COMBOBOX_APPEND (SAL_MAX_INT32) -#define COMBOBOX_ENTRY_NOTFOUND (SAL_MAX_INT32) #define COMBOBOX_MAX_ENTRIES (SAL_MAX_INT32 - 1) class ImplBtn; diff --git a/include/vcl/toolkit/svtabbx.hxx b/include/vcl/toolkit/svtabbx.hxx index 94b0077f44fe..e97d28735c81 100644 --- a/include/vcl/toolkit/svtabbx.hxx +++ b/include/vcl/toolkit/svtabbx.hxx @@ -60,7 +60,7 @@ public: SvTabListBox( vcl::Window* pParent, WinBits ); virtual ~SvTabListBox() override; virtual void dispose() override; - void SetTabs(sal_uInt16 nTabs, tools::Long const pTabPositions[], MapUnit = MapUnit::MapAppFont); + void SetTabs(const std::vector<tools::Long>& rTabPositions, MapUnit = MapUnit::MapAppFont); using SvTreeListBox::GetTab; tools::Long GetLogicTab( sal_uInt16 nTab ); diff --git a/lingucomponent/source/hyphenator/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/hyphen/hyphenimp.cxx index 1e527c8e8ada..a00b4e5a3d2f 100644 --- a/lingucomponent/source/hyphenator/hyphen/hyphenimp.cxx +++ b/lingucomponent/source/hyphenator/hyphen/hyphenimp.cxx @@ -19,6 +19,7 @@ #include <com/sun/star/uno/Reference.h> +#include <comphelper/lok.hxx> #include <comphelper/sequence.hxx> #include <comphelper/processfactory.hxx> #include <cppuhelper/factory.hxx> @@ -150,6 +151,8 @@ void Hyphenator::ensureLocales() { for (const auto& rLocaleName : dict.aLocaleNames) { + if (!comphelper::LibreOfficeKit::isAllowlistedLanguage(rLocaleName)) + continue; aLocaleNamesSet.insert( rLocaleName ); } } diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx index e2acf1e9d0e6..72276c48caff 100644 --- a/linguistic/source/gciterator.cxx +++ b/linguistic/source/gciterator.cxx @@ -55,6 +55,7 @@ #include <comphelper/diagnose_ex.hxx> #include <map> +#include <algorithm> #include <linguistic/misc.hxx> @@ -120,17 +121,10 @@ const sal_Unicode aWhiteSpaces[] = const sal_Int32 PROOFINFO_GET_PROOFRESULT = 1; const sal_Int32 PROOFINFO_MARK_PARAGRAPH = 2; -const int nWhiteSpaces = SAL_N_ELEMENTS( aWhiteSpaces ); - static bool lcl_IsWhiteSpace( sal_Unicode cChar ) { - bool bFound = false; - for (int i = 0; i < nWhiteSpaces && !bFound; ++i) - { - if (cChar == aWhiteSpaces[i]) - bFound = true; - } - return bFound; + return std::any_of(std::begin(aWhiteSpaces), std::end(aWhiteSpaces), + [&cChar](const sal_Unicode c) { return c == cChar; }); } static sal_Int32 lcl_SkipWhiteSpaces( const OUString &rText, sal_Int32 nStartPos ) diff --git a/linguistic/source/spelldsp.cxx b/linguistic/source/spelldsp.cxx index eb15cf3be923..a8c20748bbab 100644 --- a/linguistic/source/spelldsp.cxx +++ b/linguistic/source/spelldsp.cxx @@ -81,15 +81,10 @@ void ProposalList::Prepend( const OUString &rText ) void ProposalList::Append( const OUString &rOrig, bool bPrepend ) { - bool bFound = false; // convert ASCII apostrophe to the typographic one const OUString aText( rOrig.indexOf( '\'' ) > -1 ? rOrig.replace('\'', u'’') : rOrig ); - size_t nCnt = aVec.size(); - for (size_t i = 0; !bFound && i < nCnt; ++i) - { - if (aVec[i] == aText) - bFound = true; - } + const bool bFound = std::any_of(aVec.begin(), aVec.end(), + [&aText](const OUString& n){ return n == aText; }); if (!bFound) { if ( bPrepend ) diff --git a/o3tl/CppunitTest_o3tl_tests.mk b/o3tl/CppunitTest_o3tl_tests.mk index 8e7fbc4d39f9..1715659ffbee 100644 --- a/o3tl/CppunitTest_o3tl_tests.mk +++ b/o3tl/CppunitTest_o3tl_tests.mk @@ -31,6 +31,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,o3tl_tests,\ o3tl/qa/test-cow_wrapper \ o3tl/qa/test-enumarray \ o3tl/qa/test-lru_map \ + o3tl/qa/test-numeric \ o3tl/qa/test-safeint \ o3tl/qa/test-sorted_vector \ o3tl/qa/test-string_view \ diff --git a/o3tl/qa/test-numeric.cxx b/o3tl/qa/test-numeric.cxx new file mode 100644 index 000000000000..005050be01fd --- /dev/null +++ b/o3tl/qa/test-numeric.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 <o3tl/numeric.hxx> +#include <sal/types.h> +#include <sal/config.h> + +static_assert(o3tl::convertToHex<int>(' ') == -1); +static_assert(o3tl::convertToHex<int>('*') == -1); +static_assert(o3tl::convertToHex<int>('?') == -1); +static_assert(o3tl::convertToHex<int>('1') == 0x01); +static_assert(o3tl::convertToHex<int>('9') == 0x09); +static_assert(o3tl::convertToHex<int>('a') == 0x0a); +static_assert(o3tl::convertToHex<int>('A') == 0x0A); +static_assert(o3tl::convertToHex<int>('f') == 0x0f); +static_assert(o3tl::convertToHex<int>('F') == 0x0f); +static_assert(o3tl::convertToHex<int>('g') == -1); +static_assert(o3tl::convertToHex<int>('G') == -1); +static_assert(o3tl::convertToHex<sal_uInt8>('G') == 0xff); + +static_assert(o3tl::convertToHex<int>(u' ') == -1); +static_assert(o3tl::convertToHex<int>(u'*') == -1); +static_assert(o3tl::convertToHex<int>(u'?') == -1); +static_assert(o3tl::convertToHex<int>(u'1') == 0x01); +static_assert(o3tl::convertToHex<int>(u'9') == 0x09); +static_assert(o3tl::convertToHex<int>(u'a') == 0x0a); +static_assert(o3tl::convertToHex<int>(u'A') == 0x0A); +static_assert(o3tl::convertToHex<int>(u'f') == 0x0f); +static_assert(o3tl::convertToHex<int>(u'F') == 0x0f); +static_assert(o3tl::convertToHex<int>(u'g') == -1); +static_assert(o3tl::convertToHex<int>(u'G') == -1); + +static_assert(o3tl::convertToHex<sal_uInt8>(u'*') == 0xff); +static_assert(o3tl::convertToHex<sal_uInt8>(u'A') == 0x0a); +static_assert(o3tl::convertToHex<sal_uInt8>(u'G') == 0xff); + +static_assert(o3tl::convertToHex<sal_uInt8>('0', '1') == 0x01); +static_assert(o3tl::convertToHex<sal_uInt8>('0', 'A') == 0x0a); +static_assert(o3tl::convertToHex<sal_uInt8>('0', 'F') == 0x0f); +static_assert(o3tl::convertToHex<sal_uInt8>('1', '0') == 0x10); +static_assert(o3tl::convertToHex<sal_uInt8>('A', '0') == 0xa0); +static_assert(o3tl::convertToHex<sal_uInt8>('F', '0') == 0xf0); + +static_assert(o3tl::convertToHex<sal_uInt8>(u'0', u'1') == 0x01); +static_assert(o3tl::convertToHex<sal_uInt8>(u'0', u'A') == 0x0a); +static_assert(o3tl::convertToHex<sal_uInt8>(u'0', u'F') == 0x0f); +static_assert(o3tl::convertToHex<sal_uInt8>(u'1', u'0') == 0x10); +static_assert(o3tl::convertToHex<sal_uInt8>(u'A', u'0') == 0xa0); +static_assert(o3tl::convertToHex<sal_uInt8>(u'F', u'0') == 0xf0); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu index 48faa40b5549..54cd6c148d83 100644 --- a/officecfg/registry/data/org/openoffice/Office/Common.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu @@ -55,6 +55,9 @@ <prop oor:name="CTLFont" install:module="ctl"> <value>true</value> </prop> + <prop oor:name="CTLVerticalText" install:module="ctl"> + <value>true</value> + </prop> <prop oor:name="CTLSequenceChecking" install:module="ctlseqcheck"> <value>true</value> </prop> diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu index fa25191be2a4..519c8db763ee 100644 --- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu @@ -217,6 +217,15 @@ <value>$(work)</value> </prop> </node> + <node oor:name="DocumentTheme" oor:op="fuse" oor:mandatory="true"> + <node oor:name="InternalPaths"> + <node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/themes" oor:op="fuse"/> + </node> + <prop oor:name="UserPaths" oor:finalized="true"/> + <prop oor:name="WritePath"> + <value>$(userurl)/themes</value> + </prop> + </node> <node oor:name="Classification" oor:op="fuse" oor:mandatory="true"> <prop oor:name="IsSinglePath" oor:finalized="true"> <value>true</value> diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index be596df8e308..329d125aa39f 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -1583,6 +1583,12 @@ </info> <value>$(insturl)/@LIBO_SHARE_FOLDER@/config/symbol</value> </prop> + <prop oor:name="DocumentTheme" oor:type="xs:string" oor:nillable="false"> + <info> + <desc>Specifies the default directory where the document themes files.</desc> + </info> + <value>$(insturl)/@LIBO_SHARE_FOLDER@/themes</value> + </prop> <prop oor:name="Config" oor:type="xs:string" oor:nillable="false"> <info> <desc>Specifies the default directory where the configuration files @@ -5179,8 +5185,13 @@ <desc>Enabled</desc> </info> </enumeration> + <enumeration oor:value="2"> + <info> + <desc>Reset</desc> + </info> + </enumeration> </constraints> - <value>0</value> + <value>1</value> </prop> <prop oor:name="ApplicationAppearance" oor:type="xs:short" oor:nillable="false"> <info> @@ -5382,12 +5393,17 @@ <value>-1</value> </prop> <prop oor:name="QuerySetInsMode" oor:type="xs:boolean" oor:nillable="false"> - <!-- UIHints: Tools - Options - General --> <info> <desc>Determines whether to query when switching into the overwrite mode.</desc> </info> <value>true</value> </prop> + <prop oor:name="QueryDeleteAllComments" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Determines whether to confirm delete all comments or all by user.</desc> + </info> + <value>false</value> + </prop> <prop oor:name="PerformFileExtCheck" oor:type="xs:boolean" oor:nillable="false"> <!-- UIHints: Tools - Options - General --> <info> @@ -6315,7 +6331,7 @@ </info> <value>true</value> </prop> - <prop oor:name="TextSpaces" oor:type="xs:boolean" oor:nillable="false"> + <prop oor:name="TextSpaces" oor:type="xs:boolean" oor:nillable="false"> <info> <desc> Enables accessibility check of extra spaces for formattings, inside the document @@ -6325,7 +6341,7 @@ </info> <value>true</value> </prop> - <prop oor:name="TextTabs" oor:type="xs:boolean" oor:nillable="false"> + <prop oor:name="TextTabs" oor:type="xs:boolean" oor:nillable="false"> <info> <desc> Enables accessibility check of extra tabs for formattings, inside the document @@ -6335,7 +6351,7 @@ </info> <value>true</value> </prop> - <prop oor:name="TextEmptyNums" oor:type="xs:boolean" oor:nillable="false"> + <prop oor:name="TextEmptyNums" oor:type="xs:boolean" oor:nillable="false"> <info> <desc> Enables accessibility check of empty new line between numberings, inside the document @@ -6645,6 +6661,14 @@ </info> <value>false</value> </prop> + <prop oor:name="CTLVerticalText" oor:type="xs:boolean" oor:nillable="false"> + <!-- UIHints: setup --> + <info> + <desc>Specifies whether vertical text settings are available (true) + or not (false).</desc> + </info> + <value>false</value> + </prop> <prop oor:name="CTLSequenceChecking" oor:type="xs:boolean" oor:nillable="false"> <!-- UIHints: setup --> <info> diff --git a/oox/source/dump/dumperbase.cxx b/oox/source/dump/dumperbase.cxx index 995346b0914a..736748be6d6a 100644 --- a/oox/source/dump/dumperbase.cxx +++ b/oox/source/dump/dumperbase.cxx @@ -33,6 +33,7 @@ #include <oox/helper/textinputstream.hxx> #include <tools/time.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <utility> #ifdef DBG_UTIL @@ -695,15 +696,10 @@ bool StringHelper::convertFromHex( sal_Int64& ornData, std::u16string_view rData for( size_t nPos = 0, nLen = rData.size(); nPos < nLen; ++nPos ) { sal_Unicode cChar = rData[ nPos ]; - if( ('0' <= cChar) && (cChar <= '9') ) - cChar -= '0'; - else if( ('A' <= cChar) && (cChar <= 'F') ) - cChar -= ('A' - 10); - else if( ('a' <= cChar) && (cChar <= 'f') ) - cChar -= ('a' - 10); - else + sal_Int32 nValue = o3tl::convertToHex<sal_Int32>(cChar); + if (nValue == -1) return false; - ornData = (ornData << 4) + cChar; + ornData = (ornData << 4) + nValue; } return true; } diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index d3bc81b08b26..754ae8bd7c32 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -1639,7 +1639,7 @@ void DrawingML::WriteMediaNonVisualProperties(const css::uno::Reference<css::dra const OUString& rURL(pMediaObj->getURL()); int nLastDot = rURL.lastIndexOf('.'); if (nLastDot >= 0) - aExtension = rURL.copy(nLastDot); + aExtension = rURL.copy(nLastDot).replace(':', '_'); // Colons are not allowed in Zip entry file names, see OStorageHelper::IsValidZipEntryFileName bool bEmbed = rURL.startsWith("vnd.sun.star.Package:"); Relationship eMediaType = Relationship::VIDEO; diff --git a/oox/source/ppt/pptfilterhelpers.cxx b/oox/source/ppt/pptfilterhelpers.cxx index 74de14c01c6d..1c01ade57c2e 100644 --- a/oox/source/ppt/pptfilterhelpers.cxx +++ b/oox/source/ppt/pptfilterhelpers.cxx @@ -29,20 +29,7 @@ #include <oox/ppt/pptfilterhelpers.hxx> #include <tools/color.hxx> #include <o3tl/string_view.hxx> - -namespace { - int lcl_gethex(int nChar) - { - if (nChar >= '0' && nChar <= '9') - return nChar - '0'; - else if (nChar >= 'a' && nChar <= 'f') - return nChar - 'a' + 10; - else if (nChar >= 'A' && nChar <= 'F') - return nChar - 'A' + 10; - else - return 0; - } -} +#include <o3tl/numeric.hxx> namespace oox::ppt { @@ -276,12 +263,9 @@ namespace oox::ppt { if (aString.getLength() >= 7 && aString[0] == '#') { Color aColor; - aColor.SetRed(static_cast<sal_uInt8>(lcl_gethex(aString[1]) * 16 - + lcl_gethex(aString[2]))); - aColor.SetGreen(static_cast<sal_uInt8>(lcl_gethex(aString[3]) * 16 - + lcl_gethex(aString[4]))); - aColor.SetBlue(static_cast<sal_uInt8>(lcl_gethex(aString[5]) * 16 - + lcl_gethex(aString[6]))); + aColor.SetRed(o3tl::convertToHex<sal_uInt8>(aString[1], aString[2])); + aColor.SetGreen(o3tl::convertToHex<sal_uInt8>(aString[3], aString[4])); + aColor.SetBlue(o3tl::convertToHex<sal_uInt8>(aString[5], aString[6])); rValue <<= aColor; bRet = true; } diff --git a/pyuno/Module_pyuno.mk b/pyuno/Module_pyuno.mk index 3a12fc68efac..804163ea4db0 100644 --- a/pyuno/Module_pyuno.mk +++ b/pyuno/Module_pyuno.mk @@ -34,7 +34,7 @@ $(eval $(call gb_Module_add_targets,pyuno,\ )) endif -ifeq ($(SYSTEM_PYTHON),) +ifneq ($(SYSTEM_PYTHON),TRUE) # python-core: python.sh on Unix ifneq ($(OS),WNT) @@ -44,18 +44,14 @@ $(eval $(call gb_Module_add_targets,pyuno,\ )) endif -endif # SYSTEM_PYTHON - $(eval $(call gb_Module_add_check_targets,pyuno, \ PythonTest_pyuno_pytests_testssl \ PythonTest_pyuno_pytests_testbz2 \ -)) - -ifeq ($(OS),MACOSX) -$(eval $(call gb_Module_add_check_targets,pyuno, \ + PythonTest_pyuno_pytests_testpip \ PythonTest_pyuno_pytests_testsetuptools \ )) -endif + +endif # !SYSTEM_PYTHON $(eval $(call gb_Module_add_subsequentcheck_targets,pyuno, \ PythonTest_pyuno_pytests_testcollections \ diff --git a/pyuno/PythonTest_pyuno_pytests_testpip.mk b/pyuno/PythonTest_pyuno_pytests_testpip.mk new file mode 100644 index 000000000000..b3e2ed4fb47d --- /dev/null +++ b/pyuno/PythonTest_pyuno_pytests_testpip.mk @@ -0,0 +1,16 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# 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/. +# + +$(eval $(call gb_PythonTest_PythonTest,pyuno_pytests_testpip)) + +$(eval $(call gb_PythonTest_add_modules,pyuno_pytests_testpip,$(SRCDIR)/pyuno/qa/pytests,\ + testpip \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/pyuno/qa/pytests/testpip.py b/pyuno/qa/pytests/testpip.py new file mode 100644 index 000000000000..867af8879973 --- /dev/null +++ b/pyuno/qa/pytests/testpip.py @@ -0,0 +1,14 @@ +import os +import unittest + +# tdf#162786: make sure importing pip works on all platforms +class SetupToolsTest(unittest.TestCase): + def test_pip_import(self): + import pip + + # use imported pip module for pyflakes + with open(os.devnull, "w") as devnull: + print(str(pip), file=devnull) + +if __name__ == '__main__': + unittest.main() diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt index a0aae5afb2de..a104778de3a7 100644 --- a/readlicense_oo/license/CREDITS.fodt +++ b/readlicense_oo/license/CREDITS.fodt @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> - <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/24.8.3.2$Linux_X86_64 LibreOffice_project/48a6bac9e7e268aeb4c3483fcf825c94556d9f92</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="5014" meta:word-count="18820" meta:character-count="136324" meta:non-whitespace-character-count="119602"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta> + <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/24.8.3.2$Linux_X86_64 LibreOffice_project/48a6bac9e7e268aeb4c3483fcf825c94556d9f92</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="5027" meta:word-count="18885" meta:character-count="136807" meta:non-whitespace-character-count="120029"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta> <office:settings> <config:config-item-set config:name="ooo:view-settings"> - <config:config-item config:name="ViewAreaTop" config:type="long">1958</config:config-item> + <config:config-item config:name="ViewAreaTop" config:type="long">1880</config:config-item> <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item> <config:config-item config:name="ViewAreaWidth" config:type="long">59357</config:config-item> <config:config-item config:name="ViewAreaHeight" config:type="long">28771</config:config-item> @@ -16,9 +16,9 @@ <config:config-item config:name="ViewLeft" config:type="long">3560</config:config-item> <config:config-item config:name="ViewTop" config:type="long">3434</config:config-item> <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item> - <config:config-item config:name="VisibleTop" config:type="long">1958</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">1880</config:config-item> <config:config-item config:name="VisibleRight" config:type="long">59856</config:config-item> - <config:config-item config:name="VisibleBottom" config:type="long">30727</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">30649</config:config-item> <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> @@ -150,7 +150,7 @@ <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item> <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/> <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item> - <config:config-item config:name="Rsid" config:type="int">14094486</config:config-item> + <config:config-item config:name="Rsid" config:type="int">14144489</config:config-item> <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item> <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item> <config:config-item config:name="MsWordCompMinLineHeightByFly" config:type="boolean">false</config:config-item> @@ -179,7 +179,7 @@ <office:styles> <style:default-style style:family="graphic"> <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" style:flow-with-text="true"/> - <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0cm" style:font-independent-line-spacing="false"> <style:tab-stops/> </style:paragraph-properties> <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="hu" fo:country="HU" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> @@ -373,26 +373,23 @@ </office:styles> <office:automatic-styles> <style:style style:name="Tabelle1" style:family="table"> - <style:table-properties style:width="26.088cm" table:align="left"/> + <style:table-properties style:width="26.123cm" table:align="left"/> </style:style> <style:style style:name="Tabelle1.A" style:family="table-column"> - <style:table-column-properties style:column-width="6.182cm"/> + <style:table-column-properties style:column-width="6.909cm"/> </style:style> <style:style style:name="Tabelle1.B" style:family="table-column"> - <style:table-column-properties style:column-width="6.883cm"/> + <style:table-column-properties style:column-width="6.191cm"/> </style:style> <style:style style:name="Tabelle1.C" style:family="table-column"> - <style:table-column-properties style:column-width="6.2cm"/> + <style:table-column-properties style:column-width="6.743cm"/> </style:style> <style:style style:name="Tabelle1.D" style:family="table-column"> - <style:table-column-properties style:column-width="6.823cm"/> + <style:table-column-properties style:column-width="6.279cm"/> </style:style> <style:style style:name="Tabelle1.A1" style:family="table-cell"> <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/> </style:style> - <style:style style:name="Tabelle1.D472" style:family="table-cell"> - <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/> - </style:style> <style:style style:name="Tabelle2" style:family="table"> <style:table-properties style:width="18.253cm" table:align="left"/> </style:style> @@ -457,16 +454,16 @@ <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/> </style:style> <style:style style:name="Tabelle5" style:family="table"> - <style:table-properties style:width="31.902cm" table:align="left"/> + <style:table-properties style:width="33.068cm" table:align="left"/> </style:style> <style:style style:name="Tabelle5.A" style:family="table-column"> - <style:table-column-properties style:column-width="6.849cm"/> + <style:table-column-properties style:column-width="6.74cm"/> </style:style> <style:style style:name="Tabelle5.B" style:family="table-column"> - <style:table-column-properties style:column-width="6.355cm"/> + <style:table-column-properties style:column-width="8.022cm"/> </style:style> <style:style style:name="Tabelle5.C" style:family="table-column"> - <style:table-column-properties style:column-width="6.731cm"/> + <style:table-column-properties style:column-width="6.339cm"/> </style:style> <style:style style:name="Tabelle5.D" style:family="table-column"> <style:table-column-properties style:column-width="11.966cm"/> @@ -844,7 +841,7 @@ </draw:frame> <text:section text:style-name="Sect1" text:name="BgContainer"> <text:p text:style-name="P1">Credits</text:p> - <text:p text:style-name="Text_20_body">2017 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2024-12-12 16:45:21.</text:p> + <text:p text:style-name="Text_20_body">2026 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2025-01-08 21:56:11.</text:p> <text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p> <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h> <table:table table:name="Tabelle1" table:style-name="Tabelle1"> @@ -857,7 +854,7 @@ <text:p text:style-name="Table_20_Contents">Ruediger Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 2000-10-10</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 36396<text:line-break/>Joined: 2000-10-10</text:p> + <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 36483<text:line-break/>Joined: 2000-10-10</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Kurt Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 2000-09-25</text:p> @@ -874,15 +871,15 @@ <text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 21390<text:line-break/>Joined: 2000-10-04</text:p> + <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 21428<text:line-break/>Joined: 2000-10-04</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 19575<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 19632<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 10109<text:line-break/>Joined: 2010-07-29</text:p> + <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 10136<text:line-break/>Joined: 2010-07-29</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p> @@ -891,7 +888,7 @@ <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 9160<text:line-break/>Joined: 2010-03-23</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 8610<text:line-break/>Joined: 2008-06-16</text:p> + <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 8620<text:line-break/>Joined: 2008-06-16</text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -899,7 +896,7 @@ <text:p text:style-name="Table_20_Contents">Kohei Yoshida<text:line-break/>Commits: 5571<text:line-break/>Joined: 2009-06-19</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 5383<text:line-break/>Joined: 2000-10-11</text:p> + <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 5388<text:line-break/>Joined: 2000-10-11</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 5203<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p> @@ -910,13 +907,13 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 4258<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 4294<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3961<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3964<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 3825<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 3901<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3648<text:line-break/>Joined: 2009-11-12</text:p> @@ -924,10 +921,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 3580<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 3635<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 3363<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 3425<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 3201<text:line-break/>Joined: 2010-09-21</text:p> @@ -944,7 +941,7 @@ <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2672<text:line-break/>Joined: 2009-06-23</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2646<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2653<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p> @@ -955,10 +952,10 @@ <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2527<text:line-break/>Joined: 2004-08-05</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2500<text:line-break/>Joined: 2009-10-14</text:p> + <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2505<text:line-break/>Joined: 2009-10-14</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 2312<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 2339<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> @@ -969,13 +966,13 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Arnhold<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 2109<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 2022<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 1946<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-10</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 2027<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -983,13 +980,13 @@ <text:p text:style-name="Table_20_Contents">Christian Lippka<text:line-break/>Commits: 1805<text:line-break/>Joined: 2000-09-25</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Armin Le Grand (Collabora)<text:line-break/>Commits: 1755<text:line-break/>Joined: 2000-09-25</text:p> + <text:p text:style-name="Table_20_Contents">Armin Le Grand (Collabora)<text:line-break/>Commits: 1760<text:line-break/>Joined: 2000-09-25</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 1712<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christopher Sherlock<text:line-break/>Commits: 1503<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-25</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Sherlock<text:line-break/>Commits: 1515<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-25</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1008,10 +1005,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 1338<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 1338<text:line-break/>Joined: 2008-06-01</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 1327<text:line-break/>Joined: 2008-06-01</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 1338<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Thomas Lange [tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p> @@ -1022,7 +1019,7 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 1285<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 1293<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 1232<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-14</text:span></text:p> @@ -1039,13 +1036,13 @@ <text:p text:style-name="Table_20_Contents">Daniel Rentz [dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1162<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1163<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 1051<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 976<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 979<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1140,10 +1137,10 @@ <text:p text:style-name="Table_20_Contents">Kai Sommerfeld<text:line-break/>Commits: 651<text:line-break/>Joined: 2000-10-10</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Ingrid Halama<text:line-break/>Commits: 639<text:line-break/>Joined: 2001-01-19</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 644<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 636<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-21</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Ingrid Halama<text:line-break/>Commits: 639<text:line-break/>Joined: 2001-01-19</text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1157,7 +1154,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Dominguez<text:line-break/>Commits: 606<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 593<text:line-break/>Joined: 2005-03-14</text:p> + <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 594<text:line-break/>Joined: 2005-03-14</text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1176,7 +1173,7 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 544<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-06</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 547<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Jürgen Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 2000-10-09</text:p> @@ -1193,21 +1190,21 @@ <text:p text:style-name="Table_20_Contents">Andreas Bregas<text:line-break/>Commits: 470<text:line-break/>Joined: 2000-09-25</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 405<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-12</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 413<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashod Nakashian<text:line-break/>Commits: 400<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashod Nakashian<text:line-break/>Commits: 401<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 393<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-09</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 395<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-09</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Dirk Voelzke<text:line-break/>Commits: 392<text:line-break/>Joined: 2000-11-27</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 393<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 391<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Dirk Voelzke<text:line-break/>Commits: 392<text:line-break/>Joined: 2000-11-27</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent BP<text:line-break/>Commits: 389<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-31</text:span></text:p> @@ -1227,7 +1224,7 @@ <text:p text:style-name="Table_20_Contents">Martin Hollmichel<text:line-break/>Commits: 371<text:line-break/>Joined: 2000-09-19</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 367<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-05</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 369<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-05</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1241,21 +1238,21 @@ <text:p text:style-name="Table_20_Contents">Matthias Huetsch [mhu]<text:line-break/>Commits: 360<text:line-break/>Joined: 2000-09-28</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Patrick Luby<text:line-break/>Commits: 335<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bogdan Buzea<text:line-break/>Commits: 356<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-01</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 334<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Patrick Luby<text:line-break/>Commits: 335<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bogdan Buzea<text:line-break/>Commits: 330<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-01</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 334<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 319<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 322<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 314<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-03</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 315<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-03</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1266,7 +1263,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Hung<text:line-break/>Commits: 305<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 301<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 304<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chr. Rossmanith<text:line-break/>Commits: 300<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-03</text:span></text:p> @@ -1297,18 +1294,18 @@ <text:p text:style-name="Table_20_Contents">Lars Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 2000-09-22</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ilmari Lauhakangas<text:line-break/>Commits: 253<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-15</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ilmari Lauhakangas<text:line-break/>Commits: 259<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-15</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Muthu Subramanian<text:line-break/>Commits: 250<text:line-break/>Joined: 2010-08-25</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Balazs Varga<text:line-break/>Commits: 254<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Antoni Buj Gelonch<text:line-break/>Commits: 247<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-11</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Muthu Subramanian<text:line-break/>Commits: 250<text:line-break/>Joined: 2010-08-25</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Balazs Varga<text:line-break/>Commits: 242<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Antoni Buj Gelonch<text:line-break/>Commits: 247<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Winfried Donkers<text:line-break/>Commits: 217<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-11</text:span></text:p> @@ -1344,7 +1341,7 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 180<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-14</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 185<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tünde Tóth<text:line-break/>Commits: 178<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-14</text:span></text:p> @@ -1364,7 +1361,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Balazs Varga<text:line-break/>Commits: 165<text:line-break/>Joined: <text:span text:style-name="T2">2018-07-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hossein<text:line-break/>Commits: 161<text:line-break/>Joined: <text:span text:style-name="T2">2021-06-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hossein<text:line-break/>Commits: 162<text:line-break/>Joined: <text:span text:style-name="T2">2021-06-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nigel Hawkins<text:line-break/>Commits: 160<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-28</text:span></text:p> @@ -1372,24 +1369,24 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tibor Nagy<text:line-break/>Commits: 159<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-01</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tibor Nagy<text:line-break/>Commits: 160<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gert Faller<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pranam Lashkari<text:line-break/>Commits: 154<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Artur Dorda<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-15</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gert Faller<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander Wilms<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-26</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Artur Dorda<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-15</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sarper Akdemir<text:line-break/>Commits: 150<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-26</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander Wilms<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pranam Lashkari<text:line-break/>Commits: 150<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-03</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sarper Akdemir<text:line-break/>Commits: 150<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Gregor Hartmann<gh<text:line-break/>Commits: 141<text:line-break/>Joined: 2000-10-12</text:p> @@ -1406,10 +1403,10 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Artur Dryomov<text:line-break/>Commits: 137<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sophia Schroeder<text:line-break/>Commits: 135<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-07</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aron Budea<text:line-break/>Commits: 136<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aron Budea<text:line-break/>Commits: 133<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-22</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sophia Schroeder<text:line-break/>Commits: 135<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-07</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1434,7 +1431,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Philipp Weissenbacher<text:line-break/>Commits: 129<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alain Romedenne<text:line-break/>Commits: 128<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-17</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alain Romedenne<text:line-break/>Commits: 129<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-17</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Taichi Haradaguchi<text:line-break/>Commits: 128<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-06</text:span></text:p> @@ -1484,20 +1481,23 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Attila Szűcs<text:line-break/>Commits: 106<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Balland<text:line-break/>Commits: 110<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Balland<text:line-break/>Commits: 105<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-19</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Attila Szűcs<text:line-break/>Commits: 108<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Louis-Francis Ratté-Boulianne<text:line-break/>Commits: 102<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Patrick Luby<text:line-break/>Commits: 103<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rishabh Kumar<text:line-break/>Commits: 100<text:line-break/>Joined: <text:span text:style-name="T2">2015-02-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Louis-Francis Ratté-Boulianne<text:line-break/>Commits: 102<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-29</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rishabh Kumar<text:line-break/>Commits: 100<text:line-break/>Joined: <text:span text:style-name="T2">2015-02-13</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Klausner<text:line-break/>Commits: 99<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -1506,11 +1506,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paris Oplopoios<text:line-break/>Commits: 99<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Attila Bakos (NISZ)<text:line-break/>Commits: 97<text:line-break/>Joined: <text:span text:style-name="T2">2019-10-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Godard<text:line-break/>Commits: 93<text:line-break/>Joined: <text:span text:style-name="T2">2011-05-06</text:span></text:p> </table:table-cell> @@ -1520,11 +1520,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Varun Dhall<text:line-break/>Commits: 91<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Krisztian Pinter<text:line-break/>Commits: 90<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Philipp Hofer<text:line-break/>Commits: 90<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-06</text:span></text:p> </table:table-cell> @@ -1532,9 +1532,6 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Albert Thuswaldner<text:line-break/>Commits: 89<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Patrick Luby<text:line-break/>Commits: 89<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-11</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tim Retout<text:line-break/>Commits: 88<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-14</text:span></text:p> </table:table-cell> </table:table-row> @@ -1546,10 +1543,10 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Korrawit Pruegsanusak<text:line-break/>Commits: 87<text:line-break/>Joined: <text:span text:style-name="T2">2011-05-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Co<text:line-break/>Commits: 86<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-28</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thorsten Behrens<text:line-break/>Commits: 87<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thorsten Behrens<text:line-break/>Commits: 86<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-19</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Co<text:line-break/>Commits: 86<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-28</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1582,7 +1579,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dr. David Alan Gilbert<text:line-break/>Commits: 76<text:line-break/>Joined: <text:span text:style-name="T2">2020-09-12</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonathan Clark<text:line-break/>Commits: 78<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-12</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dr. David Alan Gilbert<text:line-break/>Commits: 77<text:line-break/>Joined: <text:span text:style-name="T2">2020-09-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Madl<text:line-break/>Commits: 74<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-15</text:span></text:p> @@ -1590,11 +1590,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gergo Mocsi<text:line-break/>Commits: 72<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>weigao<text:line-break/>Commits: 72<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Thorsten Bosbach<text:line-break/>Commits: 70<text:line-break/>Joined: 2008-06-18</text:p> </table:table-cell> @@ -1604,11 +1604,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michaël Lefèvre<text:line-break/>Commits: 68<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Riccardo Magliocchetti<text:line-break/>Commits: 68<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Antonio Fernandez<text:line-break/>Commits: 68<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-18</text:span></text:p> </table:table-cell> @@ -1616,9 +1616,6 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomoyuki Kubota<text:line-break/>Commits: 68<text:line-break/>Joined: <text:span text:style-name="T2">2018-03-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonathan Clark<text:line-break/>Commits: 68<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-12</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kevin Hunter<text:line-break/>Commits: 67<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-22</text:span></text:p> </table:table-cell> </table:table-row> @@ -1778,6 +1775,9 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Srebotnjak<text:line-break/>Commits: 46<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-19</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luke Deller<text:line-break/>Commits: 46<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -1786,16 +1786,13 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexandre Vicenzi<text:line-break/>Commits: 46<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-15</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihai Varga<text:line-break/>Commits: 46<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-27</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">mb93783<text:line-break/>Commits: 45<text:line-break/>Joined: 2009-07-15</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihai Varga<text:line-break/>Commits: 46<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Srebotnjak<text:line-break/>Commits: 45<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-19</text:span></text:p> + <text:p text:style-name="Table_20_Contents">mb93783<text:line-break/>Commits: 45<text:line-break/>Joined: 2009-07-15</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eilidh McAdam<text:line-break/>Commits: 45<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-10</text:span></text:p> @@ -1879,16 +1876,19 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shivam Kumar Singh<text:line-break/>Commits: 38<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gökay Şatır<text:line-break/>Commits: 38<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-08</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stéphane Guillou<text:line-break/>Commits: 38<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Iain Billett<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>abdulmajeed ahmed<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jennifer Liebel<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-29</text:span></text:p> </table:table-cell> @@ -1896,16 +1896,24 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ayhan Yalçınsoy<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-20</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jaume Pujantell<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-03</text:span></text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Weblate<text:line-break/>Commits: 37<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-13</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Guillaume Poussel<text:line-break/>Commits: 36<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Radu Ioan<text:line-break/>Commits: 36<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vinaya Mandke<text:line-break/>Commits: 36<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Csikós Tamás<text:line-break/>Commits: 36<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-01</text:span></text:p> </table:table-cell> @@ -1915,11 +1923,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ilhan Yesil<text:line-break/>Commits: 36<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aurimas Fišeras<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Charrière<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-14</text:span></text:p> </table:table-cell> @@ -1929,11 +1937,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>xukai liu<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>dechuang<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Lippert<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-02</text:span></text:p> </table:table-cell> @@ -1943,23 +1951,15 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Page<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2016-04-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>DaeHyun Sung<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2018-05-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yusuf Keten<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jaume Pujantell<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-03</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Weblate<text:line-break/>Commits: 35<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-13</text:span></text:p> - </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas Mantke<text:line-break/>Commits: 34<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -1968,39 +1968,39 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rodolfo Ribeiro Gomes<text:line-break/>Commits: 34<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steve Yin<text:line-break/>Commits: 34<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Seskunas<text:line-break/>Commits: 34<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-29</text:span></text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cor Nouws<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yogesh Bharate<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dennis Roczek<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2015-06-09</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aleksei Nikiforov<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-31</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matt K<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Seskunas<text:line-break/>Commits: 33<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-29</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gokul<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-10</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vishv Brahmbhatt<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arnold Dumas<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-14</text:span></text:p> </table:table-cell> @@ -2010,11 +2010,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dmitriy Shilin<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shubham Goyal<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kurt Nordback<text:line-break/>Commits: 32<text:line-break/>Joined: <text:span text:style-name="T2">2022-05-28</text:span></text:p> </table:table-cell> @@ -2024,11 +2024,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sushil Shinde<text:line-break/>Commits: 31<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>fengzeng<text:line-break/>Commits: 31<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gautam Prajapati<text:line-break/>Commits: 31<text:line-break/>Joined: <text:span text:style-name="T2">2017-02-06</text:span></text:p> </table:table-cell> @@ -2038,11 +2038,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kenneth Venken<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Wols Lists<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christoph Herzog<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-07</text:span></text:p> </table:table-cell> @@ -2052,11 +2052,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bryan Quigley<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-12</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Isamu Mogi<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>mulei<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-01</text:span></text:p> </table:table-cell> @@ -2066,11 +2066,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jakub Trzebiatowski<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Silva<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2017-09-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Regényi Balázs<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-02</text:span></text:p> </table:table-cell> @@ -2080,11 +2080,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>RMZeroFour<text:line-break/>Commits: 30<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Harri Pitkänen<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Elton Chung<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-31</text:span></text:p> </table:table-cell> @@ -2094,12 +2094,12 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthias Seidel<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2017-02-18</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gökay Şatır<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-08</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Skyler Grey<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-19</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Moritz Duge<text:line-break/>Commits: 29<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -2108,11 +2108,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szabolcs Dezsi<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jack Leigh<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2012-10-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pallavi Jadhav<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-08</text:span></text:p> </table:table-cell> @@ -2122,25 +2122,25 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paul Trojahn<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-27</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Skyler Grey<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-19</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Baole Fang<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Javiya Vivekkumar Dineshbhai<text:line-break/>Commits: 28<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-10</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gökçen Eraslan<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joel Madero<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>José Guilherme Vanz<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andres Gomez<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-09</text:span></text:p> </table:table-cell> @@ -2150,11 +2150,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jorenz Paragas<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2015-06-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dipangar Niranjar<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ximeng Zu<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-17</text:span></text:p> </table:table-cell> @@ -2164,11 +2164,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adrien Ollier<text:line-break/>Commits: 27<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nicolas Christener<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Josh Heidenreich<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2011-07-20</text:span></text:p> </table:table-cell> @@ -2178,11 +2178,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Sikeler<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Akash Jain<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Svante Schubert<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2020-07-08</text:span></text:p> </table:table-cell> @@ -2192,25 +2192,25 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kira Tubo<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-06</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Javiya Vivekkumar Dineshbhai<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-10</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Leonard Sasse<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sahil Gautam<text:line-break/>Commits: 26<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-20</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kurosawa Takeshi<text:line-break/>Commits: 25<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomofumi Yagi<text:line-break/>Commits: 25<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Prashant Pandey<text:line-break/>Commits: 25<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vort<text:line-break/>Commits: 25<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-21</text:span></text:p> </table:table-cell> @@ -2220,11 +2220,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>George Bateman<text:line-break/>Commits: 25<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Baptiste Daroussin<text:line-break/>Commits: 24<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-31</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pedro Giffuni<text:line-break/>Commits: 24<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-28</text:span></text:p> </table:table-cell> @@ -2234,11 +2234,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sumit Chauhan<text:line-break/>Commits: 24<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gökay Şatır<text:line-break/>Commits: 24<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Roth<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-31</text:span></text:p> </table:table-cell> @@ -2248,11 +2248,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lucas Baudin<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Chaffraix<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christian Dywan<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p> </table:table-cell> @@ -2262,11 +2262,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mario J. Rugiero<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marco A.G.Pinto<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ekuiitr<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-13</text:span></text:p> </table:table-cell> @@ -2276,11 +2276,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Júlio Hoffimann<text:line-break/>Commits: 22<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ruslan Kabatsayev<text:line-break/>Commits: 22<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jian Fang Zhang<text:line-break/>Commits: 22<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-18</text:span></text:p> </table:table-cell> @@ -2290,11 +2290,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>zhenyu yuan<text:line-break/>Commits: 22<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Saurav Chirania<text:line-break/>Commits: 22<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rohit Deshmukh<text:line-break/>Commits: 21<text:line-break/>Joined: <text:span text:style-name="T2">2013-09-30</text:span></text:p> </table:table-cell> @@ -2304,11 +2304,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vitaliy Anderson<text:line-break/>Commits: 21<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bernhard Widl<text:line-break/>Commits: 21<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafał Dobrakowski<text:line-break/>Commits: 21<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-09</text:span></text:p> </table:table-cell> @@ -2318,11 +2318,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andy Holder<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Brad Sowden<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Petr Vorel<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-17</text:span></text:p> </table:table-cell> @@ -2332,11 +2332,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrew Dent<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ming Hua<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sahil Gautam<text:line-break/>Commits: 20<text:line-break/>Joined: <text:span text:style-name="T2">2023-07-19</text:span></text:p> </table:table-cell> @@ -2346,11 +2346,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lennard Wasserthal<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peilin Xiao<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2013-12-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sven Wehner<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-11</text:span></text:p> </table:table-cell> @@ -2360,11 +2360,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aleksas Pantechovskis<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>krishna keshav<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Onur Yilmaz<text:line-break/>Commits: 19<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> @@ -2374,11 +2374,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Hanno Meyer-Thurow<text:line-break/>Commits: 18<text:line-break/>Joined: 2010-09-16</text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joost Wezenbeek<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abdulelah Alarifi<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-12</text:span></text:p> </table:table-cell> @@ -2388,11 +2388,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Richard PALO<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Federico Bassini<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mert Tümer<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-08</text:span></text:p> </table:table-cell> @@ -2402,11 +2402,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Todor Balabanov<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Hung<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2022-05-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Povilas Kanapickas<text:line-break/>Commits: 18<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-24</text:span></text:p> </table:table-cell> @@ -2416,11 +2416,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alfonso Eusebio<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bálint Dózsa<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier R<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-01</text:span></text:p> </table:table-cell> @@ -2430,11 +2430,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>navin patidar<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Umesh Kadam<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>melikeyurtoglu<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-09</text:span></text:p> </table:table-cell> @@ -2444,11 +2444,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Beck<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kshitij Pathania<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2017-09-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vikas Mahato<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2017-12-31</text:span></text:p> </table:table-cell> @@ -2458,11 +2458,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alain Romedenne<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mesut Çifci<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bayram Çiçek<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-23</text:span></text:p> </table:table-cell> @@ -2472,11 +2472,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sahil Gautam<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohit Marathe<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Florian Reuter<text:line-break/>Commits: 16<text:line-break/>Joined: 2010-09-14</text:p> </table:table-cell> @@ -2486,11 +2486,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Niko Rönkkö<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jordan Ayers<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anders Jonsson<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-11</text:span></text:p> </table:table-cell> @@ -2500,11 +2500,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lei De Bin<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Noël Rouvignac<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tsahi glik<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-04</text:span></text:p> </table:table-cell> @@ -2514,17 +2514,28 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Kasztenny<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Thibault<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2018-09-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nd101<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2019-07-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rashesh<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-24</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>OmkarAcharekar<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vojtěch Doležal<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-13</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Darshan-upadhyay1110<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-01</text:span></text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luv Sharma<text:line-break/>Commits: 16<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-31</text:span></text:p> </table:table-cell> @@ -2582,16 +2593,13 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ross Johnson<text:line-break/>Commits: 15<text:line-break/>Joined: <text:span text:style-name="T2">2021-09-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vojtěch Doležal<text:line-break/>Commits: 15<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-13</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>LeMoyne Castle<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tim Hardeck<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Björgvin Ragnarsson<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-13</text:span></text:p> </table:table-cell> @@ -2601,11 +2609,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sun Ying<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Juan Picca<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2014-07-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zsolt Bölöny<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-10</text:span></text:p> </table:table-cell> @@ -2615,56 +2623,59 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gökhan Gurbetoğlu<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2016-06-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nickson Thanda<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2018-03-25</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Darshan-upadhyay1110<text:line-break/>Commits: 14<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-01</text:span></text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Prashant Shah<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Baptiste Faure<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Muhammad Haggag<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>gerhard oettl<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alia Almusaireae<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathias Hasselmann<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Manfred Blume<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sabri unal<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steve Fanning<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2019-11-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Radhey Parekh<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>VaibhavMalik4187<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2021-12-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alain Romedenne<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bayram Çiçek<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-17</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AhmedHamed<text:line-break/>Commits: 13<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-22</text:span></text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jani Monoses<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-30</text:span></text:p> </table:table-cell> @@ -2722,14 +2733,17 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>xuenhua<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-08</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>TokieSan<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-27</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sakura286<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AhmedHamed<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-22</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chenxiong Qi<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-27</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>TokieSan<text:line-break/>Commits: 12<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-27</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Mox Soini<text:line-break/>Commits: 11<text:line-break/>Joined: 2008-04-04</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -2738,11 +2752,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonas Finnemann Jensen<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>René Kjellerup<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Rabi<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2011-07-14</text:span></text:p> </table:table-cell> @@ -2752,11 +2766,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jung-uk Kim<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Enrico Weigelt, metux ITS<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abdulaziz A Alayed<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-22</text:span></text:p> </table:table-cell> @@ -2766,11 +2780,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Krunoslav Šebetić<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Charu Tyagi<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Jaumann<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-02</text:span></text:p> </table:table-cell> @@ -2780,11 +2794,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Phillip Sz<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nadith<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2016-07-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maarten Bosmans<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-24</text:span></text:p> </table:table-cell> @@ -2794,11 +2808,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>jmzambon<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Manuj Vashist<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2017-12-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Milian Wolff<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-10</text:span></text:p> </table:table-cell> @@ -2808,11 +2822,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Lohmann<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Srijan Bhatia<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vert D<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2020-09-26</text:span></text:p> </table:table-cell> @@ -2822,39 +2836,25 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anshu<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-09</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeff Huang<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-12</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rashesh<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-24</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sakura286<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-26</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chenxiong Qi<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-27</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeff Huang<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Patrick Luby<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bayram Çiçek<text:line-break/>Commits: 11<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-17</text:span></text:p> - </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Timo Heino<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luke Petrolekas<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-12</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Theo van Klaveren<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Troy Rollo<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2011-07-11</text:span></text:p> </table:table-cell> @@ -2864,11 +2864,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Vogt<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jianyuan Li<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefan Weiberg<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-28</text:span></text:p> </table:table-cell> @@ -2878,11 +2878,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arul Michael<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chirag Manwani<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dilek Uzulmez<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-15</text:span></text:p> </table:table-cell> @@ -2892,11 +2892,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rahul Gurung<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2018-08-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Robbinson<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>A_GAN<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-25</text:span></text:p> </table:table-cell> @@ -2906,11 +2906,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Warner<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tushar<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vincent LE GARREC<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-21</text:span></text:p> </table:table-cell> @@ -2920,11 +2920,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Galdam<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christian Lohmaier<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2022-12-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sahil Gautam<text:line-break/>Commits: 10<text:line-break/>Joined: <text:span text:style-name="T2">2023-11-21</text:span></text:p> </table:table-cell> @@ -2934,11 +2934,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Surendran Mahendran<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steven Butler<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robinson Tryon<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-21</text:span></text:p> </table:table-cell> @@ -2948,11 +2948,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Dunphy<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dinesh Patil<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthew Pottage<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2014-07-26</text:span></text:p> </table:table-cell> @@ -2962,11 +2962,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ryan McCoskrie<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aybuke Ozdemir<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>skswales<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-06</text:span></text:p> </table:table-cell> @@ -2976,11 +2976,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pv2k<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Kovacs<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2018-08-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Scott Clarke<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2019-06-07</text:span></text:p> </table:table-cell> @@ -2990,9 +2990,20 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Mayo<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Venetia Furtado<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2023-06-16</text:span></text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alin Andrei Abahnencei<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-27</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Manish Bera<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-28</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shantanu Oak<text:line-break/>Commits: 9<text:line-break/>Joined: <text:span text:style-name="T2">2025-01-05</text:span></text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -3139,156 +3150,159 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>jsala<text:line-break/>Commits: 8<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Theppitak Karoonboonyanan<text:line-break/>Commits: 8<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-25</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>kubak<text:line-break/>Commits: 8<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-23</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Simon Chenery<text:line-break/>Commits: 8<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-22</text:span></text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thies Pierdola<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sergey Davidoff<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Cantrell<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alex McMurchy1917<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christoph Lutz<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Keith McRae<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gert van Valkenhoef<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Brennan Vincent<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Wang Lei<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Issa Alkurtass<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christopher Copits<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathias Michel<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eric Seynaeve<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>SJacobi<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Roi Illouz<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-20</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefan Ring<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Trent MacAlpine<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Delma<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Giuseppe Bilotta<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-09</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>V Stuart Foote<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Raal<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-31</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>brinzing<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2015-08-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Feyza Yavuz<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>irem<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>slacka<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-07-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Asela Dasanayaka<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-07-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tiago Santos<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hieronymous<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ulrich Gemkow<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marina Latini<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Furkan Ahmet Kara<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vincas Dargis<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Guilhem Moulin<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hamish McIntyre-Bhatty<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bugra<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ahmet Hakan Çelik<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>BaiXiaochun<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2021-06-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Juan C. Sanz<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2021-09-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Liu Hao<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Theppitak Karoonboonyanan<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-25</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vladislav Tarakanov<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2023-06-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ankit_Jaipuriar<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>varshneydevansh<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-07</text:span></text:p> </table:table-cell> @@ -3296,16 +3310,24 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>HakimOttey<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marc Mondesir<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2024-09-18</text:span></text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adesola Samuel<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>kkasliwal<text:line-break/>Commits: 7<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-21</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Phil Bordelon<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ricardo Moreno<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander O. Anisimov<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-06</text:span></text:p> </table:table-cell> @@ -3315,11 +3337,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>shirahara<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xavier ALT<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anurag Jain<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-05</text:span></text:p> </table:table-cell> @@ -3329,11 +3351,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joan Montané<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Verrier<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anurag Kanungo<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-19</text:span></text:p> </table:table-cell> @@ -3343,11 +3365,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeroen Nijhof<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kay Schenk<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michel Renon<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2015-05-19</text:span></text:p> </table:table-cell> @@ -3357,11 +3379,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sedat Ak<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Guillaume Smaha<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ricardo Palomares<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-16</text:span></text:p> </table:table-cell> @@ -3371,11 +3393,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steven Guo<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chamal<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rosen<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-04</text:span></text:p> </table:table-cell> @@ -3385,11 +3407,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>abdulwd<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gian Domenico Ceccarini<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2017-01-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Sebastien Bevilacqua<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2017-02-09</text:span></text:p> </table:table-cell> @@ -3399,11 +3421,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kemal Ayhan<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Batuhan Taskaya<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mehmet Emin Başoğlu<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-25</text:span></text:p> </table:table-cell> @@ -3413,11 +3435,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ivan Stefanenko<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ViKrAm-Bais<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>msrijita18<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-26</text:span></text:p> </table:table-cell> @@ -3427,11 +3449,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henrik Palomäki<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2021-10-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ramreiso Kashung<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2021-12-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Leonid Ryzhov<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-17</text:span></text:p> </table:table-cell> @@ -3441,11 +3463,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luigi Iucci<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yli875<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Méven Car<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-09</text:span></text:p> </table:table-cell> @@ -3455,23 +3477,29 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zainab Abbasi<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-10</text:span></text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashok<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-07-24</text:span></text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashok<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-07-24</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dione Maddern<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marc Mondesir<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-09-18</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Oromidayo Owolabi<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sahil Gautam<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-20</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohamed Ali<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gil Forcada<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-28</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>bruh<text:line-break/>Commits: 6<text:line-break/>Joined: <text:span text:style-name="T2">2025-01-09</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gil Forcada<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-28</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Hobley<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -3480,11 +3508,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Antoine Proulx<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Rosenberger<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-31</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeffrey Chang<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-01</text:span></text:p> </table:table-cell> @@ -3494,11 +3522,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael T. Whiteley<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gustavo Buzzatti Pacheco<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Wei Ming Khoo<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-17</text:span></text:p> </table:table-cell> @@ -3508,11 +3536,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pavel Kysilka<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bence Babati<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pavel Janík<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-29</text:span></text:p> </table:table-cell> @@ -3522,11 +3550,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthias Hofmann<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Miguel Gomez<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pje335_NL<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2013-05-10</text:span></text:p> </table:table-cell> @@ -3536,11 +3564,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pader Rezso<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>MÁTÉ Gergely<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Timothy Markle<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-31</text:span></text:p> </table:table-cell> @@ -3550,11 +3578,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pasi Lallinaho<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2015-06-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Berk Gureken<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>dtm<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-11</text:span></text:p> </table:table-cell> @@ -3564,11 +3592,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Edmund Wong<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Huzaifa Iftikhar<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tamsil1amani3<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-22</text:span></text:p> </table:table-cell> @@ -3578,11 +3606,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paul Menzel<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Franklin Weng<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Corentin Noël<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2019-09-20</text:span></text:p> </table:table-cell> @@ -3592,11 +3620,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eda Nur Var<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yukio Siraichi<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Oleg Shchelykalnov<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-28</text:span></text:p> </table:table-cell> @@ -3606,11 +3634,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Umut Emre Bayramoglu<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Georgy Litvinov<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Suhaas Joshi<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-04</text:span></text:p> </table:table-cell> @@ -3620,11 +3648,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Baran Aytas<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2021-08-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ismael Luceno<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2021-09-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>flywire<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2021-11-12</text:span></text:p> </table:table-cell> @@ -3634,11 +3662,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>zhutyra<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Deep17<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Siddhant Chaudhary<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-11</text:span></text:p> </table:table-cell> @@ -3648,11 +3676,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Satya<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Rosetti<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ektagoel12<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-19</text:span></text:p> </table:table-cell> @@ -3662,11 +3690,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Irgaliev Amin<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>prrvchr<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2023-07-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>khushishikhu<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-13</text:span></text:p> </table:table-cell> @@ -3676,16 +3704,13 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Keldin Maldonado (KNM)<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-29</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sujatro Bhadra<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-04</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aaron Bourdeaux<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-25</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sujatro Bhadra<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dione Maddern<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-05</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aaron Bourdeaux<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sohrab Kazak<text:line-break/>Commits: 5<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-19</text:span></text:p> @@ -3965,16 +3990,19 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Đoàn Trần Công Danh<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sebastian Andrzej Siewior<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-24</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rasenkai<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adoche Onaji<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nirnay<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arvind K<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-02</text:span></text:p> </table:table-cell> @@ -3984,11 +4012,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dan Horák<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>seturaj<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-21</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AungKhantOo<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-28</text:span></text:p> </table:table-cell> @@ -3998,417 +4026,403 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>U-AMANDAQUARESMA\quare<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-01</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Printf Debugging<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-05</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Deepanshu Sharma<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-08</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Printf Debugging<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Oromidayo Owolabi<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-16</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Deepanshu Sharma<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-08</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohamed Ali<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-14</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Akshay Kumar Dubey<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2025-01-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Simon Chenery<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-22</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Keith Stribley<text:line-break/>Commits: 3<text:line-break/>Joined: 2010-06-29</text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Manish<text:line-break/>Commits: 4<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-28</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Keith Stribley<text:line-break/>Commits: 3<text:line-break/>Joined: 2010-06-29</text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jacopo Nespolo<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alan Du<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gioele Barabucci<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-18</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xuacu Saturio<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pascal Ullrich<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonathan Aquilina<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Koch<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan Darmochwal<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Carpenter(mordocai)<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tantai Tanakanok<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Nalley<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Guto Maia<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anthony Durity<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-18</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dimitri Duc<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Eberdt<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-07-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Florian Allmann-Rahn<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dmitry Ashkadov<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Bauer<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sérgio Marques<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefan Heinemann<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cameron Paul<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tom Thorogood<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stephan van den Akker<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-07</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Benjamin Drung<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathieu Vonlanthen<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bertrand Lorentz<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Oliver Günther<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-09</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Istvan Turi<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeremy Brown<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Baumgarten<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Maier<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marina Plakalovic<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dávid Vastag<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefan Schick<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Petr Kraus<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Golnaz Irannejad<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>vjinoch<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-09</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jason Hulme<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nagy Akos<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabriele Bulfon<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Haidong Lian<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-24</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Mueller<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Senna Tschudin<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Brij Mohan Lal Srivastava<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-12</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Renato Ferreira<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Popa Adrian Marius<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthew Nicholls<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Linus Behrens<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marek Doležel<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-07-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Simon Long<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-07-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lucas Satabin<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-08-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>n.r.pearson<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-09-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sergey Fukanchik<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-09-17</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AlexF<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Giovanni Caligaris<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mayank Gupta<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johannes Berg<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>drazil<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jacek Fraczek<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>liongold<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>John Paul Adrian Glaubitz<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>bansan85<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-21</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dimitri Bouron<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ivan Safonov<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-07-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabriel Chiquini<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bán Róbert<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Vecsernyes<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-11-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gergely Tarsoly<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-11-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ahmed GHANMI<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2017-11-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abhishek Shrivastava<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Telesto<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bartosz Kosiorek<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shubham Verma<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-17</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Godard<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ulkem Kasapoglu<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2018-07-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Salih Sariyar<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Omer Fatih Celik<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Meryem Ezber<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrés Maldonado<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>EL-SHREIF<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stepas Toliautas<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michel Thomas<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nienzu<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julian Kalinowski<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ian Barkley-Yeung<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pierre Marty<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eivind Samseth<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>yakovru<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>mariamfahmy<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Leo Wang<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gizem Ozgun<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-23</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tarun Sharma<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zeynep Yavuz<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2021-08-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Natalia Gavrilova<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2021-09-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Verne-Lai<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2021-10-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Renwa Hiwa<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tushar Jham<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yomnasalama<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>mostafa-elsharnoby<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Isha_Desai<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shady Mohamed<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aman Jha<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AshSinc<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-05-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>wujiahuan<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rakielle<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Calvince Otieno<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sebastian Andrzej Siewior<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-24</text:span></text:p> - </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Supriyo Paul<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vinit Agarwal<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>gilssonn<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>EMartinGube<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-07-20</text:span></text:p> </table:table-cell> @@ -4418,11 +4432,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthew Kogan<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AmosAidoo<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2023-11-21</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steven Casey (SMCode)<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-13</text:span></text:p> </table:table-cell> @@ -4432,28 +4446,36 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>anish.deshpande<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashwani kumar<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-07</text:span></text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Omkar Santosh Nikam<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>MelvinYG<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-17</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lorenzo Lovato<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>LeSci-0x1<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johann Lorber<text:line-break/>Commits: 3<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-04</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Loiseleur Michel<text:line-break/>Commits: 2<text:line-break/>Joined: 2010-09-14</text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Malcolm<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Seo Sanghyeon<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> @@ -4463,11 +4485,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Sedak<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sean McMurray<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nadav Vinik<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-21</text:span></text:p> </table:table-cell> @@ -4477,11 +4499,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dwayne Bailey<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christoph Noack<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sophie Gautier<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-19</text:span></text:p> </table:table-cell> @@ -4491,11 +4513,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonathan Callen<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karsten Gerloff<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean Charles Papin<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-11</text:span></text:p> </table:table-cell> @@ -4505,11 +4527,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthias Klose<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Natterer<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cyril Roelandt<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-26</text:span></text:p> </table:table-cell> @@ -4519,11 +4541,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michal Svec<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-07-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohammad Elahi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takashi Nakamoto<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-28</text:span></text:p> </table:table-cell> @@ -4533,11 +4555,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan Hubicka<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arno Teigseth<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maxim Iorsh<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-05</text:span></text:p> </table:table-cell> @@ -4547,11 +4569,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yury Tarasievich<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mateusz Zasuwik<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Milos Sramek<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-20</text:span></text:p> </table:table-cell> @@ -4561,11 +4583,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>PKEuS<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Urmas<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bartolomé Sánchez Salado<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-18</text:span></text:p> </table:table-cell> @@ -4575,11 +4597,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>William Gathoye<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karthik A Padmanabhan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Wolf<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-04</text:span></text:p> </table:table-cell> @@ -4589,11 +4611,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abeer Sethi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ferran Vidal<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vicente Vendrell<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-23</text:span></text:p> </table:table-cell> @@ -4603,11 +4625,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jose Santiago Jimenez Sarmiento<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marc Garcia<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martyn Russell<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-07</text:span></text:p> </table:table-cell> @@ -4617,11 +4639,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ward van Wanrooij<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yuri Dario<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Horacio Fernandes<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-20</text:span></text:p> </table:table-cell> @@ -4631,11 +4653,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Herde<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johann Messner<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Flex Liu<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-04</text:span></text:p> </table:table-cell> @@ -4645,11 +4667,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Louis Possoz<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-10-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christos Strubulis<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arne de Bruijn<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-11</text:span></text:p> </table:table-cell> @@ -4659,11 +4681,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Mróz<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gregg King<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Benedikt Morbach<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-10</text:span></text:p> </table:table-cell> @@ -4673,11 +4695,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Akash Shetye<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Janit Anjaria<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>mmeof2<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-05-03</text:span></text:p> </table:table-cell> @@ -4687,11 +4709,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rolf Hemmerling<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jing Xian<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Hoppe<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-27</text:span></text:p> </table:table-cell> @@ -4701,11 +4723,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Neil Moore<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Viktor Varga<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Janos Farago<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-09-03</text:span></text:p> </table:table-cell> @@ -4715,11 +4737,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathieu Parent<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jagan Lokanatha<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Anderson Roberto<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-15</text:span></text:p> </table:table-cell> @@ -4729,11 +4751,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bisal Nayal<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hussian Alamri<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mukhiddin Yusupov<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-19</text:span></text:p> </table:table-cell> @@ -4743,11 +4765,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hideki Ikeda<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Boris Egorov<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>YiiChang Yen<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-16</text:span></text:p> </table:table-cell> @@ -4757,11 +4779,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Naruhiko Ogasawara<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Stone<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Supreme Aryal<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-04</text:span></text:p> </table:table-cell> @@ -4771,11 +4793,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Williams<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Clément Lassieur<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rimas Kudelis<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-06</text:span></text:p> </table:table-cell> @@ -4785,11 +4807,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kishor Bhat<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>gamebusterz<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-02-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Piet van Oostrum<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-12</text:span></text:p> </table:table-cell> @@ -4799,11 +4821,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Wernig<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jingtao Yan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Austin Chen<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-25</text:span></text:p> </table:table-cell> @@ -4813,11 +4835,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Carlos Luque<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-07-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lubosz Sarnecki<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-08-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>alexey.chemichev<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-18</text:span></text:p> </table:table-cell> @@ -4827,11 +4849,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yogesh Desai<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kenneth Koski<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ackepenek<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-21</text:span></text:p> </table:table-cell> @@ -4841,11 +4863,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michal Kubecek<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-06-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Saunders<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-06-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Akash Deshpande<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-13</text:span></text:p> </table:table-cell> @@ -4855,11 +4877,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sll<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-09-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pierre Lepage<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tibor Móger<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-06</text:span></text:p> </table:table-cell> @@ -4869,11 +4891,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>George Korepanov<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-01-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeremy Bicha<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-02-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeevan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-04</text:span></text:p> </table:table-cell> @@ -4883,11 +4905,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexey Vlasov<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>fxwan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yash Srivastav<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-06-20</text:span></text:p> </table:table-cell> @@ -4897,11 +4919,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Your Name<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>G??bor Koruhely<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Furkan Tokac<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-25</text:span></text:p> </table:table-cell> @@ -4911,11 +4933,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>martinb214<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2017-11-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jon Nermut<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Denis Arnaud<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-16</text:span></text:p> </table:table-cell> @@ -4925,11 +4947,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dmitri Kharchev<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andika Triwidada<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Victor Mireyev<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-05-04</text:span></text:p> </table:table-cell> @@ -4939,11 +4961,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>George Wood<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-07-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Réka Csékei<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Simon Quigley<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-11</text:span></text:p> </table:table-cell> @@ -4953,11 +4975,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Izabela Bakollari<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alyssa Ross<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tóth Attila<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-30</text:span></text:p> </table:table-cell> @@ -4967,11 +4989,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dawid Gan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sass Dávid<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>kaishu-sahu<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-27</text:span></text:p> </table:table-cell> @@ -4981,11 +5003,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Muzaffer Kadir YILMAZ<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander Farrow<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jaromir Wysoglad<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-27</text:span></text:p> </table:table-cell> @@ -4995,11 +5017,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>DarkByt31<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>wishawa<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cor Nouws<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-23</text:span></text:p> </table:table-cell> @@ -5009,11 +5031,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>John Zhang<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-09-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mayank Suman<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-10-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>shameempk<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-10-09</text:span></text:p> </table:table-cell> @@ -5023,11 +5045,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Batuhan Görkem Benzer<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Desmin Alpaslan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luca Carlon<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-11</text:span></text:p> </table:table-cell> @@ -5037,11 +5059,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Burak Bala<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marina Latini<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kris van der Merwe<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-16</text:span></text:p> </table:table-cell> @@ -5051,11 +5073,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>james<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrew Lee (李健秋)<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Louis Fuchs<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-10</text:span></text:p> </table:table-cell> @@ -5065,11 +5087,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Fatih<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yunusemre Şentürk<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ilkyu Ju<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-08</text:span></text:p> </table:table-cell> @@ -5079,11 +5101,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Luke Dixon<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ismael Olea<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sven Lüppken<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-30</text:span></text:p> </table:table-cell> @@ -5093,11 +5115,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zeynep İnkaya<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gül Toksöz<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bartu Bayazıt<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> @@ -5107,11 +5129,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ShyamPraveenSingh<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>DuP-491<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>siddheshpatil777<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-19</text:span></text:p> </table:table-cell> @@ -5121,11 +5143,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>princesinghtomar<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alchemist<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Quentin PAGÈS<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-06</text:span></text:p> </table:table-cell> @@ -5135,11 +5157,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Quan Nguyen<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eyal Rozenberg<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Buse Orak<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-13</text:span></text:p> </table:table-cell> @@ -5149,11 +5171,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Winston Min Tjong<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Panos<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>rounak<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-31</text:span></text:p> </table:table-cell> @@ -5163,11 +5185,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihail Balabanov<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>haru-02<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sabyasachi Bhoi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-07-22</text:span></text:p> </table:table-cell> @@ -5177,11 +5199,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>oguzbalkaya<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-08-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ankur Khandelwal<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-08-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karan Abrol<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-08-11</text:span></text:p> </table:table-cell> @@ -5191,11 +5213,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Emanuel Schorsch<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-10-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Harjot<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-11-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pesi Taototo<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2021-12-05</text:span></text:p> </table:table-cell> @@ -5205,11 +5227,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kunal Pawar<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>psidiumcode<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gautham Krishnan<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-01</text:span></text:p> </table:table-cell> @@ -5219,11 +5241,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vincent Reher<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lukas<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nazanin yadi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-03</text:span></text:p> </table:table-cell> @@ -5233,11 +5255,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mahdi Tizabi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Lopatin<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sam James<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-02</text:span></text:p> </table:table-cell> @@ -5247,11 +5269,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>insanetree<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nalini Prasad Dash<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Emanuele Goldoni<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-07</text:span></text:p> </table:table-cell> @@ -5261,11 +5283,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>DowwdyJ<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>PL<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Uday Sharma<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-11</text:span></text:p> </table:table-cell> @@ -5275,11 +5297,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>niket1322git<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abdallah Elhdad<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>MoazAlaa<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-05</text:span></text:p> </table:table-cell> @@ -5289,11 +5311,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jani Saranpää<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Khaled Hosny<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-07-10</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Deepika Goyal<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-17</text:span></text:p> </table:table-cell> @@ -5303,11 +5325,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bayram Çiçek<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Eric Fallon<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-08-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cosmin Humeniuc<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-21</text:span></text:p> </table:table-cell> @@ -5317,11 +5339,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeff Huang<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-11-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Achintya Sharma<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-11-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Declan Fodor<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-23</text:span></text:p> </table:table-cell> @@ -5331,54 +5353,54 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Beeram_12<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Antony<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Juan José González<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashwani5009<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-07</text:span></text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>colton Garrett<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yuki Joou<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-06-10</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Hagen<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-07-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Per99<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-07-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eloi Montañés<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Usman Akinyemi<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chizoba ODINAKA<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Muluh MG Godson<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-17</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jack Honour<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>anonymotter<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shardul Vikram Singh<text:line-break/>Commits: 2<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-29</text:span></text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>NeilBrown<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-28</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -5387,11 +5409,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nick Savage<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Neil Stalker<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Evertjan Garretsen<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-04</text:span></text:p> </table:table-cell> @@ -5401,11 +5423,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>krishnan parthasarathi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rubén Jáñez<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Trevor Murphy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-20</text:span></text:p> </table:table-cell> @@ -5415,11 +5437,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adrià Cereto Massagué<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kalman Kemenczy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexandre Fournier<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-06</text:span></text:p> </table:table-cell> @@ -5429,11 +5451,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pavel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>camille<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Freek de Kruijf<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-19</text:span></text:p> </table:table-cell> @@ -5443,11 +5465,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dan Corneanu<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>armijn<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2010-12-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AWASHIRO Ikuya<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-04</text:span></text:p> </table:table-cell> @@ -5457,11 +5479,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nikita Ofitserov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Guillaume Fillol<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pgajdos<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-31</text:span></text:p> </table:table-cell> @@ -5471,11 +5493,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrey Turkin<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Danny Roberts<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Yves Royer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-07</text:span></text:p> </table:table-cell> @@ -5485,11 +5507,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alberto Ruiz<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-31</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paulo José<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dona Hertel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p> </table:table-cell> @@ -5499,11 +5521,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Cheney<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan Nieuwenhuizen<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cassio Neri<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-05-01</text:span></text:p> </table:table-cell> @@ -5513,11 +5535,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>William Lachance<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeff Aigner<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Penzes<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-14</text:span></text:p> </table:table-cell> @@ -5527,11 +5549,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ta Duc Tung<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christophe Strobbe<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-08-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andor Ertsey<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-04</text:span></text:p> </table:table-cell> @@ -5541,11 +5563,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bernhard M. Wiedemann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefan Weigel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pádraig Brady<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-21</text:span></text:p> </table:table-cell> @@ -5555,11 +5577,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matt Pratt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karl Koehler<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Modestas Rimkus<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-21</text:span></text:p> </table:table-cell> @@ -5569,11 +5591,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Serg Bormant<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Juan Pablo Martínez Cortés<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jesse<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-14</text:span></text:p> </table:table-cell> @@ -5583,11 +5605,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Moritz Bechler<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>James C<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tzvetelina Tzeneva<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-22</text:span></text:p> </table:table-cell> @@ -5597,11 +5619,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joshua Cogliati<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kenneth Aafløy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rich Wareham<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-12</text:span></text:p> </table:table-cell> @@ -5611,11 +5633,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ankitkumar Rameshchandra Patel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Richard<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-01-31</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>dbarisakkurt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-02</text:span></text:p> </table:table-cell> @@ -5625,11 +5647,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Carsten Niehaus<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Masataka Shinke<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Fernando Governatore<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-02-25</text:span></text:p> </table:table-cell> @@ -5639,11 +5661,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Italo Vignoli<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karan Desai<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arfrever Frehtes Taifersar Arahesis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-02</text:span></text:p> </table:table-cell> @@ -5653,11 +5675,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laureano G. Linde<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Udo Schuermann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ross Burton<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-18</text:span></text:p> </table:table-cell> @@ -5667,11 +5689,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Florent Gallaire<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-21</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vicente Rafael Estevez Vacas<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Monica Ramirez Arceda<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-23</text:span></text:p> </table:table-cell> @@ -5681,11 +5703,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xavi Escriche Galindo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jose Manuel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Miguel Fernández<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-26</text:span></text:p> </table:table-cell> @@ -5695,11 +5717,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jordi Mallach<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gordon Lack<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Naber<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-09</text:span></text:p> </table:table-cell> @@ -5709,11 +5731,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alberto Ferreira<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Travis Carter<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Tillemans<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-26</text:span></text:p> </table:table-cell> @@ -5723,11 +5745,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kevin Peng<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tim-Philipp Müller<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-07-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tim Janik<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-10</text:span></text:p> </table:table-cell> @@ -5737,11 +5759,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kevin Hausmann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dave Richards<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dave<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-23</text:span></text:p> </table:table-cell> @@ -5751,11 +5773,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nico Weyand<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Douglas Rodrigues de Almeida<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sagar<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-09-15</text:span></text:p> </table:table-cell> @@ -5765,11 +5787,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Neven Ćosić<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-10-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chen ZuoJun<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-10-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Philipp Kaluza<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-10-21</text:span></text:p> </table:table-cell> @@ -5779,11 +5801,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathieu D<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Naser Sharifi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paula Mannes<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-11-30</text:span></text:p> </table:table-cell> @@ -5793,11 +5815,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pkoroau pkoroau<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Quentin Pradet<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tadele Assefa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-15</text:span></text:p> </table:table-cell> @@ -5807,11 +5829,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>OKANO Takayoshi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-01-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mark Wright<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christopher Hotchkiss<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-15</text:span></text:p> </table:table-cell> @@ -5821,11 +5843,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Brown<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hamza Abdelkebir<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Valek Filippov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-23</text:span></text:p> </table:table-cell> @@ -5835,11 +5857,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jiri Blecha<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gábor Nyers<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vojta Koukal<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-03</text:span></text:p> </table:table-cell> @@ -5849,11 +5871,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steven Meyer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>vincent<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johannes Widmer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-23</text:span></text:p> </table:table-cell> @@ -5863,11 +5885,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lucian Constantin<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomas Turek<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Goran Rakic<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-30</text:span></text:p> </table:table-cell> @@ -5877,11 +5899,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Honza Minarik<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashish Banerjee<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Irányossy Knoblauch Artúr<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-06</text:span></text:p> </table:table-cell> @@ -5891,11 +5913,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pavel Kacer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tinderbox<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alex Ivan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-15</text:span></text:p> </table:table-cell> @@ -5905,11 +5927,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan Bobisud<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yohei Yukawa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-05-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ricardobotto<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-05-18</text:span></text:p> </table:table-cell> @@ -5919,11 +5941,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Neil Voss (fourier)<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-05-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tim Richardson<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Eric S. Raymond<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-07</text:span></text:p> </table:table-cell> @@ -5933,11 +5955,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Benjamin Otte<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peng Gao<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sonakshi nathani<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-26</text:span></text:p> </table:table-cell> @@ -5947,11 +5969,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Erik Auerswald<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Reem.ALotaibi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Duelli<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-01</text:span></text:p> </table:table-cell> @@ -5961,11 +5983,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adrien<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stefano Facchini<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>James Michael DuPont<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-08-30</text:span></text:p> </table:table-cell> @@ -5975,11 +5997,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Danny Brown<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-09-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henning Diedler<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>matt_51<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-05</text:span></text:p> </table:table-cell> @@ -5989,11 +6011,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>yjw9012<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2013-12-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ayantha Randika<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michal Siedlaczek<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-01-25</text:span></text:p> </table:table-cell> @@ -6003,11 +6025,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>christianju<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mathias Supp<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-02-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tarun Kumar<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-07</text:span></text:p> </table:table-cell> @@ -6017,11 +6039,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>roopak12345<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Manas Joshi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>gdm.manmeet<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-18</text:span></text:p> </table:table-cell> @@ -6031,11 +6053,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hannah Lyhne<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-04-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aditya Kale<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-04-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ryo ONODERA<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-04-07</text:span></text:p> </table:table-cell> @@ -6045,11 +6067,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alex Gulyás<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-04-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Apostolos Syropoulos<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nrbrtx@gmail.com<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-10</text:span></text:p> </table:table-cell> @@ -6059,11 +6081,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Damien Chambe<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robin Kumar<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dushyant Bhalgami<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-07-04</text:span></text:p> </table:table-cell> @@ -6073,11 +6095,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Owens<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-07-27</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Scheidt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>xjcl<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-04</text:span></text:p> </table:table-cell> @@ -6087,11 +6109,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hiroto Kagotani<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jörg Sonnenberger<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-28</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Phyzer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-13</text:span></text:p> </table:table-cell> @@ -6101,11 +6123,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Seyeong Kim<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lennart Poettering<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arkadiusz Miśkiewicz<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-09</text:span></text:p> </table:table-cell> @@ -6115,11 +6137,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Victor Portella<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonathan Riddell<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Foo Lai Choo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-11-26</text:span></text:p> </table:table-cell> @@ -6129,11 +6151,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mattias Põldaru<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Juan A. Suarez Romero<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maarten Hoes<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2014-12-20</text:span></text:p> </table:table-cell> @@ -6143,11 +6165,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas K. Huettel (dilfridge)<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Péter Szathmáry<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Edmund Laugasson<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> </table:table-cell> @@ -6157,11 +6179,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zirk<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Simon Wilper<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Swachhand Lokhande<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-07</text:span></text:p> </table:table-cell> @@ -6171,11 +6193,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Karthick Prasad Gunasekaran<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>robert Babiak<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-03-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dobra Gabor<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-02</text:span></text:p> </table:table-cell> @@ -6185,11 +6207,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sujith Sudhakaran<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Petr Gajdos<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ritztro<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-11</text:span></text:p> </table:table-cell> @@ -6199,11 +6221,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yurii Kolesnykov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-05-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sam Tuke<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-05-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>umairshahid<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-05-29</text:span></text:p> </table:table-cell> @@ -6213,11 +6235,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jihui Choi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-06-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Raj Natarajan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-07-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Florian Effenberger<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-08-04</text:span></text:p> </table:table-cell> @@ -6227,11 +6249,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nathan Wells<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-09-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joan Paraiso<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-09-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Slávek Banko<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-10</text:span></text:p> </table:table-cell> @@ -6241,11 +6263,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>marstay<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-10-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ghasan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihovil Stanić<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-11</text:span></text:p> </table:table-cell> @@ -6255,11 +6277,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Steve Hart<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Reto Schneider<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Willian Briotto<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-21</text:span></text:p> </table:table-cell> @@ -6269,11 +6291,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Paolo Bernardi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pierre Sauter<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-12-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>William Bonnet<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2015-12-05</text:span></text:p> </table:table-cell> @@ -6283,11 +6305,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Debarshi Ray<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>shubhamtibra<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nusaiba Al-Kindi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-21</text:span></text:p> </table:table-cell> @@ -6297,11 +6319,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marc Bessières<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-01-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christoph Brill<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hank Leininger<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-27</text:span></text:p> </table:table-cell> @@ -6311,11 +6333,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>HaidongWu<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohamed Thabet<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dag Wieers<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-13</text:span></text:p> </table:table-cell> @@ -6325,11 +6347,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gleb Mishchenko<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>JBurant<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-04-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sunweb<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-04-08</text:span></text:p> </table:table-cell> @@ -6339,11 +6361,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nurhak ALTIN<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Prashant<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-17</text:span></text:p> </table:table-cell> @@ -6353,11 +6375,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Helena Svobodova<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zhengqiang Wang<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-06-02</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>anwilli5<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-06-06</text:span></text:p> </table:table-cell> @@ -6367,11 +6389,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Otto Kekäläinen<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-07-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julian Mehne<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>James Clarke<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-05</text:span></text:p> </table:table-cell> @@ -6381,11 +6403,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>rpmbuild<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zenaan Harkness<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-08-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Mussap<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-02</text:span></text:p> </table:table-cell> @@ -6395,11 +6417,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jookia<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-08</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mirco Rondini<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-10</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chandanathil P. Geevan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-24</text:span></text:p> </table:table-cell> @@ -6409,11 +6431,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tamás Gulácsi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Owen Genat<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christina Accione<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-11-22</text:span></text:p> </table:table-cell> @@ -6423,11 +6445,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justn Lavoie<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2016-12-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>thvallois<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-01-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Saurav Sachidanand<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-01-17</text:span></text:p> </table:table-cell> @@ -6437,11 +6459,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>yellowflash104<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-02-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Gorse<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Atef hares<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-12</text:span></text:p> </table:table-cell> @@ -6451,11 +6473,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Umang Jain<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-13</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>udaycoder<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dennis Nielen<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-03-21</text:span></text:p> </table:table-cell> @@ -6465,11 +6487,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabriel Herrera<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Werner Tietz<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nikki<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-12</text:span></text:p> </table:table-cell> @@ -6479,11 +6501,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Naeil ZOUEIDI<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>frederic vroman<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-12</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kappanneo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-29</text:span></text:p> </table:table-cell> @@ -6493,11 +6515,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Francesco Gradi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-05-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>dcvb<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-07-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sean Stangl<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-07-09</text:span></text:p> </table:table-cell> @@ -6507,11 +6529,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aditya Dewan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-07-15</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>serdarot5<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-08-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sanjaykumar Girishkumar Patel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-08-19</text:span></text:p> </table:table-cell> @@ -6521,11 +6543,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>66kesara99<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-09-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stoyan Dimitrov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>nigeldias<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-02</text:span></text:p> </table:table-cell> @@ -6535,11 +6557,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tjipke van der Heide<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kristóf Umann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-10-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>qzheng<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2017-11-14</text:span></text:p> </table:table-cell> @@ -6549,11 +6571,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dominique Leuenberger<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-01-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabriele Ponzo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rostislav Kondratenko<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-02-21</text:span></text:p> </table:table-cell> @@ -6563,11 +6585,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hrishabh<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-03-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Álex Puchades<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-03-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>kowther<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-06</text:span></text:p> </table:table-cell> @@ -6577,11 +6599,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kevin Brubeck Unhammer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Diadlo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-05-23</text:span></text:p> </table:table-cell> @@ -6591,11 +6613,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>orbea<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-06-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Louis Sautier<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-06-10</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ali Ahmadi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-06-26</text:span></text:p> </table:table-cell> @@ -6605,11 +6627,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Caio B. Silva<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-07-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>U-Vladimir\Vadim<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-08-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Don Lewis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-08-22</text:span></text:p> </table:table-cell> @@ -6619,11 +6641,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Leo Moons<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-08-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AlicVB<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-10-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alain Romedenne<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-22</text:span></text:p> </table:table-cell> @@ -6633,11 +6655,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rizal Muttaqin<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Çağrı Dolaz<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Doğa Deniz Arıcı<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2018-12-30</text:span></text:p> </table:table-cell> @@ -6647,11 +6669,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Komal<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ajay Mahato<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jim Jagielski<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-01-23</text:span></text:p> </table:table-cell> @@ -6661,11 +6683,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Schroeder<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-02-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sainal Shah<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-10</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Wenzhe Pei<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-11</text:span></text:p> </table:table-cell> @@ -6675,11 +6697,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>kushagrakasliwal1<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-18</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Greg Veldman<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-24</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gagandeep Singh<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-01</text:span></text:p> </table:table-cell> @@ -6689,11 +6711,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Regis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Milutin Smiljanic<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-04-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrew Hyatt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-02</text:span></text:p> </table:table-cell> @@ -6703,11 +6725,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jay Bingham<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-06-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jim MacArthur<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-06-11</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jim MacArthur<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-07-07</text:span></text:p> </table:table-cell> @@ -6717,11 +6739,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vipul Gupta<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-08-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kovács László Zoltán<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-08-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>AWASHIRO Ikuya<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-08-17</text:span></text:p> </table:table-cell> @@ -6731,11 +6753,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nicolas Fella<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-09-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dennis Schridde<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-10-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Levine<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-10-18</text:span></text:p> </table:table-cell> @@ -6745,11 +6767,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Milata<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>shashikdm<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Selim Şeker<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-18</text:span></text:p> </table:table-cell> @@ -6759,11 +6781,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>erto<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrés Maldonado<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>cagatay<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2019-12-28</text:span></text:p> </table:table-cell> @@ -6773,11 +6795,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Louis Meyrat<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cumali Toprak<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-27</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Serkan Özkaya<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-01-28</text:span></text:p> </table:table-cell> @@ -6787,11 +6809,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>praneshulleri<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adam Majer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sarabjot Singh<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-28</text:span></text:p> </table:table-cell> @@ -6801,11 +6823,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>TJ Holt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>So Yanaihara<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Harshit Jain<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-03-23</text:span></text:p> </table:table-cell> @@ -6815,11 +6837,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>miki<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander Volkov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Coming___soON<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-09</text:span></text:p> </table:table-cell> @@ -6829,11 +6851,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Keller<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Whitaker<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>vgeof<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-09</text:span></text:p> </table:table-cell> @@ -6843,11 +6865,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Muhammet Kara<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-05-24</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ilia Sheshukov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>zdposter<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-10</text:span></text:p> </table:table-cell> @@ -6857,11 +6879,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pranam Lashkari<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-20</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shiro Kawai<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-06-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Baurzhan Muftakhidinov<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-07-12</text:span></text:p> </table:table-cell> @@ -6871,11 +6893,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tgds03<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-16</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ramtk6726<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-16</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>OctopusET<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-08-17</text:span></text:p> </table:table-cell> @@ -6885,11 +6907,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Felix Wiegand<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-09-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Travis Stewart<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Bryan Gazali<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-03</text:span></text:p> </table:table-cell> @@ -6899,11 +6921,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Platon Pronko<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>gerrit<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-10-19</text:span></text:p> </table:table-cell> @@ -6913,11 +6935,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jeff Law<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arda<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>lastirembender<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-21</text:span></text:p> </table:table-cell> @@ -6927,11 +6949,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ganeshdevare<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Edward Lynch<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-29</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>cu-16bcs1798<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2020-12-02</text:span></text:p> </table:table-cell> @@ -6941,11 +6963,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>csegura<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-03</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Isah Bllaca<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>anirudhS<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-01-10</text:span></text:p> </table:table-cell> @@ -6955,11 +6977,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Linus Heckemann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-07</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>vipbuoy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Quentin DELAGE<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-02-18</text:span></text:p> </table:table-cell> @@ -6969,11 +6991,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>heet-2312<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-01</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>John<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ViswaasLP<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-12</text:span></text:p> </table:table-cell> @@ -6983,11 +7005,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>arpit1912<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-19</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>pekka-dev<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mehmet Sait Gülmez<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-22</text:span></text:p> </table:table-cell> @@ -6997,11 +7019,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aritz Erkiaga<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-25</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>anirudh4583<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-26</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Blatter<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-03-31</text:span></text:p> </table:table-cell> @@ -7011,11 +7033,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Oleksii Makhotin<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Vatsal32<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Carmen Bianca Bakker<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-04-11</text:span></text:p> </table:table-cell> @@ -7025,11 +7047,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joshua Williams<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-05-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>MarcoFalke<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-06-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Uwe Auer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-07-12</text:span></text:p> </table:table-cell> @@ -7039,11 +7061,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rishav Chattopadhya<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-10-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>mwarner<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-11-25</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>TheRock Builder<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-12-03</text:span></text:p> </table:table-cell> @@ -7053,11 +7075,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Krzysztof Hałasa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2021-12-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>alt<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arjun<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-23</text:span></text:p> </table:table-cell> @@ -7067,11 +7089,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>javierde22<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-01-30</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>jwtiyar nariman<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-02-14</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adityarup Laha<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-12</text:span></text:p> </table:table-cell> @@ -7081,11 +7103,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lemures Lemniscati<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sarrah Bastawala<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-03-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Behrad Khorram<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-03</text:span></text:p> </table:table-cell> @@ -7095,11 +7117,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>hasban12138<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-04-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Daniel Kamil Kozar<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-05-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dietrich Schulten<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-11</text:span></text:p> </table:table-cell> @@ -7109,11 +7131,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mahdyar M. M. Sadeghi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-22</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mahkame Arabgari<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-22</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Parsa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-25</text:span></text:p> </table:table-cell> @@ -7123,11 +7145,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>m.hashemian<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-06-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>am.faraji<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-09</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohsen Rahimi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-10</text:span></text:p> </table:table-cell> @@ -7137,11 +7159,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arman Rezaei<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-07-11</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thierry Emery<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-08</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Niko Fink<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-08-09</text:span></text:p> </table:table-cell> @@ -7151,11 +7173,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aleksa Savic<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ling Yang<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aron Fischer<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-09-23</text:span></text:p> </table:table-cell> @@ -7165,11 +7187,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Martin Schumann<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-10</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hemant Kumar Singh<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-18</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henner Drewes<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-21</text:span></text:p> </table:table-cell> @@ -7179,11 +7201,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Amarjargal Gundjalam<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-10-31</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>zonnebloempje<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Siddharth<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-11-09</text:span></text:p> </table:table-cell> @@ -7193,11 +7215,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>ahsmha<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-12-26</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Brett T. Warden<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2022-12-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Douglas Guptill<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-01-01</text:span></text:p> </table:table-cell> @@ -7207,11 +7229,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Devansh Jain<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Greg Kelesidis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-04</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>deepanshuraj099<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-12</text:span></text:p> </table:table-cell> @@ -7221,11 +7243,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>WANG Xuerui<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sarthak Roy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-23</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Grigory A. Mozhaev<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-02-27</text:span></text:p> </table:table-cell> @@ -7235,11 +7257,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>DrGigioSan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-14</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nabeel Siddiqui<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-19</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sabri Unal<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-03-29</text:span></text:p> </table:table-cell> @@ -7249,11 +7271,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Patrick Luby<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cip Cipricus<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-15</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>shehr<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-05-17</text:span></text:p> </table:table-cell> @@ -7263,11 +7285,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michel Weimerskirch<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-06-09</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joel Puronaho<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-06-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nay Catina Dia-Schneebeli<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-07-04</text:span></text:p> </table:table-cell> @@ -7277,11 +7299,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dung.Saga<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-06</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Cristina Mustatea<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-21</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ioan-Teodor Teugea<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-09-23</text:span></text:p> </table:table-cell> @@ -7291,11 +7313,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Willian Pessoa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-12</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Federico Gallo Herosa<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-13</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Aml-Hassan-Abd-El-hamid<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-10-17</text:span></text:p> </table:table-cell> @@ -7305,11 +7327,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Frank Steiner<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-11-23</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lodev<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-05</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ricardo Donino<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-07</text:span></text:p> </table:table-cell> @@ -7319,11 +7341,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Shachar Shemesh<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2023-12-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jamie Douglass<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-01</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>alisafaya<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-07</text:span></text:p> </table:table-cell> @@ -7333,11 +7355,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Hassan Sajjad<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-29</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adlair Cerecedo-Mendez<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-01-30</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Kevin Ottens<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-02-02</text:span></text:p> </table:table-cell> @@ -7347,11 +7369,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>tbalaj<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-04</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jonah Janzen<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-07</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Fridrich Strba<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-12</text:span></text:p> </table:table-cell> @@ -7361,11 +7383,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>wilmhit<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mohit Marathe<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-20</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Christopher Loi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-03-21</text:span></text:p> </table:table-cell> @@ -7375,11 +7397,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heikki Ilvesmäki<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-05</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Nima Mahanloo<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-04-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>richtrimble<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-06-11</text:span></text:p> </table:table-cell> @@ -7389,11 +7411,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Sven Göthel<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Evaggelou Panagiotis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-06</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>TH Huang<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-08-12</text:span></text:p> </table:table-cell> @@ -7403,11 +7425,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>sopy<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-09-28</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Abraham Samuel Adekunle<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-12</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Barry-Thomas-Paul: Moss<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-14</text:span></text:p> </table:table-cell> @@ -7417,11 +7439,11 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>folandidi<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-17</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Gill<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-17</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lue_lueita<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-10-25</text:span></text:p> </table:table-cell> @@ -7431,15 +7453,18 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>lynn_edem<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-02</text:span></text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andre Herbst<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-03</text:span></text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Harris Popal<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-05</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ariel Darshan<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-10</text:span></text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>zdavis<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> @@ -7448,16 +7473,16 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alin Andrei Abahnencei<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-27</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Avramoniu Calin<text:line-break/><text:soft-page-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Avramoniu Calin<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-11-27</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>B. Antonio Fernández<text:line-break/><text:soft-page-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johann Lorber<text:line-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-04</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Muir<text:line-break/><text:soft-page-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-18</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.D472" office:value-type="string"> - <text:p text:style-name="P2"/> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Taichi Haradaguchi<text:line-break/><text:soft-page-break/>Commits: 1<text:line-break/>Joined: <text:span text:style-name="T2">2024-12-31</text:span></text:p> </table:table-cell> </table:table-row> </table:table> @@ -7469,16 +7494,16 @@ <table:table-column table:style-name="Tabelle2.D"/> <table:table-row> <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Balland<text:line-break/>Commits: 71<text:line-break/><text:soft-page-break/>Joined: <text:span text:style-name="T2">2023-06-02</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent Balland<text:line-break/>Commits: 76<text:line-break/>Joined: <text:span text:style-name="T2">2023-06-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent BP<text:line-break/>Commits: 60<text:line-break/><text:soft-page-break/>Joined: <text:span text:style-name="T2">2015-11-19</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Laurent BP<text:line-break/>Commits: 60<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-19</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>andreas kainz<text:line-break/>Commits: 23<text:line-break/><text:soft-page-break/>Joined: <text:span text:style-name="T2">2020-04-18</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>andreas kainz<text:line-break/>Commits: 23<text:line-break/>Joined: <text:span text:style-name="T2">2020-04-18</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Francisco Adrián Sánchez<text:line-break/>Commits: 17<text:line-break/><text:soft-page-break/>Joined: <text:span text:style-name="T2">2016-10-07</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Francisco Adrián Sánchez<text:line-break/>Commits: 17<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-07</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -8115,7 +8140,7 @@ </text:list> <text:p text:style-name="Text_20_body">Do note that LibreOffice used to be divided into 20 git repositories. Pushing a change into all repositories will be counted as 20 commits as there is no way to distinguish this from 20 separate commits.</text:p> <text:h text:style-name="P5" text:outline-level="2"><text:bookmark text:name="wiki"/>Total contributions to the TDF Wiki</text:h> - <text:p text:style-name="P6">2940 individuals contributed: </text:p> + <text:p text:style-name="P6">2944 individuals contributed: </text:p> <table:table table:name="Tabelle5" table:style-name="Tabelle5"> <table:table-column table:style-name="Tabelle5.A"/> <table:table-column table:style-name="Tabelle5.B"/> @@ -8123,10 +8148,10 @@ <table:table-column table:style-name="Tabelle5.D"/> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hrbrgr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hrbrgr</text:a> (67495) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hrbrgr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hrbrgr</text:a> (68925) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beluga" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beluga</text:a> (55481) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beluga" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beluga</text:a> (55527) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marric" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marric</text:a> (29451) </text:p> @@ -8137,30 +8162,30 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HanV" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HanV</text:a> (23895) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HanV" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HanV</text:a> (24272) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Raal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Raal</text:a> (23720) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Raal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Raal</text:a> (23968) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bammbamm7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bammbamm7</text:a> (22473) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bammbamm7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bammbamm7</text:a> (22727) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manuelf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manuelf</text:a> (19913) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manuelf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manuelf</text:a> (20493) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Akurery" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Akurery</text:a> (16864) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Akurery" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Akurery</text:a> (16948) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bantoniof" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bantoniof</text:a> (11861) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bantoniof" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bantoniof</text:a> (11867) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pierre-yves%20samyn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pierre-yves samyn</text:a> (10099) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Filmsi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Filmsi</text:a> (9642) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Filmsi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Filmsi</text:a> (9938) </text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -8168,7 +8193,7 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:K-j" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">K-j</text:a> (9376) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fito" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jayme Barrientos, Adolfo</text:a> (8930) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fito" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jayme Barrientos, Adolfo</text:a> (8933) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stevefanning" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stevefanning</text:a> (8845) </text:p> @@ -8179,13 +8204,13 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dennisroczek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roczek, Dennis</text:a> (8308) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dennisroczek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roczek, Dennis</text:a> (8322) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kelemeng" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kelemeng</text:a> (6991) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sophi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gautier, Sophie</text:a> (5733) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sophi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gautier, Sophie</text:a> (5744) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tagezi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Goncharuk, Lera</text:a> (5436) </text:p> @@ -8207,16 +8232,16 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Martin187" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Martin187</text:a> (4220) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kompilainenn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kompilainenn</text:a> (4294) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kompilainenn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kompilainenn</text:a> (4205) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Martin187" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Martin187</text:a> (4220) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tagezibot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tagezibot</text:a> (3924) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jumbo444" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Balland-Poirier, Laurent</text:a> (4048) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jumbo444" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Balland-Poirier, Laurent</text:a> (3808) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tagezibot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tagezibot</text:a> (3924) </text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -8244,7 +8269,7 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rizmut" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rizmut</text:a> (3295) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VMelnik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VMelnik</text:a> (3275) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VMelnik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VMelnik</text:a> (3286) </text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -8263,7 +8288,7 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ohallot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hallot, Olivier</text:a> (2500) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ohallot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hallot, Olivier</text:a> (2505) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PlateauWolf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PlateauWolf</text:a> (2398) </text:p> @@ -8272,7 +8297,7 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ronnie%20rg8888" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ronnie rg8888</text:a> (2352) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:X1sc0" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">X1sc0</text:a> (2229) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:X1sc0" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">X1sc0</text:a> (2236) </text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -8280,44 +8305,47 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Diegoperesmarques" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Diegoperesmarques</text:a> (2207) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LobaLuna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LobaLuna</text:a> (2171) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LobaLuna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LobaLuna</text:a> (2174) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lyzbet" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lyzbet</text:a> (2140) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RBd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bielefeld, Rainer</text:a> (2077) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Enoki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Enoki</text:a> (2079) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Enoki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Enoki</text:a> (2065) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RBd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bielefeld, Rainer</text:a> (2077) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Strepon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Horáček, Stanislav</text:a> (2008) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Floeff" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Effenberger, Florian</text:a> (1761) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nobu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nobu</text:a> (1849) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Junmeguro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Junmeguro</text:a> (1598) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Floeff" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Effenberger, Florian</text:a> (1764) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Junmeguro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Junmeguro</text:a> (1741) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bjoern-michaelsen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michaelsen, Björn</text:a> (1561) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Iva%20Ot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Iva Ot</text:a> (1545) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AAAA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Haradaguchi, Taichi</text:a> (1503) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AAAA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Haradaguchi, Taichi</text:a> (1520) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kolarkater" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kolarkater</text:a> (1418) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcpare" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcpare</text:a> (1403) </text:p> </table:table-cell> @@ -8325,13 +8353,13 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blue.painting" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Blue.painting</text:a> (1393) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GerryT" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GerryT</text:a> (1370) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GerryT" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GerryT</text:a> (1371) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Naruoga" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Naruoga</text:a> (1239) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Riyadh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Riyadh</text:a> (1211) </text:p> </table:table-cell> @@ -8339,13 +8367,13 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Adailton" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Adailton</text:a> (1203) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gbpacheco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Buzzatti Pacheco, Gustavo</text:a> (1201) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gbpacheco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Buzzatti Pacheco, Gustavo</text:a> (1202) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mirek2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mirek2</text:a> (1162) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cornouws" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nouws, Cor</text:a> (1147) </text:p> </table:table-cell> @@ -8355,11 +8383,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Haas,%20Uwe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Haas, Uwe</text:a> (1095) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Clement21.philippe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clement21.philippe</text:a> (1076) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:E.le-gall" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">E.le-gall</text:a> (1027) </text:p> </table:table-cell> @@ -8367,14 +8395,14 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davido" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ostrovsky, David</text:a> (1011) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Htietze" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tietze, Heiko</text:a> (998) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Regina" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Henschel, Regina</text:a> (996) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Htietze" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tietze, Heiko</text:a> (1000) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Regina" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Henschel, Regina</text:a> (997) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nnino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Novak, Nino</text:a> (976) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8383,40 +8411,40 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jucasaca" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sanz Cabrero, Juan Carlos</text:a> (936) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tom</text:a> (926) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LLAP016" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LLAP016</text:a> (875) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tom</text:a> (926) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chtfn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guillou, Stéphane</text:a> (872) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chtfn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guillou, Stéphane</text:a> (876) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RobertG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RobertG</text:a> (829) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LLAP016" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LLAP016</text:a> (875) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:H-k" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">H-k</text:a> (804) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RobertG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RobertG</text:a> (829) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mike.saunders" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mike.saunders</text:a> (766) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:H-k" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">H-k</text:a> (804) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Drew" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Drew</text:a> (748) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mike.saunders" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mike.saunders</text:a> (768) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maintenance%20script" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maintenance script</text:a> (747) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Drew" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Drew</text:a> (748) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Behrens, Thorsten</text:a> (747) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Behrens, Thorsten</text:a> (748) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maintenance%20script" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maintenance script</text:a> (747) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andreasma" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mantke, Andreas</text:a> (739) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8425,11 +8453,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Teo91" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Teo91</text:a> (733) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jmpierre" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jmpierre</text:a> (729) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Valjanovickova" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Valjanovickova</text:a> (715) </text:p> </table:table-cell> @@ -8437,13 +8465,13 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JanIversen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Iversen, Jan</text:a> (693) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vmiklos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vajna, Miklos</text:a> (690) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vmiklos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vajna, Miklos</text:a> (693) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ErAck" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rathke, Eike</text:a> (688) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lachend" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lachend</text:a> (685) </text:p> </table:table-cell> @@ -8453,39 +8481,39 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hazel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hazel</text:a> (639) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Caolan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">McNamara, Caolán</text:a> (611) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elmau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elmau</text:a> (609) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jlv" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jlv</text:a> (603) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sam%20m" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sam m</text:a> (598) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jmadero" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jmadero</text:a> (596) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Raulpacheco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Raulpacheco</text:a> (596) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cloph" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lohmaier, Christian</text:a> (580) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Caolan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">McNamara, Caolán</text:a> (564) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cloph" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lohmaier, Christian</text:a> (581) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dhsung" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dhsung</text:a> (557) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChristophNoack" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChristophNoack</text:a> (549) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paulo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paulo</text:a> (546) </text:p> </table:table-cell> @@ -8495,26 +8523,26 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Astron" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Knorr, Stefan</text:a> (521) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davidnelson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davidnelson</text:a> (517) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elianedomingos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elianedomingos</text:a> (508) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davidnelson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davidnelson</text:a> (517) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vsfoote" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foote, V Stuart</text:a> (507) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vsfoote" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foote, V Stuart</text:a> (513) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stahl, Michael</text:a> (497) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elianedomingos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elianedomingos</text:a> (508) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mikekaganski" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kaganski, Mike</text:a> (496) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stahl, Michael</text:a> (498) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mikekaganski" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kaganski, Mike</text:a> (497) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Reisi007" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Reisinger, Florian</text:a> (491) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8523,53 +8551,53 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jana.urbanova" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jana.urbanova</text:a> (478) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Petr-valach" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Petr-valach</text:a> (476) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Veracape" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Veracape</text:a> (472) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hellotheworld" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hellotheworld</text:a> (471) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sefran" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sefran</text:a> (466) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Philipz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Philips, Yousuf</text:a> (462) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kendy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Holešovský, Jan</text:a> (451) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pmladek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mladek, Petr</text:a> (450) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eskroni" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eskroni</text:a> (437) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Petr-valach" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Petr-valach</text:a> (437) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rmfaile" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rmfaile</text:a> (436) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Timotheonb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timotheonb</text:a> (429) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Libo02" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Libo02</text:a> (420) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Libo02" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Libo02</text:a> (422) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chris69" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chris69</text:a> (419) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gecko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gecko</text:a> (419) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kohei" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yoshida, Kohei</text:a> (410) </text:p> </table:table-cell> @@ -8579,11 +8607,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sebul" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sebul</text:a> (408) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Schiavinatto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Schiavinatto</text:a> (401) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Markus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mohrhard, Markus</text:a> (397) </text:p> </table:table-cell> @@ -8593,11 +8621,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexander%20Wilms" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexander Wilms</text:a> (392) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dtardon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tardon, David</text:a> (388) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gang65" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kosiorek, Bartosz</text:a> (388) </text:p> </table:table-cell> @@ -8607,11 +8635,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Opensoftpl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Opensoftpl</text:a> (381) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:StefanW" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">StefanW</text:a> (379) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Herissongrognon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herissongrognon</text:a> (378) </text:p> </table:table-cell> @@ -8621,26 +8649,26 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LenkaD" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LenkaD</text:a> (377) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emanuel%20Marcatinco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emanuel Marcatinco</text:a> (374) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Felipeviggiano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Felipeviggiano</text:a> (371) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kara" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kara, Muhammet</text:a> (368) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kara" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kara, Muhammet</text:a> (370) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thackert" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thackert</text:a> (359) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kitaygrad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kitaygrad</text:a> (347) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kitaygrad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kitaygrad</text:a> (350) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mayan%20Tigger" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mayan Tigger</text:a> (347) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8649,11 +8677,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cheche" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cheche</text:a> (336) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vpanter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vpanter</text:a> (333) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Naniud" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Naniud</text:a> (332) </text:p> </table:table-cell> @@ -8663,11 +8691,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Volkerme" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Volkerme</text:a> (329) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wget" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wget</text:a> (323) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arranna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arranna</text:a> (322) </text:p> </table:table-cell> @@ -8677,12 +8705,12 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Khanson679" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khanson679</text:a> (305) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bergmann, Stephan</text:a> (299) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bergmann, Stephan</text:a> (301) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zerng07" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tseng, Cheng-Chia</text:a> (294) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8691,11 +8719,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Librelegal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Librelegal</text:a> (292) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TorLillqvist" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lillqvist, Tor</text:a> (292) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emanuel%20A.%20Marcatinco%20B." text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emanuel A. Marcatinco B.</text:a> (290) </text:p> </table:table-cell> @@ -8703,41 +8731,41 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ansiklopedici" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ansiklopedici</text:a> (286) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Italovignoli" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vignoli, Italo</text:a> (283) </text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krypton" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Krypton</text:a> (283) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HARA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HARA</text:a> (279) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Italovignoli" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vignoli, Italo</text:a> (273) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Roman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roman</text:a> (272) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ayhanyalcinsoy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">YALÇINSOY, Ayhan</text:a> (269) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Epix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Epix</text:a> (268) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Helen%20russian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Helen russian</text:a> (268) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kaplan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kaplan, Lior</text:a> (267) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lodahl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lodahl</text:a> (264) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Roman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roman</text:a> (264) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dayeong" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dayeong</text:a> (263) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Twistios" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Twistios</text:a> (259) </text:p> </table:table-cell> @@ -8747,11 +8775,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Remarques" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Remarques</text:a> (252) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Deemonizer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Deemonizer</text:a> (248) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mars" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mars</text:a> (247) </text:p> </table:table-cell> @@ -8761,25 +8789,25 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Saraiki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Saraiki</text:a> (244) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Franklin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Franklin</text:a> (242) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Loic" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Loic</text:a> (240) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nemeth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nemeth</text:a> (239) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nemeth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nemeth</text:a> (240) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EricBright" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EricBright</text:a> (238) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jeanmi2403" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jeanmi2403</text:a> (237) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Steve" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steve</text:a> (237) </text:p> </table:table-cell> @@ -8789,11 +8817,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ithaldenni20" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ithaldenni20</text:a> (233) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mesho" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mesho</text:a> (233) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cbosdo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bosdonnat, Cédric</text:a> (231) </text:p> </table:table-cell> @@ -8801,56 +8829,56 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bedipp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bedipp</text:a> (226) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jbfaure" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jbfaure</text:a> (222) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jbfaure" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jbfaure</text:a> (223) </text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Óvári" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Óvári</text:a> (222) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kerwyn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kerwyn</text:a> (221) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Almusaireae" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Almusaireae</text:a> (219) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kkwet38" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kkwet38</text:a> (218) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gilvanvilarim" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gilvanvilarim</text:a> (217) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Khirano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khirano</text:a> (215) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mbalabanov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mbalabanov</text:a> (213) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Babinecm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Babinecm</text:a> (212) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jodi999" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jodi999</text:a> (211) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Deneb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Latini, Marina</text:a> (210) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ZuzuN" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ZuzuN</text:a> (208) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andreschnabel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andreschnabel</text:a> (207) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Daveb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Daveb</text:a> (207) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Óvári" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Óvári</text:a> (206) </text:p> - </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:XsLiDian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">XsLiDian</text:a> (203) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8859,11 +8887,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Steinzeit" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steinzeit</text:a> (200) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wheatbix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wheatbix</text:a> (198) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Erhardt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Erhardt</text:a> (193) </text:p> </table:table-cell> @@ -8873,11 +8901,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Valtermura" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Valtermura</text:a> (191) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DmitryBowie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DmitryBowie</text:a> (188) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tarnhold" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tarnhold</text:a> (187) </text:p> </table:table-cell> @@ -8887,11 +8915,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Meixome" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Méixome, Antón</text:a> (179) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Issa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alkurtass, Issa</text:a> (178) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sw0000j" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sw0000j</text:a> (176) </text:p> </table:table-cell> @@ -8901,11 +8929,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tobaem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Madl, Tobias</text:a> (175) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fridrich" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fridrich</text:a> (172) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luizheli" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luizheli</text:a> (172) </text:p> </table:table-cell> @@ -8913,14 +8941,14 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Teseu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Teseu</text:a> (172) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:N.yadi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">N.yadi</text:a> (171) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tjhietala" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tjhietala</text:a> (171) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tjhietala" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tjhietala</text:a> (172) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:N.yadi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">N.yadi</text:a> (171) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Furusho" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Furusho</text:a> (170) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -8929,11 +8957,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yfjiang" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jiang, Yifan</text:a> (168) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Det" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Det</text:a> (165) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gippy73" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ponzo, Gabriele</text:a> (165) </text:p> </table:table-cell> @@ -8943,11 +8971,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rosp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rosp</text:a> (163) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ckhe1215" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ckhe1215</text:a> (162) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:See" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">See</text:a> (160) </text:p> </table:table-cell> @@ -8957,11 +8985,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hagar%20Delest" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hagar Delest</text:a> (159) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xystina" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xystina</text:a> (154) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Uminakabkbk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Uminakabkbk</text:a> (153) </text:p> </table:table-cell> @@ -8971,39 +8999,39 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pietro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pietro</text:a> (150) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Slacka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Slacka</text:a> (150) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rhogez" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herzog, Christoph</text:a> (149) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stephan.ficht" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stephan.ficht</text:a> (148) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stephan.ficht" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stephan.ficht</text:a> (149) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Momo50" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Momo50</text:a> (148) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chris-hoh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chris-hoh</text:a> (147) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kukekko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kukekko</text:a> (147) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Back69" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Back69</text:a> (146) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lmamane" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mamane, Lionel Elie</text:a> (146) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Momo50" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Momo50</text:a> (146) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jstnlth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jstnlth</text:a> (144) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mipmap" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mipmap</text:a> (144) </text:p> </table:table-cell> @@ -9013,11 +9041,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lorenzo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lorenzo</text:a> (140) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gokhan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gurbetoğlu, Gökhan</text:a> (139) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Guilhem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guilhem</text:a> (139) </text:p> </table:table-cell> @@ -9027,11 +9055,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ztamas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zolnai, Tamás</text:a> (139) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JorenDC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">De Cuyper, Joren</text:a> (138) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Philippw" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Weissenbacher, Philipp</text:a> (138) </text:p> </table:table-cell> @@ -9041,11 +9069,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tabe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Abe, Takeshi</text:a> (138) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Heliojsf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Heliojsf</text:a> (137) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:P.guimberteau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">P.guimberteau</text:a> (137) </text:p> </table:table-cell> @@ -9055,11 +9083,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Norah" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Norah</text:a> (135) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shunesburg69" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shunesburg69</text:a> (135) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Filhocf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Filhocf</text:a> (132) </text:p> </table:table-cell> @@ -9069,11 +9097,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davydych" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davydych</text:a> (131) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Demetriusb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Demetriusb</text:a> (131) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Richteruwe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Richteruwe</text:a> (131) </text:p> </table:table-cell> @@ -9083,11 +9111,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ikuya" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ikuya</text:a> (127) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ki%20Drupadi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ki Drupadi</text:a> (127) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nik</text:a> (127) </text:p> </table:table-cell> @@ -9097,11 +9125,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RGB.ES" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RGB.ES</text:a> (124) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JARF" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JARF</text:a> (123) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krackedpress" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Krackedpress</text:a> (123) </text:p> </table:table-cell> @@ -9111,11 +9139,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Igor001" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Igor001</text:a> (122) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Trapezus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Trapezus</text:a> (122) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JohnSmith" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JohnSmith</text:a> (120) </text:p> </table:table-cell> @@ -9125,11 +9153,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Phorious" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Phorious</text:a> (118) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lqju96" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lqju96</text:a> (117) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Spaetz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Spaeth, Sebastian</text:a> (115) </text:p> </table:table-cell> @@ -9139,11 +9167,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Markers" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Markers</text:a> (114) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Massimo.zaffaina" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Massimo.zaffaina</text:a> (113) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PulkitKrishna00" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PulkitKrishna00</text:a> (113) </text:p> </table:table-cell> @@ -9153,11 +9181,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcus%20Gama" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcus Gama</text:a> (112) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndikaTriwidada" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndikaTriwidada</text:a> (111) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bachka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bachka</text:a> (111) </text:p> </table:table-cell> @@ -9167,11 +9195,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Medieval" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Medieval</text:a> (111) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Monthoflibreoffice%20bot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Monthoflibreoffice bot</text:a> (110) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dededudu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dededudu</text:a> (108) </text:p> </table:table-cell> @@ -9181,11 +9209,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paour" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paour</text:a> (107) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Salix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Salix</text:a> (107) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bitsfritz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bitsfritz</text:a> (104) </text:p> </table:table-cell> @@ -9195,11 +9223,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MDDN" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MDDN</text:a> (104) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Timur%20LOL" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timur LOL</text:a> (104) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wope" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pechlaner, Wolfgang</text:a> (102) </text:p> </table:table-cell> @@ -9209,11 +9237,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WillZ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WillZ</text:a> (100) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Android272" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Android272</text:a> (99) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JeHa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JeHa</text:a> (99) </text:p> </table:table-cell> @@ -9223,11 +9251,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Irdi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Irdi</text:a> (98) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dan</text:a> (95) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lucaeva03" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lucaeva03</text:a> (95) </text:p> </table:table-cell> @@ -9235,16 +9263,24 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vpinheiro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vpinheiro</text:a> (95) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Boopalan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Boopalan</text:a> (94) </text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Geraldg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Geraldg</text:a> (94) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gulsahkose" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Köse, Gülşah</text:a> (94) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michaelweghorn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Weghorn, Michael</text:a> (94) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Quikee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Quikee</text:a> (94) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Barbora" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Barbora</text:a> (93) </text:p> </table:table-cell> @@ -9254,11 +9290,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andreasg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andreasg</text:a> (92) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lekle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lekle</text:a> (92) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Atalanttore" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Atalanttore</text:a> (90) </text:p> </table:table-cell> @@ -9268,151 +9304,151 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Richv2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Richv2</text:a> (90) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michaelweghorn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Weghorn, Michael</text:a> (89) </text:p> - </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zeki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zeki</text:a> (89) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aurimas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fišeras, Aurimas</text:a> (88) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Catalin%20Festila" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Catalin Festila</text:a> (88) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jhertel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hertel, Jesper</text:a> (88) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Milos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Milos</text:a> (87) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paulojose" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paulojose</text:a> (87) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pomodoren" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pomodoren</text:a> (87) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Omori" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Omori</text:a> (86) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Steve-%20-" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steve- -</text:a> (86) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eddy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eddy</text:a> (85) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Evy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Evy</text:a> (84) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jfnif" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jfnif</text:a> (84) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KorrawitBot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KorrawitBot</text:a> (84) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Santhab" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Santhab</text:a> (84) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Enio.gemmo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Enio.gemmo</text:a> (83) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ogervasi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ogervasi</text:a> (82) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JamesWalker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JamesWalker</text:a> (81) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xosé" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xosé</text:a> (80) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:80686" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">80686</text:a> (79) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KeithCu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KeithCu</text:a> (79) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kjh000121" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kjh000121</text:a> (79) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Laveni" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Laveni</text:a> (79) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CharlieRamirezAnimationStudiosMX" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CharlieRamirezAnimationStudiosMX</text:a> (78) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jwtiyar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jwtiyar</text:a> (78) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcio%20Oliveira" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcio Oliveira</text:a> (78) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Northwoods35" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Northwoods35</text:a> (78) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ocleyr2lalune" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ocleyr2lalune</text:a> (78) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Uwealtmann" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Uwealtmann</text:a> (78) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Socetk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Socetk</text:a> (77) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tommy.WU" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tommy.WU</text:a> (77) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Albino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Albino</text:a> (75) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:K.K.Ashisuto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">K.K.Ashisuto</text:a> (75) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emoreno" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emoreno</text:a> (74) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lbalbalba" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lbalbalba</text:a> (74) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Namikawamisaki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Namikawamisaki</text:a> (73) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rachel618" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rachel618</text:a> (73) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Caster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Castermans, Luc</text:a> (72) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grgml" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grgml</text:a> (72) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aury88" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aury88</text:a> (71) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MichaMuc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MichaMuc</text:a> (71) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RalfHB" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RalfHB</text:a> (71) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sawakaze" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sawakaze</text:a> (71) </text:p> </table:table-cell> @@ -9422,11 +9458,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jo7ueb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jo7ueb</text:a> (70) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MariusConstantinPopa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MariusConstantinPopa</text:a> (70) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Malhassoun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Malhassoun</text:a> (69) </text:p> </table:table-cell> @@ -9436,25 +9472,25 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fábio%20Farias" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fábio Farias</text:a> (68) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gghh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gghh</text:a> (68) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MichaMuc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MichaMuc</text:a> (68) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SoNick%20RND" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SoNick RND</text:a> (68) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ptux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ptux</text:a> (67) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Piotr285" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Piotr285</text:a> (66) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bersam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Karbasion, Bersam</text:a> (65) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bmcs" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bmcs</text:a> (65) </text:p> </table:table-cell> @@ -9464,81 +9500,81 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:StanG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">StanG</text:a> (65) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jmux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Glogowski, Jan-Marek</text:a> (64) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oipila" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oipila</text:a> (64) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Piotr285" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Piotr285</text:a> (64) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ptrsk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ptrsk</text:a> (64) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hanapospisilova" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hanapospisilova</text:a> (63) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rq" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kudelis, Rimas</text:a> (63) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sikeler" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sikeler</text:a> (63) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sthibaul" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thibault, Samuel</text:a> (63) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mariuz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Popa, Adrian Marius</text:a> (62) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Denco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Denco</text:a> (61) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Flowrivers" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Flowrivers</text:a> (61) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Frieder" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Frieder</text:a> (61) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jimin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jimin</text:a> (61) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arnaudlecam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arnaudlecam</text:a> (60) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jlgrenar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jlgrenar</text:a> (60) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jmontane" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Montané, Joan</text:a> (60) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OctopusET" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OctopusET</text:a> (60) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Piotrekr1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Piotrekr1</text:a> (60) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Justman10000" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Justman10000</text:a> (59) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lj%20LO" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lj LO</text:a> (59) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tynnoel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tynnoel</text:a> (59) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Camillem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Camillem</text:a> (58) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dneelyep" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Neel, Daniel</text:a> (58) </text:p> </table:table-cell> @@ -9548,206 +9584,209 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Loflex" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Loflex</text:a> (58) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Matus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kukan, Matúš</text:a> (58) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jihui%20choi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jihui choi</text:a> (57) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lj%20LO" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lj LO</text:a> (57) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bubli" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bubli</text:a> (56) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davefilms" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davefilms</text:a> (56) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Glen.reesor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Glen.reesor</text:a> (56) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grandinj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grandin, Noel</text:a> (56) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ramones" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ramones</text:a> (56) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ramtk6726" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ramtk6726</text:a> (56) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ajrhunt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hunt, Andrzej</text:a> (55) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fifh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fifh</text:a> (55) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grandinj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grandin, Noel</text:a> (55) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Himajin100000" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tomoyuki, Kubota</text:a> (55) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jrahemipour" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jrahemipour</text:a> (55) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ccornell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cornell, Clayton</text:a> (54) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fanthomas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fanthomas</text:a> (54) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Foolfitz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foolfitz</text:a> (54) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mahfiaz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mahfiaz</text:a> (54) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Heben2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Heben2</text:a> (53) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sunny2038" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sunny2038</text:a> (53) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lendo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lendo</text:a> (52) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Petrizzo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Petrizzo</text:a> (52) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ArnoldSchiller" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ArnoldSchiller</text:a> (51) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Helmar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Helmar</text:a> (51) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jaani" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jaani</text:a> (51) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Quoifleur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Quoifleur</text:a> (51) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Agd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Agd</text:a> (50) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Halparker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Halparker</text:a> (50) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paz</text:a> (50) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ronaldo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ronaldo</text:a> (50) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SeoYeonJin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SeoYeonJin</text:a> (50) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mpescador" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mpescador</text:a> (49) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Magliocchetti, Riccardo</text:a> (49) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Serbul" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Serbul</text:a> (49) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vardomescro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vardomescro</text:a> (49) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Afaccioli74" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Afaccioli74</text:a> (48) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Juanjosegzl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Juanjosegzl</text:a> (48) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lviktoria" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lviktoria</text:a> (48) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dagobert%2078" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dagobert 78</text:a> (47) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jhannine20" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jhannine20</text:a> (47) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Quest-88" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Quest-88</text:a> (47) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rbuj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Buj Gelonch, Robert Antoni</text:a> (47) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Amtliz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Amtliz</text:a> (46) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FloF" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FloF</text:a> (46) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fpy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fpy</text:a> (46) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Khaledhosny2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khaledhosny2</text:a> (46) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sk94" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sk94</text:a> (46) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sveinki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sveinki</text:a> (46) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bfo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bfo</text:a> (45) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Khaledhosny" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hosny, Khaled</text:a> (45) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lua" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lua</text:a> (45) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Milupo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Milupo</text:a> (45) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mingu03" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mingu03</text:a> (45) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PhilJung" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jung, Philippe</text:a> (45) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Robwestein" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Robwestein</text:a> (45) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bhorst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bhorst</text:a> (44) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ikh1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ikh1</text:a> (44) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JPLED" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ledure, Jean-Pierre</text:a> (44) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aaronxu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aaronxu</text:a> (43) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aaronxu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aaronxu</text:a> (43) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Awadhi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Awadhi</text:a> (43) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cottage14" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cottage14</text:a> (43) </text:p> @@ -9778,16 +9817,19 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:A%20mento" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">A mento</text:a> (42) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arnaud%20versini" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arnaud versini</text:a> (42) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bluedwarf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bluedwarf</text:a> (42) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fkara" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fkara</text:a> (42) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KAMI" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KAMI</text:a> (42) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SangwooPark" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SangwooPark</text:a> (42) </text:p> </table:table-cell> @@ -9797,11 +9839,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Another%20sam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Another sam</text:a> (41) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arjunaraoc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arjunaraoc</text:a> (41) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cawe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cawe</text:a> (41) </text:p> </table:table-cell> @@ -9811,13 +9853,10 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marklh9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marklh9</text:a> (41) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pedlino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pedlino</text:a> (41) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arnaud%20versini" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arnaud versini</text:a> (40) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pedlino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pedlino</text:a> (41) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bearon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Budea, Áron</text:a> (40) </text:p> @@ -9845,64 +9884,61 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JPLED" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ledure, Jean-Pierre</text:a> (38) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nobu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nobu</text:a> (38) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Partick.auclair" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Partick.auclair</text:a> (38) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pje335" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pje335</text:a> (38) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stephaneg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stephaneg</text:a> (38) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alex%20Thurgood" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alex Thurgood</text:a> (37) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cjenkins" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cjenkins</text:a> (37) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eliskavotipkova" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eliskavotipkova</text:a> (37) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ivanslf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ivanslf</text:a> (37) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jaragunde" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aragunde Pérez, Jacobo</text:a> (37) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kano</text:a> (37) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kinshuksunil" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kinshuksunil</text:a> (37) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LeMoyne" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Castle, John LeMoyne</text:a> (37) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pavel1513" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pavel1513</text:a> (37) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RaducuG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RaducuG</text:a> (37) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RegisPerdreau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RegisPerdreau</text:a> (37) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sistemo2021" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sistemo2021</text:a> (37) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tbsdy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sherlock, Chris</text:a> (37) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Caco13" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Caco13</text:a> (36) </text:p> </table:table-cell> @@ -9912,502 +9948,502 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Patheticcockroach" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Patheticcockroach</text:a> (36) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RegisPerdreau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RegisPerdreau</text:a> (36) </text:p> - </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sci%20citation" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sci citation</text:a> (36) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thep" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thep</text:a> (36) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yanpas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yan Pashkovsky</text:a> (36) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alg</text:a> (35) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andreas%20ka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andreas ka</text:a> (35) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eszka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kłos, Szymon</text:a> (35) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HiTom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jingtao, Yan</text:a> (35) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Liongold" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Liongold</text:a> (35) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marrod" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marrod</text:a> (35) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nora" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nora</text:a> (35) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pingping111" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pingping111</text:a> (35) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stalker08" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stalker08</text:a> (35) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sumuthu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Subramanian, Muthu</text:a> (35) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Skagh1750" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Skagh1750</text:a> (34) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bormant" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bormant</text:a> (33) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davidlamhauge" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davidlamhauge</text:a> (33) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FelipeAle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FelipeAle</text:a> (33) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcorrius" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Corrius, Jesús</text:a> (33) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lmartinezh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lmartinezh</text:a> (33) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mateus.m.luna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mateus.m.luna</text:a> (33) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ngoclong19" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ngoclong19</text:a> (33) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pereriksson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pereriksson</text:a> (33) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ptoye" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ptoye</text:a> (33) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rafi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rafi</text:a> (33) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shirahara" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shirahara</text:a> (33) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexanderwerner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexanderwerner</text:a> (32) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Clio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clio</text:a> (32) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Daud" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Daud</text:a> (32) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kurpaph" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kurpaph</text:a> (32) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lenochod" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lenochod</text:a> (32) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marinello" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marinello, Marco</text:a> (32) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ming" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dryomov, Artur</text:a> (32) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Monocat" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Monocat</text:a> (32) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vulcain" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vulcain</text:a> (32) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xuacu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xuacu</text:a> (32) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chloeeekim" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chloeeekim</text:a> (31) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:H" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">H</text:a> (31) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IvanM" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IvanM</text:a> (31) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pranavk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kant, Pranav</text:a> (31) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Usayan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Usayan</text:a> (31) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Am97" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Am97</text:a> (30) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maose" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maose</text:a> (30) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Njsg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Njsg</text:a> (30) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SEVEN" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SEVEN</text:a> (30) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Speck" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Speck</text:a> (30) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tclovis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tclovis</text:a> (30) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thardeck" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thardeck</text:a> (30) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Acbaird" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Acbaird</text:a> (29) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cida.Coltro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cida.Coltro</text:a> (29) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Darbe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Darbe</text:a> (29) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EdvaldoSCruz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EdvaldoSCruz</text:a> (29) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elsass68490" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elsass68490</text:a> (29) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Haaninjo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Haaninjo</text:a> (29) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RodolfoRG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RodolfoRG</text:a> (29) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Серж" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Серж</text:a> (29) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ace-dent" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ace-dent</text:a> (28) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FlipR" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Riemer, Philipp</text:a> (28) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lutch" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lutch</text:a> (28) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PaoloPelloni" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PaoloPelloni</text:a> (28) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:المسيكين" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">المسيكين</text:a> (28) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcofilippozzi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcofilippozzi</text:a> (27) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcos%20Paulo%20de%20Souza" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcos Paulo de Souza</text:a> (27) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Micm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Micm</text:a> (27) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PeppinoLib" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PeppinoLib</text:a> (27) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sarojdhakal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sarojdhakal</text:a> (27) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thuswa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thuswaldner, Albert</text:a> (27) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alayaran" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alayaran</text:a> (26) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eresus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eresus</text:a> (26) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ezeperez26" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ezeperez26</text:a> (26) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fanch" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fanch</text:a> (26) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Librek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Librek</text:a> (26) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Libreofficer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Libreofficer</text:a> (26) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Linuxman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Linuxman</text:a> (26) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Myunghoonju" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Myunghoonju</text:a> (26) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NigelH" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hawkins, Nigel</text:a> (26) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pirat%20Michi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pirat Michi</text:a> (26) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vaslav" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vaslav</text:a> (26) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aidsoid" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aidsoid</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ailion" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ailion</text:a> (25) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roßmanith, Christina</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Freddyrh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Freddyrh</text:a> (25) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gatlibs" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sullivan, Gatlin</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jeppebundsgaard" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jeppebundsgaard</text:a> (25) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lboccia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lboccia</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Linux%209x" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Linux 9x</text:a> (25) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manuel%20De%20Franceschi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manuel De Franceschi</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Noelson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Noelson</text:a> (25) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Onur.bingo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Onur.bingo</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Papamatti" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Freund, Matthias</text:a> (25) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SophiaS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Schröder, Sophia</text:a> (25) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Winniemiel05" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Winniemiel05</text:a> (25) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blendergeek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Magee, Timothy</text:a> (24) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elpapki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elpapki</text:a> (24) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gaianer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gaianer</text:a> (24) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gérard24" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gérard24</text:a> (24) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kghbln" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kghbln</text:a> (24) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ksoviero" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ksoviero</text:a> (24) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nik%20vr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nik vr</text:a> (24) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Olivier" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Olivier</text:a> (24) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Boopalan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Boopalan</text:a> (23) </text:p> - </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hamurcu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hamurcu</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lostinthiswhirlpool" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lostinthiswhirlpool</text:a> (23) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M42" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">M42</text:a> (23) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Olorin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Olorin</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Plubius" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Plubius</text:a> (23) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Skip-on" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Skip-on</text:a> (23) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TaeWong" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TaeWong</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Team%20One" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Team One</text:a> (23) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thumperward" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thumperward</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tommy27" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tommy27</text:a> (23) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Toxitom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Toxitom</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Trueriver" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Trueriver</text:a> (23) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Webmink" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Webmink</text:a> (23) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wol" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Youngman, Anthony W.</text:a> (23) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aphaia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aphaia</text:a> (22) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bellerophon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bellerophon</text:a> (22) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bjoern" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bjoern</text:a> (22) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HenryGR" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HenryGR</text:a> (22) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JChimene" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JChimene</text:a> (22) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Keymap19" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Keymap19</text:a> (22) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Olbi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Olbi</text:a> (22) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Flywire" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Flywire</text:a> (21) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gmicsko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gmicsko</text:a> (21) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Johannes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Johannes</text:a> (21) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Liusiqi43" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Liusiqi43</text:a> (21) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Logisch%20dede" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Logisch dede</text:a> (21) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mmonas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Monastirsky, Maxim</text:a> (21) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Necdetyucel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Necdetyucel</text:a> (21) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Puster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Puster</text:a> (21) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shiko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shiko</text:a> (21) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WalterPape" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WalterPape</text:a> (21) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wayra" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wayra</text:a> (21) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bugmenot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bugmenot</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dennisfrancis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dennisfrancis</text:a> (20) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dolezvo1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Doležal, Vojtěch</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grasip" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grasip</text:a> (20) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grzesiek%20a" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grzesiek a</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HeinF" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HeinF</text:a> (20) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Icobgr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Icobgr</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kendram" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kendram</text:a> (20) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LLyaudet" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LLyaudet</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lothar.becker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lothar.becker</text:a> (20) </text:p> + </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mattsturgeon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mattsturgeon</text:a> (20) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -10416,11 +10452,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pandajbc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pandajbc</text:a> (20) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vdragon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vdragon</text:a> (20) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vmalep" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vmalep</text:a> (20) </text:p> </table:table-cell> @@ -10430,11 +10466,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:XMatence" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">XMatence</text:a> (20) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yorick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yorick</text:a> (20) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zapata" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zapata</text:a> (20) </text:p> </table:table-cell> @@ -10444,11 +10480,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:A-zakh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">A-zakh</text:a> (19) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chernik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chernik</text:a> (19) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Clarice%20Vigliazzi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clarice Vigliazzi</text:a> (19) </text:p> </table:table-cell> @@ -10458,11 +10494,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Houbsi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Houbsi</text:a> (19) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JaronBaron" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JaronBaron</text:a> (19) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jem</text:a> (19) </text:p> </table:table-cell> @@ -10472,38 +10508,41 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Juergenfenn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Juergenfenn</text:a> (19) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kentarch" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kentarch</text:a> (19) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lothar.becker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lothar.becker</text:a> (19) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MRIG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MRIG</text:a> (19) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PeeWee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PeeWee</text:a> (19) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shinnok" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ionita, Teodor-Mircea</text:a> (19) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xiaoransun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xiaoransun</text:a> (19) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ehsan.movahed" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ehsan.movahed</text:a> (18) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EyalRozenberg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EyalRozenberg</text:a> (18) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hidayet" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hidayet</text:a> (18) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jstaerk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jstaerk</text:a> (18) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jstaerk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jstaerk</text:a> (18) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcoagpinto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pinto, Marco A.G.</text:a> (18) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Narayan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Narayan</text:a> (18) </text:p> @@ -10573,9 +10612,6 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcoagpinto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pinto, Marco A.G.</text:a> (17) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mihkel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tõnnov, Mihkel</text:a> (17) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -10584,6 +10620,9 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sohyun99" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sohyun99</text:a> (17) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Svante" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Svante</text:a> (17) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -10646,19 +10685,16 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Smrabelo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Smrabelo</text:a> (16) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Svante" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Svante</text:a> (16) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Syntaxerrormmm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Syntaxerrormmm</text:a> (16) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TPJ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TPJ</text:a> (16) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:APerson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">APerson</text:a> (15) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Akki95" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Akki95</text:a> (15) </text:p> </table:table-cell> @@ -10668,11 +10704,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bertob" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bertob</text:a> (15) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cwendling" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cwendling</text:a> (15) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Irmhild" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Irmhild</text:a> (15) </text:p> </table:table-cell> @@ -10682,11 +10718,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lefevre00" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lefevre00</text:a> (15) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luctur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luctur</text:a> (15) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Miko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Miko</text:a> (15) </text:p> </table:table-cell> @@ -10696,11 +10732,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Npcdoom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dominguez, Rafael</text:a> (15) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Patriciasc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Patriciasc</text:a> (15) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rafaelff" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rafaelff</text:a> (15) </text:p> </table:table-cell> @@ -10710,11 +10746,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Royerjy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Royerjy</text:a> (15) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tomthorogood" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thorogood, Tom</text:a> (15) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ulf%20hamburg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ulf hamburg</text:a> (15) </text:p> </table:table-cell> @@ -10724,11 +10760,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:暗影遺言" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">暗影遺言</text:a> (15) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Adsoncristian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Adsoncristian</text:a> (14) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AliIsingor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AliIsingor</text:a> (14) </text:p> </table:table-cell> @@ -10736,6 +10772,9 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Brett" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Brett</text:a> (14) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bvarga91" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bvarga91</text:a> (14) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Darkcircle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Darkcircle</text:a> (14) </text:p> </table:table-cell> </table:table-row> @@ -10778,11 +10817,14 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PrasantaHembram" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PrasantaHembram</text:a> (14) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rafaelhlima" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rafaelhlima</text:a> (14) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Printfdebugging" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Printfdebugging</text:a> (14) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rafaelhlima" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rafaelhlima</text:a> (14) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rania" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rania</text:a> (14) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -10791,11 +10833,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RiderExMachina" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RiderExMachina</text:a> (14) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Susobhang70" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Susobhang70</text:a> (14) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tamiliam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tamiliam</text:a> (14) </text:p> </table:table-cell> @@ -10805,11 +10847,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thangamani-arun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thangamani-arun</text:a> (14) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Usbee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Usbee</text:a> (14) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yoshi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yoshi</text:a> (14) </text:p> </table:table-cell> @@ -10819,16 +10861,13 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alrt84" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alrt84</text:a> (13) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alyssonware" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alyssonware</text:a> (13) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beuss" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beuss</text:a> (13) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alyssonware" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alyssonware</text:a> (13) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bvarga91" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bvarga91</text:a> (13) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beuss" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beuss</text:a> (13) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cedric31" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cedric31</text:a> (13) </text:p> @@ -10937,13 +10976,13 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cralin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cralin</text:a> (12) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cono" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cono</text:a> (12) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Debring" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Debring</text:a> (12) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cralin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cralin</text:a> (12) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EyalRozenberg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EyalRozenberg</text:a> (12) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Debring" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Debring</text:a> (12) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Faisal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Al-Otaibi, Faisal M.</text:a> (12) </text:p> @@ -11024,19 +11063,16 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChristopheS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChristopheS</text:a> (11) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cono" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cono</text:a> (11) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dajare" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dajare</text:a> (11) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ebraminio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ebraminio</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eduaraujo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eduaraujo</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Francoisa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Francoisa</text:a> (11) </text:p> </table:table-cell> @@ -11046,11 +11082,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Johnny%20M" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Johnny M</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kallecarl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kallecarl</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kolbjoern" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kolbjoern</text:a> (11) </text:p> </table:table-cell> @@ -11060,11 +11096,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Leatherbottle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Leatherbottle</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luiz%20Henrique%20Natalino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luiz Henrique Natalino</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MNeto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MNeto</text:a> (11) </text:p> </table:table-cell> @@ -11074,11 +11110,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marco%20c" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marco c</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcuskgosi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcuskgosi</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NON" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NON</text:a> (11) </text:p> </table:table-cell> @@ -11088,11 +11124,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nuernbergerj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nuernbergerj</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rogeniobelem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rogeniobelem</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Salmaan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Salmaan</text:a> (11) </text:p> </table:table-cell> @@ -11102,11 +11138,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sunk8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sunk8</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tanty" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gomez, Andres</text:a> (11) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vrlivre" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vrlivre</text:a> (11) </text:p> </table:table-cell> @@ -11116,11 +11152,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zero0w" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zero0w</text:a> (11) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aeusebio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aeusebio</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Algotruneman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Algotruneman</text:a> (10) </text:p> </table:table-cell> @@ -11130,11 +11166,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blargh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Blargh</text:a> (10) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChrSchultz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChrSchultz</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Diginin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Diginin</text:a> (10) </text:p> </table:table-cell> @@ -11144,11 +11180,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eduardogula" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eduardogula</text:a> (10) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eficheux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eficheux</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:El7r" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">El7r</text:a> (10) </text:p> </table:table-cell> @@ -11158,11 +11194,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jdittrich" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jdittrich</text:a> (10) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joacim" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joacim</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kadertarlan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kadertarlan</text:a> (10) </text:p> </table:table-cell> @@ -11172,11 +11208,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Linuxuser330250" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Linuxuser330250</text:a> (10) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lionlinux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lionlinux</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mesutcfc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mesutcfc</text:a> (10) </text:p> </table:table-cell> @@ -11186,11 +11222,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mikalai" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mikalai</text:a> (10) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Morvan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Morvan</text:a> (10) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mpumrlova" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mpumrlova</text:a> (10) </text:p> </table:table-cell> @@ -11200,10 +11236,13 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Olea" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Olea</text:a> (10) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Otto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Otto</text:a> (10) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Otto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Otto</text:a> (10) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PaoloVecchi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PaoloVecchi</text:a> (10) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Predatorix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Predatorix</text:a> (10) </text:p> @@ -11349,16 +11388,13 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oprea.luci" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oprea.luci</text:a> (9) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PaoloVecchi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PaoloVecchi</text:a> (9) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pasqualm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Milvaques, Pasqual</text:a> (9) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pefoley2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foley, Peter</text:a> (9) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pixpray" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pixpray</text:a> (9) </text:p> </table:table-cell> @@ -11368,11 +11404,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rantaro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rantaro</text:a> (9) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Raykowj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Raykowj</text:a> (9) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rogawa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rogawa</text:a> (9) </text:p> </table:table-cell> @@ -11382,11 +11418,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Spacebat" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Spacebat</text:a> (9) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Therabi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Therabi</text:a> (9) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Urdulizer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Urdulizer</text:a> (9) </text:p> </table:table-cell> @@ -11396,11 +11432,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zhangxiaofei" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zhangxiaofei</text:a> (9) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ميدو" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ميدو</text:a> (9) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexxed" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexxed</text:a> (8) </text:p> </table:table-cell> @@ -11410,11 +11446,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndreasL" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndreasL</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ausserirdischegesund" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ausserirdischegesund</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cocofan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cocofan</text:a> (8) </text:p> </table:table-cell> @@ -11424,11 +11460,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dashohoxha" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dashohoxha</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DrDub" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DrDub</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ed%20Eyles" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ed Eyles</text:a> (8) </text:p> </table:table-cell> @@ -11438,11 +11474,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gokaysatir" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gokaysatir</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Horst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Horst</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Israel%20Chaves" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Israel Chaves</text:a> (8) </text:p> </table:table-cell> @@ -11452,11 +11488,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jiero" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jiero</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jrsiqueira" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jrsiqueira</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jslozier" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jslozier</text:a> (8) </text:p> </table:table-cell> @@ -11466,11 +11502,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kalikiana" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dywan, Christian</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kednar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kednar</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KolAflash" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Duge, Moritz</text:a> (8) </text:p> </table:table-cell> @@ -11480,11 +11516,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lee</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Leighman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Leigh, Jack</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Leo.h.hildebrandt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Leo.h.hildebrandt</text:a> (8) </text:p> </table:table-cell> @@ -11494,11 +11530,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luisgulo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luisgulo</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manj%20k" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manj k</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mrmox2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mrmox2</text:a> (8) </text:p> </table:table-cell> @@ -11508,11 +11544,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NirajanPant" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NirajanPant</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Osnola" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Osnola</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paulo.tavares" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paulo.tavares</text:a> (8) </text:p> </table:table-cell> @@ -11522,11 +11558,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Peterpall" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Peterpall</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ricardolau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ricardolau</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thejack" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thejack</text:a> (8) </text:p> </table:table-cell> @@ -11536,11 +11572,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Troumad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Troumad</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:UserUnknown" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">UserUnknown</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vbkaisetsu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vbkaisetsu</text:a> (8) </text:p> </table:table-cell> @@ -11550,11 +11586,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Weltraumdrache" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Weltraumdrache</text:a> (8) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yakusha" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yakusha</text:a> (8) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yellow.h" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yellow.h</text:a> (8) </text:p> </table:table-cell> @@ -11564,11 +11600,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:10110111" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kabatsayev, Ruslan</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ahiijny" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ahiijny</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andrea.soragna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andrea.soragna</text:a> (7) </text:p> </table:table-cell> @@ -11578,11 +11614,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Belkacem77" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Belkacem77</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Berrykevin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Berrykevin</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bjherbison" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bjherbison</text:a> (7) </text:p> </table:table-cell> @@ -11592,11 +11628,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Borim7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Borim7</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Capiscuas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Capiscuas</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chin%20Zee%20Yuen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chin Zee Yuen</text:a> (7) </text:p> </table:table-cell> @@ -11606,11 +11642,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dado" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dado</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Drose" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Drose</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Esbardu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Esbardu</text:a> (7) </text:p> </table:table-cell> @@ -11620,11 +11656,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GuKK-Devel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GuKK-Devel</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hunteke" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hunter, Kevin</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ingotian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ingotian</text:a> (7) </text:p> </table:table-cell> @@ -11634,11 +11670,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lonelyhiker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lonelyhiker</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M1cky" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">M1cky</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mariosv" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mariosv</text:a> (7) </text:p> </table:table-cell> @@ -11648,11 +11684,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mbayer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mbayer</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MephistoBooks" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MephistoBooks</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mhonline" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mhonline</text:a> (7) </text:p> </table:table-cell> @@ -11662,11 +11698,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nathanjh13" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nathanjh13</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ndduong" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ndduong</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nemo%20bis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nemo bis</text:a> (7) </text:p> </table:table-cell> @@ -11676,11 +11712,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Olivier%20DDB" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Olivier DDB</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Opensas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Opensas</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PeaceByJesus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PeaceByJesus</text:a> (7) </text:p> </table:table-cell> @@ -11690,11 +11726,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RMCampos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RMCampos</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ravi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ravi</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rodo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rodo</text:a> (7) </text:p> </table:table-cell> @@ -11704,11 +11740,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shady" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shady</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shantanuo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shantanuo</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shaunrobot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shaunrobot</text:a> (7) </text:p> </table:table-cell> @@ -11718,11 +11754,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tonnysmile" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tonnysmile</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Toxicbits" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Toxicbits</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wabuo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wabuo</text:a> (7) </text:p> </table:table-cell> @@ -11732,11 +11768,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Woordje" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Woordje</text:a> (7) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:صفا%20الفليج" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">صفا الفليج</text:a> (7) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Akinobu%20n" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Akinobu n</text:a> (6) </text:p> </table:table-cell> @@ -11746,11 +11782,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alpha" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alpha</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Armin%20Dänzer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Armin Dänzer</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Asian%20flower" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Asian flower</text:a> (6) </text:p> </table:table-cell> @@ -11760,11 +11796,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Barend" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Barend</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bobe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bobe</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bruno" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bruno</text:a> (6) </text:p> </table:table-cell> @@ -11774,11 +11810,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CassieLX" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CassieLX</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cccfr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cccfr</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ClausKofoed" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ClausKofoed</text:a> (6) </text:p> </table:table-cell> @@ -11788,11 +11824,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dag" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dag</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dali123" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BEN MANSOUR, Mohamed-Ali</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ddxavier" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ddxavier</text:a> (6) </text:p> </table:table-cell> @@ -11802,11 +11838,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DotnetCarpenter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DotnetCarpenter</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dougmencken" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mencken, Douglas</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dr.Faust" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dr.Faust</text:a> (6) </text:p> </table:table-cell> @@ -11816,11 +11852,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Edmond%20ciorba" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Edmond ciorba</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Edmund.laugasson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Edmund.laugasson</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Equis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Equis</text:a> (6) </text:p> </table:table-cell> @@ -11830,11 +11866,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fdekruijf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fdekruijf</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fgallaire" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gallaire, Florent</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fisiu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fisiu</text:a> (6) </text:p> </table:table-cell> @@ -11844,11 +11880,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gerritg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gerritg</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ghune" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ghune</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Googly%20Googly" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Googly Googly</text:a> (6) </text:p> </table:table-cell> @@ -11858,11 +11894,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hmoi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hmoi</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hramrach" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hramrach</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Infoprof" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Infoprof</text:a> (6) </text:p> </table:table-cell> @@ -11872,11 +11908,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ivan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timofeev, Ivan</text:a> (6) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:James%2000cat" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">James 00cat</text:a> (6) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jeffersonx" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jeffersonx</text:a> (6) </text:p> </table:table-cell> @@ -11886,6 +11922,9 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Levlazinskiy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Levlazinskiy</text:a> (6) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LibreOfficeUser25" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LibreOfficeUser25</text:a> (6) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -12178,11 +12217,14 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LibreOfficeUser1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LibreOfficeUser1</text:a> (5) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mak</text:a> (5) </text:p> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lpranam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lpranam</text:a> (5) </text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mak</text:a> (5) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mgaster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mgaster</text:a> (5) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -12191,11 +12233,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mostthingsweb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Laplante, Chris</text:a> (5) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mtg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mtg</text:a> (5) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mtnyildrm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mtnyildrm</text:a> (5) </text:p> </table:table-cell> @@ -12205,11 +12247,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OSVALDO%20LINS%20VIANA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OSVALDO LINS VIANA</text:a> (5) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Orcmid" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Orcmid</text:a> (5) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pepe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pepe</text:a> (5) </text:p> </table:table-cell> @@ -12219,9 +12261,6 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Poeml" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Poeml</text:a> (5) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Printfdebugging" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Printfdebugging</text:a> (5) </text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -12505,6 +12544,9 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:InspiringNameGoesHere" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">InspiringNameGoesHere</text:a> (4) </text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Izabela" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Izabela</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -12513,151 +12555,151 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jamesleader" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jamesleader</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jclark" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jclark</text:a> (4) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jessefrgsmith" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jessefrgsmith</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jiehong" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jiehong</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jjmeric" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jjmeric</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jjpalacios" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jjpalacios</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JnRouvignac" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JnRouvignac</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jonata" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jonata</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jones" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jones</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jonnygrant" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jonnygrant</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jooste" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jooste</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joriki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joriki</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jtlebigot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Le Bigot, Jean-Tiare</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kemalayhan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kemalayhan</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lethargilistic" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lethargilistic</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Loren.rogers" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Loren.rogers</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M.m.mozffart" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">M.m.mozffart</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MHaggag" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Haggag, Muhammad</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MPascual" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MPascual</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maciej" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rumianowski, Maciej</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marinela" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marinela</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mikedoherty%20ca" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mikedoherty ca</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mondeep18" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mondeep18</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Morgan%20greywolf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Morgan greywolf</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mortgage01" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mortgage01</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NGHLibreOffice" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NGHLibreOffice</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:O.villani" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">O.villani</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Offidocs" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Offidocs</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Orson69" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Orson69</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oscar90210" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oscar90210</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paolopoz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paolopoz</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paranemertes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paranemertes</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PatrickJ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PatrickJ</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PaulRoos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PaulRoos</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pegasus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pegasus</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Penalvch" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Penalvch</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pgassmann" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pgassmann</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Philj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Philj</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Phillip.davis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Phillip.davis</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pietvo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">van Oostrum, Pieter</text:a> (4) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pjacquod" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pjacquod</text:a> (4) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Plubius" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Plubius</text:a> (4) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Prolog.guy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Prolog.guy</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Psao" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Psao</text:a> (4) </text:p> </table:table-cell> @@ -12667,11 +12709,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Randolphgamo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Randolphgamo</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rebahozkoc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rebahozkoc</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Reyn100" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Reyn100</text:a> (4) </text:p> </table:table-cell> @@ -12681,11 +12723,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RjR" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RjR</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rodhos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rodhos</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:S8321414" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">S8321414</text:a> (4) </text:p> </table:table-cell> @@ -12695,11 +12737,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sealview" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sealview</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Selimseker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Selimseker</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stevenmw" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stevenmw</text:a> (4) </text:p> </table:table-cell> @@ -12709,11 +12751,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tct" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tct</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tempelorg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tempelorg</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tex2002ans" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tex2002ans</text:a> (4) </text:p> </table:table-cell> @@ -12723,11 +12765,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tk</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tlequire" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tlequire</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Twistappel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Twistappel</text:a> (4) </text:p> </table:table-cell> @@ -12737,11 +12779,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ufas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ufas</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:UlKu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">UlKu</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Urhixidur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Urhixidur</text:a> (4) </text:p> </table:table-cell> @@ -12751,11 +12793,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vort" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">V., Artem</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wcolen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wcolen</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wikiuser" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wikiuser</text:a> (4) </text:p> </table:table-cell> @@ -12765,11 +12807,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wpeixoto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wpeixoto</text:a> (4) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Денис" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Денис</text:a> (4) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AbhilashSingh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AbhilashSingh</text:a> (3) </text:p> </table:table-cell> @@ -12779,11 +12821,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aexyn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aexyn</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AhmadHaris" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AhmadHaris</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jain, Atishay</text:a> (3) </text:p> </table:table-cell> @@ -12793,11 +12835,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexsfagundes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexsfagundes</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Almorca" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Almorca</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andrey%20Usov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andrey Usov</text:a> (3) </text:p> </table:table-cell> @@ -12807,11 +12849,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ariete" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ariete</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arkanosis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arkanosis</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Armin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Armin</text:a> (3) </text:p> </table:table-cell> @@ -12821,11 +12863,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arthur%20Zennig" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arthur Zennig</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aurelien" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aurelien</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Baena" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Baena</text:a> (3) </text:p> </table:table-cell> @@ -12835,11 +12877,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Benjwgarner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Benjwgarner</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bernarpa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bernardi, Paolo</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bindassanant" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bindassanant</text:a> (3) </text:p> </table:table-cell> @@ -12849,11 +12891,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bootingman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bootingman</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bos</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Brainbreaker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Prajapati, Gautam</text:a> (3) </text:p> </table:table-cell> @@ -12863,11 +12905,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Burdakov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Burdakov</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CIB.Mathias" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CIB.Mathias</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Canberkturan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Canberkturan</text:a> (3) </text:p> </table:table-cell> @@ -12877,11 +12919,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Charu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Charu</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chiddekel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chiddekel</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChrisConCas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChrisConCas</text:a> (3) </text:p> </table:table-cell> @@ -12891,11 +12933,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cmorgan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cmorgan</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Colokalle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Colokalle</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:D0ugparker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">D0ugparker</text:a> (3) </text:p> </table:table-cell> @@ -12905,11 +12947,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DanShearer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DanShearer</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Darcy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beurle, Darcy</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dbank" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bankston, Daniel</text:a> (3) </text:p> </table:table-cell> @@ -12919,11 +12961,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dilip" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dilip</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Donbrookman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Donbrookman</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dubyk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dubyk</text:a> (3) </text:p> </table:table-cell> @@ -12933,11 +12975,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EdgeE" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EdgeE</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eeha0120" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eeha0120</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eisa01" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eisa01</text:a> (3) </text:p> </table:table-cell> @@ -12947,11 +12989,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emschorsch" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Schorsch, Emanuel</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ErSey" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ErSey</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eric.ficheux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eric.ficheux</text:a> (3) </text:p> </table:table-cell> @@ -12961,11 +13003,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Estebanmonge" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Estebanmonge</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Farukuzun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Farukuzun</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ferlodev" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ferlodev</text:a> (3) </text:p> </table:table-cell> @@ -12975,11 +13017,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fraang" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fraang</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Franzjakob" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Franzjakob</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Frob%20tea" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Frob tea</text:a> (3) </text:p> </table:table-cell> @@ -12989,11 +13031,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FunkyPenguin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FunkyPenguin</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gokcen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gokcen</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gouchi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gouchi</text:a> (3) </text:p> </table:table-cell> @@ -13003,11 +13045,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hansgerd.schneider" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hansgerd.schneider</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Harshita" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nag,Harshita</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Herrmarder" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herrmarder</text:a> (3) </text:p> </table:table-cell> @@ -13017,11 +13059,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hwpplayer1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hwpplayer1</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IanL" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IanL</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Imanuelr10" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Imanuelr10</text:a> (3) </text:p> </table:table-cell> @@ -13031,11 +13073,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:It-christian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">It-christian</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IvanMM" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IvanMM</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JDM" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JDM</text:a> (3) </text:p> </table:table-cell> @@ -13043,9 +13085,6 @@ <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jammon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jammon</text:a> (3) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jclark" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jclark</text:a> (3) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcrben" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jcrben</text:a> (3) </text:p> </table:table-cell> </table:table-row> @@ -13135,9 +13174,6 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lpranam" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lpranam</text:a> (3) </text:p> - </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LucaCappelletti" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LucaCappelletti</text:a> (3) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> @@ -13146,11 +13182,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lupp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lupp</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luuk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luuk</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Machey" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Machey</text:a> (3) </text:p> </table:table-cell> @@ -13160,11 +13196,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Margott" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Margott</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marializ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marializ</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Masaki%20tamakoshi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Masaki tamakoshi</text:a> (3) </text:p> </table:table-cell> @@ -13174,11 +13210,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mattias" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mattias</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maxwell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maxwell</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Measure%20for%20Measure" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Measure for Measure</text:a> (3) </text:p> </table:table-cell> @@ -13188,11 +13224,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Meryemezber" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Meryemezber</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mhoes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mhoes</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mhsmsantos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mhsmsantos</text:a> (3) </text:p> </table:table-cell> @@ -13202,11 +13238,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mike98" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mike98</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nak47" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nak47</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NamelessGO" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NamelessGO</text:a> (3) </text:p> </table:table-cell> @@ -13216,11 +13252,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NickWingate" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NickWingate</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NicksonT" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NicksonT</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nicolas.abel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nicolas.abel</text:a> (3) </text:p> </table:table-cell> @@ -13230,11 +13266,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nifgraup" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ragnarsson, Björgvin</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nloira" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nloira</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Noel%20Power" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Noel Power</text:a> (3) </text:p> </table:table-cell> @@ -13244,11 +13280,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ochosi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steinbeiß, Simon</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ojeremyj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ojeremyj</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oliverguenther" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oliverguenther</text:a> (3) </text:p> </table:table-cell> @@ -13258,11 +13294,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pedro.silva" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pedro.silva</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pr410" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pr410</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Prakash72" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Prakash72</text:a> (3) </text:p> </table:table-cell> @@ -13272,11 +13308,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rajsite" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rajsite</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rapha.ksf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rapha.ksf</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rauloliverpaes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rauloliverpaes</text:a> (3) </text:p> </table:table-cell> @@ -13286,11 +13322,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RebeccaHodgson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RebeccaHodgson</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Reyhane" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Reyhane</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rick</text:a> (3) </text:p> </table:table-cell> @@ -13300,11 +13336,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rolfi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rolfi</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rosemary" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rosemary</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sander%20Klootwijk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sander Klootwijk</text:a> (3) </text:p> </table:table-cell> @@ -13314,11 +13350,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Saper" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Saper</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Satabin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Satabin</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sayt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sayt</text:a> (3) </text:p> </table:table-cell> @@ -13328,11 +13364,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sebby" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sebby</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sergey%20Aka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sergey Aka</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shelandy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shelandy</text:a> (3) </text:p> </table:table-cell> @@ -13342,11 +13378,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Skinnerbird" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Skinnerbird</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Smile4ever" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Smile4ever</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Soliac" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Soliac</text:a> (3) </text:p> </table:table-cell> @@ -13356,11 +13392,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sotrud%20nik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sotrud nik</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Soued031" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Soued031</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:StefanRing" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">StefanRing</text:a> (3) </text:p> </table:table-cell> @@ -13370,11 +13406,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SteveKelem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SteveKelem</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Steveo%20o" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steveo o</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Strugee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Strugee</text:a> (3) </text:p> </table:table-cell> @@ -13384,11 +13420,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sushils" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sushils</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Taylor46" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Taylor46</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TheWebalyst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TheWebalyst</text:a> (3) </text:p> </table:table-cell> @@ -13398,11 +13434,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tibornagy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tibornagy</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Timsamoff" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timsamoff</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tititou36" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tititou36</text:a> (3) </text:p> </table:table-cell> @@ -13412,11 +13448,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Toki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Toki</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tomi%20Toivio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tomi Toivio</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ToniB" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ToniB</text:a> (3) </text:p> </table:table-cell> @@ -13426,11 +13462,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TrnsltLife" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TrnsltLife</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tushantin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tushantin</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ubap" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ubap</text:a> (3) </text:p> </table:table-cell> @@ -13440,11 +13476,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Underdog" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Underdog</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vinctor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vinctor</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vladasavy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vladasavy</text:a> (3) </text:p> </table:table-cell> @@ -13454,11 +13490,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wagnerluis1982" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wagnerluis1982</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Weimzz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khoo, Wei Ming</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WesPeacock" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WesPeacock</text:a> (3) </text:p> </table:table-cell> @@ -13468,11 +13504,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yeominstall" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yeominstall</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yukawa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yukawa</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yurikoles" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kolesnykov, Yurii</text:a> (3) </text:p> </table:table-cell> @@ -13482,11 +13518,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zaria" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zaria</text:a> (3) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Zaxebo1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Zaxebo1</text:a> (3) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ترجمان05" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ترجمان05</text:a> (3) </text:p> </table:table-cell> @@ -13496,11 +13532,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AbbeyI19jfjc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AbbeyI19jfjc</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AdamPrado8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AdamPrado8</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AdrianValdez4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AdrianValdez4</text:a> (2) </text:p> </table:table-cell> @@ -13510,11 +13546,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Agarciamog" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Agarciamog</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aggelalex" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aggelalex</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alan</text:a> (2) </text:p> </table:table-cell> @@ -13524,11 +13560,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AliceOliver7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AliceOliver7</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alina12345" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alina12345</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alisha" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alisha</text:a> (2) </text:p> </table:table-cell> @@ -13538,11 +13574,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AlphonsoNava4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AlphonsoNava4</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Amunizp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Amunizp</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AmyCarney5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AmyCarney5</text:a> (2) </text:p> </table:table-cell> @@ -13552,11 +13588,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndresChandia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndresChandia</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andrew" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andrew</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndrewKuhn7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndrewKuhn7</text:a> (2) </text:p> </table:table-cell> @@ -13566,11 +13602,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andthebrain" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andthebrain</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anipeter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anipeter</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anjar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anjar</text:a> (2) </text:p> </table:table-cell> @@ -13580,11 +13616,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AnnabelMcmullen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AnnabelMcmullen</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AnnunciationGunn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AnnunciationGunn</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anonimus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anonimus</text:a> (2) </text:p> </table:table-cell> @@ -13594,11 +13630,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anuragjain" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jain, Anurag</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aplatypus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aplatypus</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ApostlesSheldon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ApostlesSheldon</text:a> (2) </text:p> </table:table-cell> @@ -13608,11 +13644,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Asal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Asal</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ashaneba" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ashaneba</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ashod" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nakashian, Ashod</text:a> (2) </text:p> </table:table-cell> @@ -13622,11 +13658,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aybuke" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ozdemir, Aybuke</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BZT42" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BZT42</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bansan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Le Garrec, Vincent</text:a> (2) </text:p> </table:table-cell> @@ -13636,11 +13672,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BernardMeza9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BernardMeza9</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beto</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BirdRivas2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BirdRivas2</text:a> (2) </text:p> </table:table-cell> @@ -13650,11 +13686,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BlessedOrozco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BlessedOrozco</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blume" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Blume</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blushingorg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Blushingorg</text:a> (2) </text:p> </table:table-cell> @@ -13664,11 +13700,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bogcahi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bogcahi</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Boivie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Boivie</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Boldizsakawi7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Boldizsakawi7</text:a> (2) </text:p> </table:table-cell> @@ -13678,11 +13714,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bram" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bram</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BrandiToomer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BrandiToomer</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BridgetJarvis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BridgetJarvis</text:a> (2) </text:p> </table:table-cell> @@ -13692,11 +13728,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BryantMclean6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BryantMclean6</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ButlerBarron6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ButlerBarron6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:C0bb3r" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">C0bb3r</text:a> (2) </text:p> </table:table-cell> @@ -13706,11 +13742,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CallieMvzap" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CallieMvzap</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CallieSalgado" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CallieSalgado</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CamilleMccarthy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CamilleMccarthy</text:a> (2) </text:p> </table:table-cell> @@ -13720,11 +13756,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CapistranOleary" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CapistranOleary</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Capri99" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Capri99</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CaraDang6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CaraDang6</text:a> (2) </text:p> </table:table-cell> @@ -13734,11 +13770,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CarolinaCalling" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CarolinaCalling</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CarrieDaniels" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CarrieDaniels</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CarrollRico2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CarrollRico2</text:a> (2) </text:p> </table:table-cell> @@ -13748,11 +13784,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CavesGill8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CavesGill8</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Celsovsm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Celsovsm</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cgrosdemange" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cgrosdemange</text:a> (2) </text:p> </table:table-cell> @@ -13762,11 +13798,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChanieSnow2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChanieSnow2</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chemyakyn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chemyakyn</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChrisBarth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChrisBarth</text:a> (2) </text:p> </table:table-cell> @@ -13776,11 +13812,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cipriano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cipriano</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cjbackhouse" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cjbackhouse</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cl-r" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cl-r</text:a> (2) </text:p> </table:table-cell> @@ -13790,11 +13826,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ClaudiaCramer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ClaudiaCramer</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Clemen%20Beek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clemen Beek</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CodeMouse92" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">McDonald, Jason C.</text:a> (2) </text:p> </table:table-cell> @@ -13804,11 +13840,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Colabo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Colabo</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Conrado" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Conrado</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Coogor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Coogor</text:a> (2) </text:p> </table:table-cell> @@ -13818,11 +13854,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Crxssi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Crxssi</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CupertinoDarnell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CupertinoDarnell</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cvk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cvk</text:a> (2) </text:p> </table:table-cell> @@ -13832,11 +13868,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cœur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cœur, Antoine</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DaCaPo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DaCaPo</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dairdev" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dairdev</text:a> (2) </text:p> </table:table-cell> @@ -13846,11 +13882,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Damascene" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Damascene</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DanForrest2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DanForrest2</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Danese" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Danese</text:a> (2) </text:p> </table:table-cell> @@ -13860,11 +13896,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Danthedev" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Danthedev</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Darkixion" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Darkixion</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:David4you" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">David4you</text:a> (2) </text:p> </table:table-cell> @@ -13874,11 +13910,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:De-jourdain" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">De-jourdain</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Debugercz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Debugercz</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DelinaRomano5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DelinaRomano5</text:a> (2) </text:p> </table:table-cell> @@ -13888,11 +13924,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DenisArnaud" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DenisArnaud</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dennis'%20Spam%20test%20account" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dennis' Spam test account</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Denytracom" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Denytracom</text:a> (2) </text:p> </table:table-cell> @@ -13902,11 +13938,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Diazbastian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Diazbastian</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Diocles" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Retout, Tim</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Django" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Django</text:a> (2) </text:p> </table:table-cell> @@ -13916,11 +13952,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Domasj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Domasj</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Domsau2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Domsau2</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DonaldBryant7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DonaldBryant7</text:a> (2) </text:p> </table:table-cell> @@ -13930,11 +13966,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DrDrack" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DrDrack</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dreami" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Röllin, Lukas</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Duiliodias" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Duiliodias</text:a> (2) </text:p> </table:table-cell> @@ -13944,11 +13980,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EMontanes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Montañés, Eloi</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EarleSiegel7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EarleSiegel7</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ed" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ed</text:a> (2) </text:p> </table:table-cell> @@ -13958,11 +13994,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eduardoarandah" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eduardoarandah</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Edwardcottreau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Edwardcottreau</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Edz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Edz</text:a> (2) </text:p> </table:table-cell> @@ -13972,11 +14008,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Efs710920mex" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Efs710920mex</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ejep520" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ejep520</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elbarto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sánchez, Bartolomé</text:a> (2) </text:p> </table:table-cell> @@ -13986,11 +14022,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ElisabethHolcomb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ElisabethHolcomb</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elixir" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elixir</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EllieBowers3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EllieBowers3</text:a> (2) </text:p> </table:table-cell> @@ -14000,11 +14036,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eloquence" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eloquence</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ElsieMacias7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ElsieMacias7</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emily" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emily</text:a> (2) </text:p> </table:table-cell> @@ -14014,11 +14050,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eneville" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eneville</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EnosKraus6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EnosKraus6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Erdalronahi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Erdalronahi</text:a> (2) </text:p> </table:table-cell> @@ -14028,11 +14064,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ErieTovar6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ErieTovar6</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Erikcht" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Erikcht</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ersteinmal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ersteinmal</text:a> (2) </text:p> </table:table-cell> @@ -14042,11 +14078,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Escriba" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Escriba</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EssieKeller8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EssieKeller8</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EsterEngland7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EsterEngland7</text:a> (2) </text:p> </table:table-cell> @@ -14056,11 +14092,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:F.werner.pohl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">F.werner.pohl</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FannyTillman8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FannyTillman8</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FateHarrington" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FateHarrington</text:a> (2) </text:p> </table:table-cell> @@ -14070,11 +14106,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fcelik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fcelik</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fcojavmc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fcojavmc</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Feldo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Feldo</text:a> (2) </text:p> </table:table-cell> @@ -14084,11 +14120,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FlaviaPratt8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FlaviaPratt8</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FlorenceGrossman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FlorenceGrossman</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FlorenceKim1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FlorenceKim1</text:a> (2) </text:p> </table:table-cell> @@ -14098,11 +14134,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FranciscoByrne" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FranciscoByrne</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FredaDowning7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FredaDowning7</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fukanchik" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fukanchik, Sergey</text:a> (2) </text:p> </table:table-cell> @@ -14112,11 +14148,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Garcia.marc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Garcia.marc</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gauste" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gauste</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gautamsahil1947" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gautamsahil1947</text:a> (2) </text:p> </table:table-cell> @@ -14126,11 +14162,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GeoDowning4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GeoDowning4</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GeoffLawrence" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GeoffLawrence</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GeorgiannaOchoa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GeorgiannaOchoa</text:a> (2) </text:p> </table:table-cell> @@ -14140,11 +14176,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gerpunzel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gerpunzel</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GertieEllington" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GertieEllington</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GiertrudaLehman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GiertrudaLehman</text:a> (2) </text:p> </table:table-cell> @@ -14154,11 +14190,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GiuseppOQH" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GiuseppOQH</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Glanbeav" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Glanbeav</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Glococo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Glococo</text:a> (2) </text:p> </table:table-cell> @@ -14168,11 +14204,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gmolleda" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gmolleda</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gortazar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gortazar</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GraciaNorwood" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GraciaNorwood</text:a> (2) </text:p> </table:table-cell> @@ -14182,11 +14218,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grim" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grim</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gualtiero" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gualtiero</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Guillem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guillem</text:a> (2) </text:p> </table:table-cell> @@ -14196,11 +14232,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hagar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hagar</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HannaEspinoza" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HannaEspinoza</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HardyBurris1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HardyBurris1</text:a> (2) </text:p> </table:table-cell> @@ -14210,11 +14246,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hasithakj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hasithakj</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hector" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hector</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hedaja" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hedaja</text:a> (2) </text:p> </table:table-cell> @@ -14224,11 +14260,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Helo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Helo</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hemmerling" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hemmerling</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HenrikJ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jensen, Henrik</text:a> (2) </text:p> </table:table-cell> @@ -14238,11 +14274,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HermitMuller1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HermitMuller1</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Herronrobertson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herronrobertson</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HershelPeterson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HershelPeterson</text:a> (2) </text:p> </table:table-cell> @@ -14252,11 +14288,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ian22" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ian22</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Iannz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Iannz</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IkeVasquez9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IkeVasquez9</text:a> (2) </text:p> </table:table-cell> @@ -14266,1047 +14302,1047 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Imagin8or" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Imagin8or</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:InezFinney8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">InezFinney8</text:a> (2) </text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:InspiringNameGoesHere" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">InspiringNameGoesHere</text:a> (2) </text:p> - </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IraLane4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IraLane4</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IrinaMccormack" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IrinaMccormack</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IrvinBernard9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IrvinBernard9</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IsadoraFoster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IsadoraFoster</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IsaiahBuck5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IsaiahBuck5</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IsiahLackey2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IsiahLackey2</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IvaRoach5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IvaRoach5</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JBurant" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Burant, Jiri</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JOIMER%20REYES" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JOIMER REYES</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JacintaGibson" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JacintaGibson</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Adams, Jonathan</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JamesC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">C., James</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JanuariusStringer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JanuariusStringer</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jasmins" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jasmins</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JasperSawyer7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JasperSawyer7</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jaumep" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jaumep</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JavierFernandez" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JavierFernandez</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JayStafford3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JayStafford3</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcarl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jcarl</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcentel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jcentel</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcubic" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jcubic</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jeraldinesewell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jeraldinesewell</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JesseBHXEmrh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JesseBHXEmrh</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JettieGibson2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JettieGibson2</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jgpestana" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jgpestana</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jgraeme" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lingard, J. Graeme</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jnicolas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jnicolas</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JoWi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JoWi</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Johnki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Johnki</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jonathanacohen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jonathanacohen</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JonesRichter8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JonesRichter8</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jowenshaw" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jowenshaw</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:João%20Pedro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">João Pedro</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jpkent" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jpkent</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jsargey" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jsargey</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jsbueno" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jsbueno</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jstaniek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jstaniek</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JudasPeoples9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JudasPeoples9</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JudasPritchard" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JudasPritchard</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JudithGraves6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JudithGraves6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jumoun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jumoun</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JustinaEldridge" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JustinaEldridge</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:K.euser" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">K.euser</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kammreiter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kammreiter</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KamranMackey" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kamran Mackey</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Karakartala" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Karakartala</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KarkGunn4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KarkGunn4</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Karolus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Karolus</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kasos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kasos</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kay%20D" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kay D</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kaytee" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tubo, Kira</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kazuyuki%20Yoshimura" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kazuyuki Yoshimura</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Keepiledar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Keepiledar</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KeithC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KeithC</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Khokkanen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khokkanen</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KittyBauer5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KittyBauer5</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KlementynaMckinney" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KlementynaMckinney</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kmr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kmr</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KolbeKline1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KolbeKline1</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kolorguild" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kolorguild</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krauss" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Krauss</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krishnakeshav" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">keshav, krishna</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KrisvdMewe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KrisvdMewe</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KroniK907" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KroniK907</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krumelmonster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Krumelmonster</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KrystalMinchin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KrystalMinchin</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KsaweryDempsey" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KsaweryDempsey</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kwilliams" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kwilliams</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:L" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">L</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LariaJohn3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LariaJohn3</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LeanaParks2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LeanaParks2</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LemuelHo1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LemuelHo1</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LemuelWerner5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LemuelWerner5</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LeoNeo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LeoNeo</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lhcezar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lhcezar</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LidaMasters1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LidaMasters1</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lino</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Liotier" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Liotier</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lliehu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lliehu</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lohsol" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Scheidt, Heiko</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LovisaKessler" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LovisaKessler</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lpetrolekas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Petrolekas, Luke</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LubomyrWalden" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LubomyrWalden</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LucretiLlb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LucretiLlb</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lukasjelinek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lukasjelinek</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LynnForbes3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LynnForbes3</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M.casalin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Casalin, Matteo</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MM%20241122" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MM 241122</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MMariana" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mărăşoiu, Mariana</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MZNBelendndq" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MZNBelendndq</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ma83mit" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ma83mit</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MabelleStanley" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MabelleStanley</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MadisonDarnell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MadisonDarnell</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MagdaleneOneal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MagdaleneOneal</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MaggieGray2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MaggieGray2</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MagnoliaParsons" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MagnoliaParsons</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manebule" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manebule</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mangat%20veer%20sagar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mangat veer sagar</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manu.unni" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manu.unni</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarMai" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarMai</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarchCourtney" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarchCourtney</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcinz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcinz</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marco74" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marco74</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MargeretRiley" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MargeretRiley</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarillaMarsh7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarillaMarsh7</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marius" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marius</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MartaRollins2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MartaRollins2</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarthaBright4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarthaBright4</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MartinPC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MartinPC</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MateuszDominguez" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MateuszDominguez</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Matt%2051" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Matt 51</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MauroTrevisan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MauroTrevisan</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mazuritz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mazuritz</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mbemidio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mbemidio</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Meghanmcfadden15" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Meghanmcfadden15</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MercedesDelatorre" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MercedesDelatorre</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Merchantbusiness" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Merchantbusiness</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Merge" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kepplinger, Martin</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MerleGlass6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MerleGlass6</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mesutkullar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mesutkullar</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mgiri" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mgiri</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MiHaLiS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MiHaLiS</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michaelx" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michaelx</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michal.p" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michal.p</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michel%20Gagnon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michel Gagnon</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michiel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michiel</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mifritscher" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mifritscher</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MikeyZ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MikeyZ</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MinaHuggins7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MinaHuggins7</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mind4z" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mind4z</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MinervaLuna8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MinervaLuna8</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Minion3665" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Minion3665</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mitcoes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mitcoes</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mjkopp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mjkopp</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mklever" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mklever</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mlechner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lechner, Marco</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mloiseleur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mloiseleur</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mnalima" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mnalima</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mnsoto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mnsoto</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mochir" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mochir</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mordocai" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mordocai</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MorganJohnstone" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MorganJohnstone</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mrugiero" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rugiero, Mario</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mst0" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mst0</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mttza1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mttza1</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Musicstave" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Musicstave</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mustafa22" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mustafa22</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Muxer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nathansen, Martin</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mzalewski" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mzalewski</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nacerix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nacerix</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Narcisgarcia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Narcisgarcia</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NealEspinoza6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NealEspinoza6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nestor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nestor</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NettaHurd9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NettaHurd9</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NettieParra1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NettieParra1</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NewtonZuniga9" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NewtonZuniga9</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Niboshi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nishino, Daisuke</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NicholasLanier" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NicholasLanier</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nickk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nickk</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NinaLam6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NinaLam6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Noirin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Noirin</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NoricumArthur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NoricumArthur</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NorrisAndersen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NorrisAndersen</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NovemberVogel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NovemberVogel</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nsharifi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nsharifi</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nuclearbob" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nuclearbob</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nzoueidi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Naeil, Zoueidi</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OUPS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OUPS</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oashnic" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oashnic</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Odalcet" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Odalcet</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Oiaohm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Oiaohm</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OlaPost6" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OlaPost6</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OlieBooth3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OlieBooth3</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OlivierC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OlivierC</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OnopriyBrandon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OnopriyBrandon</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OrlandoArellano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OrlandoArellano</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:OscarMeredith" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">OscarMeredith</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PanEva" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PanEva</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paolettopn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paolettopn</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paolobenve" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paolobenve</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pascaje" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pascaje</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Paultrojahn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Paultrojahn</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Penguin42" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Penguin42</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Percherie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Percherie</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PercherskySanford" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PercherskySanford</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Peter.senna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Senna Tschudin, Peter</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pgraber" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pgraber</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Phil.davis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Phil.davis</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Phillip" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Szelat, Phillip</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pierre" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pierre</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Piotrdrag" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Piotrdrag</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pitonyak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pitonyak</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pkst" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pkst</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Planner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Planner</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PolishHungarianSharp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PolishHungarianSharp</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Posterboy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Posterboy</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:PragueBergman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">PragueBergman</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Pulsifer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Pulsifer</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:R.Yu." text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">R.Yu.</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rahul050" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rahul050</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rbecke" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rbecke</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ReeseShepherd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ReeseShepherd</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ReginaldMcgraw" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ReginaldMcgraw</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RenniePrescott" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RenniePrescott</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RetaStern5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RetaStern5</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RhodaMackey3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RhodaMackey3</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RiceBurger3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RiceBurger3</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ritlay" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ritlay</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rmarquardt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rmarquardt</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Roadrunner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roadrunner</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RollandHannah" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RollandHannah</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RosaliaFair4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RosaliaFair4</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RosannaPaul7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RosannaPaul7</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RosariaLampungm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RosariaLampungm</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RoyFokker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RoyFokker</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:RoyShelton7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">RoyShelton7</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ryan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ryan</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Rzaugg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rzaugg</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SDann22" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SDann22</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sagar.libo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sagar.libo</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sahas" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sahasranaman M S</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sam888" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sam888</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SamBenavides5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SamBenavides5</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sankarshan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sankarshan</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SavinaShaffer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SavinaShaffer</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sbosio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bosio, Santiago</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Seanyoung" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Seanyoung</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SebastianNorth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SebastianNorth</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sebutler" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sebutler</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sergwish" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sergwish</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sfeuser" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sfeuser</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sgrotz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sgrotz</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shaforostoff" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shaforostoff</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shankar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shankar</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shaun.schutte" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shaun.schutte</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Shitamo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Shitamo</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SidneyArredondo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SidneyArredondo</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sidorelauku" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sidorelauku</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Silwol" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Silwol</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Simplecontrast" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Simplecontrast</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sjshaffer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sjshaffer</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SlavicNapier8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SlavicNapier8</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Slideon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kasztenny, Adam</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sockseight" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sockseight</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Soothsilver" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Soothsilver</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Spledger" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Spledger</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sshelagh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sshelagh</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sshi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sshi</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ssorgatem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ssorgatem</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:StaciBorthwick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">StaciBorthwick</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stappers" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stappers</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stefan.weiberg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Weiberg, Stefan</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stephan66" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stephan66</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:StillSven" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">StillSven</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Stuarta0" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Stuarta0</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sturm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sturm</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sungkhum" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sungkhum</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Superurbi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Superurbi</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:SusanSwain3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">SusanSwain3</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sven.fischer.de" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sven.fischer.de</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Swazmo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Swazmo</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Sydbarrett74" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sydbarrett74</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Synanceia%20(Pierre)" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Synanceia (Pierre)</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tauon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tauon</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Techal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Techal</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Teelittle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Teelittle</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TeresaMacias3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TeresaMacias3</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Teresavillegas1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Teresavillegas1</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TheaGallardo8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TheaGallardo8</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TheodoseyPeralta" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TheodoseyPeralta</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TheophilusHess" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TheophilusHess</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thomase" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thomase</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thomeck" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thomeck</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Thorongil" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Thorongil</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tim1075" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tim1075</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Timeshifter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timeshifter</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Timj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Timj</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TimothyChilds" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TimothyChilds</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tolunaydundar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tolunaydundar</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TomaMora8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TomaMora8</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tomkeb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tomkeb</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tomrobert87" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tomrobert87</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TressieCulver" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TressieCulver</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tsimonq2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tsimonq2</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:TuMadre" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">TuMadre</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tux3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Isnard, Timothée</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Tux40000" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tux40000</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Unhammer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Unhammer</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Unknown%2032" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Unknown 32</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Usik64" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Usik64</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ValessioBrito" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ValessioBrito</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VanHogan7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VanHogan7</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Varshneydevansh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Varshneydevansh</text:a> (2) </text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Varun.dhall" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dhall, Varun</text:a> (2) </text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VasylynaKendall" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VasylynaKendall</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VerneDodd5" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VerneDodd5</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VeronaXiong3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VeronaXiong3</text:a> (2) </text:p> </table:table-cell> @@ -15316,11 +15352,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Villeroy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Villeroy</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Viper550" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Viper550</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VirginArredondo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VirginArredondo</text:a> (2) </text:p> </table:table-cell> @@ -15330,11 +15366,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VladimirPrince" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VladimirPrince</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:VladislavA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">VladislavA</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Volker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Volker</text:a> (2) </text:p> </table:table-cell> @@ -15344,11 +15380,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Vossman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vossman</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WaclawaSavage" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WaclawaSavage</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WalentynaPatrick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WalentynaPatrick</text:a> (2) </text:p> </table:table-cell> @@ -15358,11 +15394,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WarrenChristian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WarrenChristian</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WashingtonOakley" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WashingtonOakley</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Watermelons" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Watermelons</text:a> (2) </text:p> </table:table-cell> @@ -15372,11 +15408,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wertie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wertie</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wi24rd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wi24rd</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WikiImporter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WikiImporter</text:a> (2) </text:p> </table:table-cell> @@ -15386,11 +15422,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:WincentyMorrison" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">WincentyMorrison</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wirelessben" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wirelessben</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Wkn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Wkn</text:a> (2) </text:p> </table:table-cell> @@ -15400,11 +15436,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xdelatour" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xdelatour</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Xoristzatziki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Xoristzatziki</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Yalda" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Yalda</text:a> (2) </text:p> </table:table-cell> @@ -15414,11 +15450,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ZiriaKo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ZiriaKo</text:a> (2) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ZoraWinkler1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ZoraWinkler1</text:a> (2) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:流星依旧" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">流星依旧</text:a> (2) </text:p> </table:table-cell> @@ -15428,11 +15464,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:A%20H" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">A H</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:A.jadiba" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">A.jadiba</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AJW" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AJW</text:a> (1) </text:p> </table:table-cell> @@ -15442,11 +15478,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Abdulaziz%20A%20Alayed" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Abdulaziz A Alayed</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Absolute%20Garcinia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Absolute Garcinia</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Acagastya" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Acagastya</text:a> (1) </text:p> </table:table-cell> @@ -15456,11 +15492,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AdalberDesailll" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AdalberDesailll</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Adlard.matthew" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Adlard.matthew</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aevora" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aevora</text:a> (1) </text:p> </table:table-cell> @@ -15470,11 +15506,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ainurshakirov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ainurshakirov</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ajaxfiore" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ajaxfiore</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Akshit" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sudheer Kumar, Akshit</text:a> (1) </text:p> </table:table-cell> @@ -15484,11 +15520,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alavec" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alavec</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Albrechtloh" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Albrechtloh</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aleks" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aleks</text:a> (1) </text:p> </table:table-cell> @@ -15498,11 +15534,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alex%20Henrie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Henrie, Alex</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alex-16" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alex-16</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alex38-68" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alex38-68</text:a> (1) </text:p> </table:table-cell> @@ -15512,11 +15548,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AlexF" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AlexF</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AlexP111223" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AlexP111223</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AlexPS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AlexPS</text:a> (1) </text:p> </table:table-cell> @@ -15526,11 +15562,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexandri" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexandri</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexey.chemichev" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chemichev, Alexey</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexis%200071" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexis 0071</text:a> (1) </text:p> </table:table-cell> @@ -15540,11 +15576,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexnivan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexnivan</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alexsandro%20Matias" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alexsandro Matias</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Aleyna.sare" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Aleyna.sare</text:a> (1) </text:p> </table:table-cell> @@ -15554,11 +15590,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AlphonsDen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AlphonsDen</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alvaropg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alvaropg</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Alverne" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Alverne</text:a> (1) </text:p> </table:table-cell> @@ -15568,11 +15604,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andarilhobotto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andarilhobotto</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anderius" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anderius</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndreasEk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndreasEk</text:a> (1) </text:p> </table:table-cell> @@ -15582,11 +15618,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AndreasNeudecker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AndreasNeudecker</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andrey.turkin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andrey.turkin</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Andriazdk2177" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Andriazdk2177</text:a> (1) </text:p> </table:table-cell> @@ -15596,11 +15632,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AnimyosFox" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AnimyosFox</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anjilajoli" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anjilajoli</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ankurkh1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ankur, Khandelwal</text:a> (1) </text:p> </table:table-cell> @@ -15610,11 +15646,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Antonello%20Lobianco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Antonello Lobianco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AntoniePonder" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AntoniePonder</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Anurag%20kanungo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Anurag kanungo</text:a> (1) </text:p> </table:table-cell> @@ -15624,11 +15660,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Apps" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Priyadarshi, Apurva</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arekm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arekm</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ari" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ari</text:a> (1) </text:p> </table:table-cell> @@ -15638,11 +15674,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arkonide" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arkonide</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Armandos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Armandos</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arnaudc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Arnaudc</text:a> (1) </text:p> </table:table-cell> @@ -15652,11 +15688,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Arnotixe" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Teigseth, Arno</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Artintal" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Artintal</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ArturNeumann" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ArturNeumann</text:a> (1) </text:p> </table:table-cell> @@ -15666,11 +15702,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Asiersar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Asiersar</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Asselbornmauro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Asselbornmauro</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Astalaseven" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Astalaseven</text:a> (1) </text:p> </table:table-cell> @@ -15680,11 +15716,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Atpnguyen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Atpnguyen</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Audreyt" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Tang, Audrey</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:AundreaPqf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AundreaPqf</text:a> (1) </text:p> </table:table-cell> @@ -15694,11 +15730,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Averell7" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Averell7</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ayoooub" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ayoooub</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:B3t" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">B3t</text:a> (1) </text:p> </table:table-cell> @@ -15708,11 +15744,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bailiwick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bailiwick</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bailly02" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bailly02</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bami" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bami</text:a> (1) </text:p> </table:table-cell> @@ -15722,11 +15758,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BarryLovegrove" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BarryLovegrove</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bavincen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vincent, Babu</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bburak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bburak</text:a> (1) </text:p> </table:table-cell> @@ -15736,11 +15772,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Behrad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Khorram, Behrad</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BernardHannafor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BernardHannafor</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bestdating" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bestdating</text:a> (1) </text:p> </table:table-cell> @@ -15750,11 +15786,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Beznogov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beznogov</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bezzy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bezzy</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bgloberman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bgloberman</text:a> (1) </text:p> </table:table-cell> @@ -15764,11 +15800,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bhumikasethi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bhumikasethi</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BillyBurke" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BillyBurke</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Biofool" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Biofool</text:a> (1) </text:p> </table:table-cell> @@ -15778,11 +15814,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bjossir" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bjossir</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bkg2018" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bkg2018</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BlakeGartrell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BlakeGartrell</text:a> (1) </text:p> </table:table-cell> @@ -15792,11 +15828,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BlancheClopton" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BlancheClopton</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Blandyna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Blandyna</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Boboo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Boboo</text:a> (1) </text:p> </table:table-cell> @@ -15806,11 +15842,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Borowcm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Borowcm</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bortis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bortis</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Brad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Sowden, Brad</text:a> (1) </text:p> </table:table-cell> @@ -15820,11 +15856,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BridgettC" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BridgettC</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Brinzing" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Brinzing, Oliver</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BroderiHolyman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BroderiHolyman</text:a> (1) </text:p> </table:table-cell> @@ -15834,11 +15870,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BryceBrassell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BryceBrassell</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BryceMoorhouse" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BryceMoorhouse</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Budo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Budo</text:a> (1) </text:p> </table:table-cell> @@ -15848,11 +15884,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bureken" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bureken</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Burger.ga" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Burger.ga</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Bwi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bwi</text:a> (1) </text:p> </table:table-cell> @@ -15862,11 +15898,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:BáthoryPéter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">BáthoryPéter</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CalebSommer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CalebSommer</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CalebWgypcu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CalebWgypcu</text:a> (1) </text:p> </table:table-cell> @@ -15876,11 +15912,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Capira" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Capira</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CarloASilva" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CarloASilva</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Carlos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Carlos</text:a> (1) </text:p> </table:table-cell> @@ -15890,11 +15926,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Castarco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Castarco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cathy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cathy</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CedricQ73ktehvp" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CedricQ73ktehvp</text:a> (1) </text:p> </table:table-cell> @@ -15904,11 +15940,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cesera" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cesera</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChantalWalker" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChantalWalker</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CharlesJenkins" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CharlesJenkins</text:a> (1) </text:p> </table:table-cell> @@ -15918,11 +15954,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chmilblick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chmilblick</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chouquette" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Beauzée-Luyssen, Hugo</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ChrPr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ChrPr</text:a> (1) </text:p> </table:table-cell> @@ -15932,11 +15968,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Christoph.herzog" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Christoph.herzog</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Chrlutz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chrlutz</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ciampix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ciampix</text:a> (1) </text:p> </table:table-cell> @@ -15946,11 +15982,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ciriaco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ciriaco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Classieur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Classieur</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Claudio%20Pannacci" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Claudio Pannacci</text:a> (1) </text:p> </table:table-cell> @@ -15960,11 +15996,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Clem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clem</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:CletaValentino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">CletaValentino</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cnzhx" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cnzhx</text:a> (1) </text:p> </table:table-cell> @@ -15974,11 +16010,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cora17" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cora17</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Corsolibreoffice" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Corsolibreoffice</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cosmopolitan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cosmopolitan</text:a> (1) </text:p> </table:table-cell> @@ -15988,11 +16024,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cpinedar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cpinedar</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cpmipn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cpmipn</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Craigsbookclub" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Craigsbookclub</text:a> (1) </text:p> </table:table-cell> @@ -16002,11 +16038,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Csongorhalmai" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Csongorhalmai</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Css17" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Css17</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ctfranz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ctfranz</text:a> (1) </text:p> </table:table-cell> @@ -16016,11 +16052,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Cycpe950609" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Cycpe950609</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DaisieDavison" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DaisieDavison</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Danichocolate" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Danichocolate</text:a> (1) </text:p> </table:table-cell> @@ -16030,11 +16066,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Darianospb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Darianospb</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DarylAlcantar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DarylAlcantar</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DarylBoot" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DarylBoot</text:a> (1) </text:p> </table:table-cell> @@ -16044,11 +16080,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DavidDyck" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DavidDyck</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davidmichel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davidmichel</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Davidredick" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Davidredick</text:a> (1) </text:p> </table:table-cell> @@ -16058,11 +16094,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dbojan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dbojan</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ddimarco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Di Marco, Daniel</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DeShark" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DeShark</text:a> (1) </text:p> </table:table-cell> @@ -16072,11 +16108,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DebarshiRay" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ray, Debarshi</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DeborahW18" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DeborahW18</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Decs75" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Decs75</text:a> (1) </text:p> </table:table-cell> @@ -16086,11 +16122,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dennisroczek's%20Test%20Account" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dennisroczek's Test Account</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Deragon" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Deragon</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dezsiszabi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dezsiszabi</text:a> (1) </text:p> </table:table-cell> @@ -16100,11 +16136,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dherde" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herde, Daniel</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dhiren" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dhiren</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dianasedlak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dianasedlak</text:a> (1) </text:p> </table:table-cell> @@ -16114,11 +16150,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Divayth" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kettner, Valentin</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Diver" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Diver</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dldld" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dldld</text:a> (1) </text:p> </table:table-cell> @@ -16128,11 +16164,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DocuFree" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DocuFree</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dominiko" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dominiko</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dominuk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dominuk</text:a> (1) </text:p> </table:table-cell> @@ -16142,11 +16178,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:DoreenDuell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">DoreenDuell</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Douglasm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Douglasm</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Drizamanuber" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Drizamanuber</text:a> (1) </text:p> </table:table-cell> @@ -16156,11 +16192,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Drtimwright" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Drtimwright</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dschulten" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dschulten</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Dusek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Dusek</text:a> (1) </text:p> </table:table-cell> @@ -16170,11 +16206,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eardeleanu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eardeleanu</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:EarnestLamaro" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">EarnestLamaro</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Echada" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Echada</text:a> (1) </text:p> </table:table-cell> @@ -16184,11 +16220,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Edsonlead" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Edsonlead</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Efcis" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Efcis</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Efegurkan" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Efegurkan</text:a> (1) </text:p> </table:table-cell> @@ -16198,11 +16234,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ehenryb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ehenryb</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ekuiitr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ekuiitr</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ElahiMohammad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ElahiMohammad</text:a> (1) </text:p> </table:table-cell> @@ -16212,11 +16248,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ElmaWalcott" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ElmaWalcott</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Elshize" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Elshize</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emad</text:a> (1) </text:p> </table:table-cell> @@ -16226,11 +16262,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Emyr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Emyr</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Enesates" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Enesates</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ennael" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ennael</text:a> (1) </text:p> </table:table-cell> @@ -16240,11 +16276,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Erdemdemirkapi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Erdemdemirkapi</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eric" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eric</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:ErickRijoJr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">ErickRijoJr</text:a> (1) </text:p> </table:table-cell> @@ -16254,11 +16290,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eroux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Roux, Elie</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Erto" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Erto</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Esben%20aaberg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Esben aaberg</text:a> (1) </text:p> </table:table-cell> @@ -16268,11 +16304,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Etinos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Etinos</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Etua" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Etua</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Eulerian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Eulerian</text:a> (1) </text:p> </table:table-cell> @@ -16282,11 +16318,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FMA" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FMA</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Factooor" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Factooor</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fahad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fahad</text:a> (1) </text:p> </table:table-cell> @@ -16296,11 +16332,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Falcao" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Falcao</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Farhaf" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Farhaf</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Farhank" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Farhank</text:a> (1) </text:p> </table:table-cell> @@ -16310,11 +16346,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FarzanehSarafraz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FarzanehSarafraz</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Faseeh1218" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Faseeh1218</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fdem" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fdem</text:a> (1) </text:p> </table:table-cell> @@ -16324,11 +16360,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FerminAndrade" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">FerminAndrade</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Feyza" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Feyza</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fgland" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fgland</text:a> (1) </text:p> </table:table-cell> @@ -16338,11 +16374,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Flirtwomens" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Flirtwomens</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Foadv" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foadv</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Foobar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Foobar</text:a> (1) </text:p> </table:table-cell> @@ -16352,11 +16388,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Francesco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Francesco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:FrankSteiner72" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Steiner, Frank</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Fred.th" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Fred.th</text:a> (1) </text:p> </table:table-cell> @@ -16366,11 +16402,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Funnym0nk3y" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Funnym0nk3y</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Future1529" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manas Joshi</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gabix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gabix</text:a> (1) </text:p> </table:table-cell> @@ -16380,11 +16416,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gabrielcossette" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gabrielcossette</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gabrielezorzi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gabrielezorzi</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ganton" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ganton</text:a> (1) </text:p> </table:table-cell> @@ -16394,11 +16430,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gcoelho" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gcoelho</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GeeZ" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GeeZ</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gekacheka" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gekacheka</text:a> (1) </text:p> </table:table-cell> @@ -16408,11 +16444,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gerard" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gerard</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gertvv" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">van Valkenhoef, Gert</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ghouston" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Houston, Gary</text:a> (1) </text:p> </table:table-cell> @@ -16422,11 +16458,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gicmo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gicmo</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gilssonn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gilssonn</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gmeijssen" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gmeijssen</text:a> (1) </text:p> </table:table-cell> @@ -16436,11 +16472,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gpmanrpi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gpmanrpi</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Grahl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Grahl</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GrantCelley" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GrantCelley</text:a> (1) </text:p> </table:table-cell> @@ -16450,11 +16486,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gregghz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hernandez, Gregg</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gregkel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gregkel</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:GroverYQVvwokac" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GroverYQVvwokac</text:a> (1) </text:p> </table:table-cell> @@ -16464,11 +16500,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Guhde" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guhde</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Guillaume" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Guillaume</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Gxyd" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gxyd</text:a> (1) </text:p> </table:table-cell> @@ -16478,11 +16514,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HFujimaki" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HFujimaki</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HKagerer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HKagerer</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HLGZorawdi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HLGZorawdi</text:a> (1) </text:p> </table:table-cell> @@ -16492,11 +16528,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hagos" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hagos</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hamati" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hamati</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hamkins" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hamkins</text:a> (1) </text:p> </table:table-cell> @@ -16506,11 +16542,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hasinasi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hasinasi</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hbr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hbr</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Heiher" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rui Wang</text:a> (1) </text:p> </table:table-cell> @@ -16520,11 +16556,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HessnovTHR44" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HessnovTHR44</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Heygo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Heygo</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Heyheyitshay" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Heyheyitshay</text:a> (1) </text:p> </table:table-cell> @@ -16534,11 +16570,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hillrich" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hillrich</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HiltonFtel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HiltonFtel</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hitomi%20t" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hitomi t</text:a> (1) </text:p> </table:table-cell> @@ -16548,11 +16584,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hlavaty" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hlavaty, Tomas</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hoaivan27299" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hoaivan27299</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Homeboy445" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">K, Akshit</text:a> (1) </text:p> </table:table-cell> @@ -16562,11 +16598,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hopman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hopman</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HoracioRydge" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HoracioRydge</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hornmichaels" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hornmichaels</text:a> (1) </text:p> </table:table-cell> @@ -16576,11 +16612,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hriostat" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hriostat</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:HumbertGno" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">HumbertGno</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Hwoehrle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Hwoehrle</text:a> (1) </text:p> </table:table-cell> @@ -16590,11 +16626,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ian</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Iandol" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Iandol</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ianjo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ianjo</text:a> (1) </text:p> </table:table-cell> @@ -16604,11 +16640,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IbraM" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IbraM</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IceBlur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IceBlur</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ida" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ida</text:a> (1) </text:p> </table:table-cell> @@ -16618,11 +16654,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Igorizyumin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Igorizyumin</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Imypsychconsult" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Imypsychconsult</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Insanetree" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Insanetree</text:a> (1) </text:p> </table:table-cell> @@ -16632,11 +16668,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Iremsendur" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Şendur, İrem</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Irene" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Irene</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IrrevdJohn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IrrevdJohn</text:a> (1) </text:p> </table:table-cell> @@ -16646,11 +16682,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Ismael" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Ismael</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:IvanP" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">IvanP</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JDługosz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JDługosz</text:a> (1) </text:p> </table:table-cell> @@ -16660,11 +16696,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JK2308" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JK2308</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jab" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jab</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jailletc36" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jailletc36</text:a> (1) </text:p> </table:table-cell> @@ -16674,11 +16710,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jamil" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jamil</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JanEnEm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JanEnEm</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Janani" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Janani</text:a> (1) </text:p> </table:table-cell> @@ -16688,11 +16724,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jano" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jano</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Janvlug" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Janvlug</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jayppc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jayppc</text:a> (1) </text:p> </table:table-cell> @@ -16702,11 +16738,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jcdericco" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jcdericco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jchaffraix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chaffraix, Julien</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jean.fr" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jean.fr</text:a> (1) </text:p> </table:table-cell> @@ -16716,11 +16752,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JeanMcPhillamy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JeanMcPhillamy</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JefferyMackenna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JefferyMackenna</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jentron256" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jentron256</text:a> (1) </text:p> </table:table-cell> @@ -16730,11 +16766,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jerdum" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jerdum</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JeremyBicha" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bicha, Jeremy</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JerryShi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JerryShi</text:a> (1) </text:p> </table:table-cell> @@ -16744,11 +16780,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jessie" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Gao, Qiwen</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JestineNww" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JestineNww</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jetomit" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lazar, Timotej</text:a> (1) </text:p> </table:table-cell> @@ -16758,11 +16794,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jhbruhn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bruhn, Jan-Henrik</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jinocvla" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jinocvla</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JiroMatsuzawa" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JiroMatsuzawa</text:a> (1) </text:p> </table:table-cell> @@ -16772,11 +16808,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jmarchn" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jmarchn</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joachim" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joachim</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joanluc" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joanluc</text:a> (1) </text:p> </table:table-cell> @@ -16786,11 +16822,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joculatrix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Vaznova, Sloane</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JoelH" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JoelH</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JohnTheHuman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JohnTheHuman</text:a> (1) </text:p> </table:table-cell> @@ -16800,11 +16836,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JomarSilva" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JomarSilva</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jonatanpc8" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jonatanpc8</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JonelleFritz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JonelleFritz</text:a> (1) </text:p> </table:table-cell> @@ -16814,11 +16850,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JordanS" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JordanS</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jorge%20Rodríguez%20Fonseca" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jorge Rodríguez Fonseca</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jorgemendes" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jorgemendes</text:a> (1) </text:p> </table:table-cell> @@ -16828,11 +16864,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joselaurian" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joselaurian</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Joshun" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Joshun</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:José%20Eduardo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">José Eduardo</text:a> (1) </text:p> </table:table-cell> @@ -16842,11 +16878,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jpl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jpl</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jrtc27" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Clarke, James</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JudeMcCafferty" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JudeMcCafferty</text:a> (1) </text:p> </table:table-cell> @@ -16856,11 +16892,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:JuliannSnider" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">JuliannSnider</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jumapico" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Picca, Juan</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Jwcampbell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Jwcampbell</text:a> (1) </text:p> </table:table-cell> @@ -16870,11 +16906,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KNM" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KNM</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kader" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kader</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kapoorsahab" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kapoorsahab</text:a> (1) </text:p> </table:table-cell> @@ -16884,11 +16920,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kbhat" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bhat, Kishor</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Keith%20Long" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Keith Long</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kenb" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kenb</text:a> (1) </text:p> </table:table-cell> @@ -16898,11 +16934,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kenton3255" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kenton3255</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kiyotaka%20Nishibori" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kiyotaka Nishibori</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kkasper" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kasper, Kacper</text:a> (1) </text:p> </table:table-cell> @@ -16912,11 +16948,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Knobo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Knobo</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Koeleman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Koeleman</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KoffeinFlummi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KoffeinFlummi</text:a> (1) </text:p> </table:table-cell> @@ -16926,11 +16962,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:KourtneNester" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">KourtneNester</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kr1shna" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kr1shna</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Krotow" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Krotow</text:a> (1) </text:p> </table:table-cell> @@ -16940,11 +16976,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Kying" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Kying</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LKPSharylptwsdo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LKPSharylptwsdo</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LMKemm" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LMKemm</text:a> (1) </text:p> </table:table-cell> @@ -16954,11 +16990,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LaPingvino" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LaPingvino</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Laskov" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Laskov</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LatoshaZnu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LatoshaZnu</text:a> (1) </text:p> </table:table-cell> @@ -16968,11 +17004,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LavinaVandermar" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LavinaVandermar</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Le-voileux" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Le-voileux</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Learner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Learner</text:a> (1) </text:p> </table:table-cell> @@ -16982,11 +17018,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Libreleo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Libreleo</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Librestez54" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Librestez54</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Likoski" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Likoski</text:a> (1) </text:p> </table:table-cell> @@ -16996,11 +17032,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lineinthesand" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lineinthesand</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Literacyglenys" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Literacyglenys</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Litishia" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Litishia</text:a> (1) </text:p> </table:table-cell> @@ -17010,11 +17046,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Llalllal1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Llalllal1</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lnjuanj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lnjuanj</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lobillo" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lobillo</text:a> (1) </text:p> </table:table-cell> @@ -17024,11 +17060,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lopp%20Rs" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lopp Rs</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lorne" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lorne</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lplatypus" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lplatypus</text:a> (1) </text:p> </table:table-cell> @@ -17038,11 +17074,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Lucas%20Filho" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Lucas Filho</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:LudieNutter" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">LudieNutter</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luiz%20Cláudio" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luiz Cláudio</text:a> (1) </text:p> </table:table-cell> @@ -17052,11 +17088,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Luke" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Luke</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M.sacharewicz" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">M.sacharewicz</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:M1ndfr3ak" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">M1ndfr3ak</text:a> (1) </text:p> </table:table-cell> @@ -17066,11 +17102,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MJW" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MJW</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maahicool" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maahicool</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mabel7997eelu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mabel7997eelu</text:a> (1) </text:p> </table:table-cell> @@ -17080,11 +17116,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Magicienap" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Magicienap</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Magmag" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Magmag</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mahdiekrani" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mahdiekrani</text:a> (1) </text:p> </table:table-cell> @@ -17094,11 +17130,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maliuta" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maliuta</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Manveru1986" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Manveru1986</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mapreri" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Rizzolo, Mattia</text:a> (1) </text:p> </table:table-cell> @@ -17108,11 +17144,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marc-medley" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marc-medley</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarcK" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarcK</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarcelProut" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarcelProut</text:a> (1) </text:p> </table:table-cell> @@ -17122,11 +17158,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcobiscaro2112" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Biscaro, Marco</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcosalex" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcosalex</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Marcosps" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Marcosps</text:a> (1) </text:p> </table:table-cell> @@ -17136,11 +17172,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarianaConnell" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarianaConnell</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mariano%20Gaudix" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mariano Gaudix</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarkWielaaard" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarkWielaaard</text:a> (1) </text:p> </table:table-cell> @@ -17150,11 +17186,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Markzog21" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Markzog21</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MarthaWaterman" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MarthaWaterman</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Martinvanzijl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Martinvanzijl</text:a> (1) </text:p> </table:table-cell> @@ -17164,11 +17200,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Maryanndefo91" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Maryanndefo91</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Masakim-icraft" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Masakim-icraft</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Massao" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Massao</text:a> (1) </text:p> </table:table-cell> @@ -17178,11 +17214,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Matsuura" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Matsuura</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Matt%20K" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Matt K</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MattTheGeek" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MattTheGeek</text:a> (1) </text:p> </table:table-cell> @@ -17192,11 +17228,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Matěj" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Matěj</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mau" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mau</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MavropaliasG" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MavropaliasG</text:a> (1) </text:p> </table:table-cell> @@ -17206,11 +17242,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mazinho" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mazinho</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mbechler" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Bechler, Moritz</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mblume3" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mblume3</text:a> (1) </text:p> </table:table-cell> @@ -17220,11 +17256,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Megan44Dgxg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Megan44Dgxg</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Melikeyurtoglu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Melikeyurtoglu</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Menturi" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Menturi</text:a> (1) </text:p> </table:table-cell> @@ -17234,11 +17270,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mete0r" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mete0r</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mhaehnel" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mhaehnel</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mhcrnl" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mhcrnl</text:a> (1) </text:p> </table:table-cell> @@ -17248,11 +17284,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mibm123" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mibm123</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michaelwood" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michaelwood</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Michka%20B" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Michka B</text:a> (1) </text:p> </table:table-cell> @@ -17262,11 +17298,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MiguelKastner" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MiguelKastner</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Miguelteixeira" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Miguelteixeira</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Miguelverdu" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Miguelverdu</text:a> (1) </text:p> </table:table-cell> @@ -17276,11 +17312,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MikeLittle" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MikeLittle</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mikolg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mikolg</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MilagroWilkerso" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MilagroWilkerso</text:a> (1) </text:p> </table:table-cell> @@ -17290,11 +17326,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Miles" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Miles</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Minarja4" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Minarja4</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mirsad" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mirsad</text:a> (1) </text:p> </table:table-cell> @@ -17304,11 +17340,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mixer" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mixer</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mixstah" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mixstah</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mlager" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mlager</text:a> (1) </text:p> </table:table-cell> @@ -17318,11 +17354,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Moaz%20eldfrawy" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Moaz eldfrawy</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Moberg" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Moberg</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mohammedzalta" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mohammedzalta</text:a> (1) </text:p> </table:table-cell> @@ -17332,11 +17368,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Monikayadav" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Monikayadav</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Moormaster" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Herbst, André</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Morenonatural" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Morenonatural</text:a> (1) </text:p> </table:table-cell> @@ -17346,11 +17382,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mrund" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mrund</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Muhammadsufyanzainalabidin" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Muhammadsufyanzainalabidin</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Mw" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Mw</text:a> (1) </text:p> </table:table-cell> @@ -17360,11 +17396,11 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:MyraBlacklow" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">MyraBlacklow</text:a> (1) </text:p> </table:table-cell> - </table:table-row> - <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:N3rd4i" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">N3rd4i</text:a> (1) </text:p> </table:table-cell> + </table:table-row> + <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:NEOhidra" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">NEOhidra</text:a> (1) </text:p> </table:table-cell> @@ -17374,6 +17410,9 @@ <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Nanotron" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Nanotron</text:a> (1) </text:p> </table:table-cell> + <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:a xlink:type="simple" xlink:href="http://wiki.documentfoundation.org/User:Naomiobbard" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Naomiobbard</text:a> (1) </text:p> + </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string"> diff --git a/registry/source/reflread.cxx b/registry/source/reflread.cxx index 844b73166e03..13c6a28ae458 100644 --- a/registry/source/reflread.cxx +++ b/registry/source/reflread.cxx @@ -955,10 +955,6 @@ RTParamMode MethodList::getMethodParamMode(sal_uInt16 index, sal_uInt16 paramInd return aMode; } -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 -extern "C" void __coverity_tainted_data_sanitize__(void *); -#endif - sal_uInt16 MethodList::getMethodExcCount(sal_uInt16 index) const { sal_uInt16 aCount = 0; @@ -967,9 +963,6 @@ sal_uInt16 MethodList::getMethodExcCount(sal_uInt16 index) const { try { aCount = readUINT16(m_pIndex[index] + calcMethodParamIndex(readUINT16(m_pIndex[index] + METHOD_OFFSET_PARAM_COUNT))); -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - __coverity_tainted_data_sanitize__(&aCount); -#endif } catch (BlopObject::BoundsError &) { SAL_WARN("registry", "bad data"); } diff --git a/reportdesign/source/ui/report/ReportSection.cxx b/reportdesign/source/ui/report/ReportSection.cxx index 77ad558e0396..de7f0ef69be4 100644 --- a/reportdesign/source/ui/report/ReportSection.cxx +++ b/reportdesign/source/ui/report/ReportSection.cxx @@ -598,19 +598,16 @@ void OReportSection::createDefault(const OUString& _sType,SdrObject* _pObj) if( pSourceObj ) { const SfxItemSet& rSource = pSourceObj->GetMergedItemSet(); - SfxItemSetFixed< - // Ranges from SdrAttrObj: - SDRATTR_START, SDRATTR_SHADOW_LAST, - SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST, - SDRATTR_TEXTDIRECTION, - SDRATTR_TEXTDIRECTION, - // Graphic attributes, 3D properties, - // CustomShape properties: - SDRATTR_GRAF_FIRST, - SDRATTR_CUSTOMSHAPE_LAST, - // Range from SdrTextObj: - EE_ITEMS_START, EE_ITEMS_END> - aDest( _pObj->getSdrModelFromSdrObject().GetItemPool() ); + SfxItemSet aDest(SfxItemSet::makeFixedSfxItemSet< + // Ranges from SdrAttrObj: + SDRATTR_START, SDRATTR_SHADOW_LAST, + SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST, + SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION, + // Graphic attributes, 3D properties, + // CustomShape properties: + SDRATTR_GRAF_FIRST, SDRATTR_CUSTOMSHAPE_LAST, + // Range from SdrTextObj: + EE_ITEMS_START, EE_ITEMS_END>(_pObj->getSdrModelFromSdrObject().GetItemPool())); aDest.Set( rSource ); _pObj->SetMergedItemSet( aDest ); Degree100 nAngle = pSourceObj->GetRotateAngle(); diff --git a/sal/osl/w32/file_dirvol.cxx b/sal/osl/w32/file_dirvol.cxx index 7599be112a8d..0064e170641a 100644 --- a/sal/osl/w32/file_dirvol.cxx +++ b/sal/osl/w32/file_dirvol.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <systools/win32/extended_max_path.hxx> #include <systools/win32/uwinapi.h> #include "file_url.hxx" @@ -1539,7 +1542,7 @@ oslFileError SAL_CALL osl_getFileStatus( { if ( !pItemImpl->bFullPathNormalized ) { - ::osl::LongPathBuffer<sal_Unicode> aBuffer(MAX_LONG_PATH); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); sal_uInt32 nNewLen = GetLongPathNameW(o3tl::toW(sFullPath.getStr()), o3tl::toW(aBuffer), aBuffer.getBufSizeInSymbols()); diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx index 82428a326621..ea90ccad7f2b 100644 --- a/sal/osl/w32/file_url.cxx +++ b/sal/osl/w32/file_url.cxx @@ -25,6 +25,7 @@ #include <stack> #include <string_view> +#include <systools/win32/extended_max_path.hxx> #include <systools/win32/uwinapi.h> #include "file_url.hxx" @@ -594,7 +595,7 @@ static OUString GetCaseCorrectPathName(std::u16string_view sysPath) wchar_t* const pStart = pEnd; pEnd = std::copy(sysPath.begin() + sysPathOffset, sysPath.end(), pStart); *pEnd = 0; - osl::LongPathBuffer<wchar_t> aBuf(MAX_LONG_PATH); + osl::LongPathBuffer<wchar_t> aBuf(EXTENDED_MAX_PATH); while (pEnd > pStart) { std::u16string_view curPath(o3tl::toU(pPath), pEnd - pPath); @@ -944,7 +945,7 @@ oslFileError SAL_CALL osl_getAbsoluteFileURL( rtl_uString* ustrBaseURL, rtl_uStr { // Call GetFullPathNameW to get current directory on ustrRelSysPath's drive wchar_t baseDrive[3] = { ustrRelSysPath[0], ':', 0 }; // just "C:" - osl::LongPathBuffer<wchar_t> aBuf(MAX_LONG_PATH); + osl::LongPathBuffer<wchar_t> aBuf(EXTENDED_MAX_PATH); DWORD dwResult = GetFullPathNameW(baseDrive, aBuf.getBufSizeInSymbols(), aBuf, nullptr); if (dwResult) diff --git a/sal/osl/w32/file_url.hxx b/sal/osl/w32/file_url.hxx index 86ce27060db7..cb89b953c00c 100644 --- a/sal/osl/w32/file_url.hxx +++ b/sal/osl/w32/file_url.hxx @@ -44,8 +44,6 @@ #define VALIDATEPATH_ALLOW_RELATIVE 0x0004 #define VALIDATEPATH_ALLOW_INVALID_SPACE_AND_PERIOD 0x0010 -#define MAX_LONG_PATH 32767 - DWORD IsValidFilePath ( const OUString& path, DWORD dwFlags, diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx index e0a2940b16f9..8286f6a095cb 100644 --- a/sal/osl/w32/module.cxx +++ b/sal/osl/w32/module.cxx @@ -29,6 +29,7 @@ #include <rtl/ustring.hxx> #include <sal/log.hxx> #include <o3tl/char16_t2wchar_t.hxx> +#include <systools/win32/extended_max_path.hxx> #include <vector> /* @@ -161,7 +162,7 @@ sal_Bool SAL_CALL osl_getModuleURLFromAddress( void *pv, rtl_uString **pustrURL if (!hModule) return false; - ::osl::LongPathBuffer<sal_Unicode> aBuffer(MAX_LONG_PATH); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); DWORD nch = GetModuleFileNameW(hModule, o3tl::toW(aBuffer), aBuffer.getBufSizeInSymbols()); diff --git a/sal/osl/w32/process.cxx b/sal/osl/w32/process.cxx index d18513be6dd5..40df459105d9 100644 --- a/sal/osl/w32/process.cxx +++ b/sal/osl/w32/process.cxx @@ -27,6 +27,7 @@ #include <osl/mutex.hxx> #include <osl/nlsupport.h> #include <o3tl/char16_t2wchar_t.hxx> +#include <systools/win32/extended_max_path.hxx> #include "filetime.hxx" #include "nlsupport.hxx" @@ -282,7 +283,7 @@ oslProcessError bootstrap_getExecutableFile(rtl_uString ** ppFileURL) { oslProcessError result = osl_Process_E_NotFound; - ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); DWORD buflen = 0; if ((buflen = GetModuleFileNameW (nullptr, o3tl::toW(aBuffer), aBuffer.getBufSizeInSymbols())) > 0) @@ -336,7 +337,7 @@ static rtl_uString ** osl_createCommandArgs_Impl (int argc, char **) if (ppArgs[0] != nullptr) { /* Ensure absolute path */ - ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); DWORD dwResult = GetModuleFileNameW(nullptr, o3tl::toW(aBuffer), aBuffer.getBufSizeInSymbols()); if ((0 < dwResult) && (dwResult < aBuffer.getBufSizeInSymbols())) @@ -471,7 +472,7 @@ oslProcessError SAL_CALL osl_clearEnvironment(rtl_uString *ustrVar) oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir ) { - ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); DWORD dwLen = GetCurrentDirectoryW(aBuffer.getBufSizeInSymbols(), o3tl::toW(aBuffer)); if ( dwLen && dwLen < aBuffer.getBufSizeInSymbols() ) diff --git a/sal/osl/w32/profile.cxx b/sal/osl/w32/profile.cxx index 4a0fa385a565..e5fbfe55d188 100644 --- a/sal/osl/w32/profile.cxx +++ b/sal/osl/w32/profile.cxx @@ -32,6 +32,8 @@ #include <sal/macros.h> #include <sal/log.hxx> #include <o3tl/char16_t2wchar_t.hxx> +#include <systools/win32/extended_max_path.hxx> + #include <algorithm> #include <vector> using std::min; @@ -764,8 +766,8 @@ sal_uInt32 SAL_CALL osl_getProfileSectionEntries(oslProfile Profile, const char bool osl_getProfileName(rtl_uString* strPath, rtl_uString* strName, rtl_uString** strProfileName) { bool bFailed; - ::osl::LongPathBuffer< sal_Unicode > aFile( MAX_LONG_PATH ); - ::osl::LongPathBuffer< sal_Unicode > aPath( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aFile(EXTENDED_MAX_PATH); + osl::LongPathBuffer<sal_Unicode> aPath(EXTENDED_MAX_PATH); sal_uInt32 nFileLen = 0; sal_uInt32 nPathLen = 0; @@ -2001,7 +2003,7 @@ static bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile char Buffer[4096] = ""; char Product[132] = ""; - ::osl::LongPathBuffer< sal_Unicode > aPath( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aPath(EXTENDED_MAX_PATH); aPath[0] = 0; if (*strPath == L'"') @@ -2035,7 +2037,7 @@ static bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile rtl_uString * strSVFallback = nullptr; rtl_uString * strSVLocation = nullptr; rtl_uString * strSVName = nullptr; - ::osl::LongPathBuffer< char > aDir( MAX_LONG_PATH ); + osl::LongPathBuffer<char> aDir(EXTENDED_MAX_PATH); oslProfile hProfile; rtl_uString_newFromAscii(&strSVFallback, SVERSION_FALLBACK); @@ -2184,7 +2186,7 @@ static bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile } { - ::osl::LongPathBuffer< char > aTmpPath( MAX_LONG_PATH ); + osl::LongPathBuffer<char> aTmpPath(EXTENDED_MAX_PATH); WideCharToMultiByte(CP_ACP,0, o3tl::toW(aPath), -1, aTmpPath, aTmpPath.getBufSizeInSymbols(), nullptr, nullptr); @@ -2233,7 +2235,7 @@ static bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile copy_ustr_n(aPath + dwPathLen, strFile, rtl_ustr_getLength(strFile)+1); { - ::osl::LongPathBuffer< char > aTmpPath( MAX_LONG_PATH ); + osl::LongPathBuffer<char> aTmpPath(EXTENDED_MAX_PATH); WideCharToMultiByte(CP_ACP,0, o3tl::toW(aPath), -1, aTmpPath, aTmpPath.getBufSizeInSymbols(), nullptr, nullptr); @@ -2301,7 +2303,7 @@ static bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile } else { - ::osl::LongPathBuffer< char > aTmpPath2( MAX_LONG_PATH ); + osl::LongPathBuffer<char> aTmpPath2(EXTENDED_MAX_PATH); int n; if ((n = WideCharToMultiByte( diff --git a/sal/osl/w32/tempfile.cxx b/sal/osl/w32/tempfile.cxx index 30f879573de4..5dcdf42f768c 100644 --- a/sal/osl/w32/tempfile.cxx +++ b/sal/osl/w32/tempfile.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <systools/win32/extended_max_path.hxx> #include <systools/win32/uwinapi.h> #include <osl/file.h> @@ -220,7 +223,7 @@ oslFileError SAL_CALL osl_createTempFile( oslFileError SAL_CALL osl_getTempDirURL(rtl_uString** pustrTempDir) { - ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH ); + osl::LongPathBuffer<sal_Unicode> aBuffer(EXTENDED_MAX_PATH); LPWSTR lpBuffer = o3tl::toW(aBuffer); DWORD nBufferLength = aBuffer.getBufSizeInSymbols() - 1; diff --git a/sal/rtl/bootstrap.cxx b/sal/rtl/bootstrap.cxx index 584d0eaeb4d8..2ca189923108 100644 --- a/sal/rtl/bootstrap.cxx +++ b/sal/rtl/bootstrap.cxx @@ -33,6 +33,7 @@ #include <sal/log.hxx> #include <o3tl/lru_map.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <utility> #include <vector> @@ -851,14 +852,6 @@ void rtl_bootstrap_encode(rtl_uString const * value, rtl_uString ** encoded) namespace { -int hex(sal_Unicode c) -{ - return - c >= '0' && c <= '9' ? c - '0' : - c >= 'A' && c <= 'F' ? c - 'A' + 10 : - c >= 'a' && c <= 'f' ? c - 'a' + 10 : -1; -} - sal_Unicode read(std::u16string_view text, std::size_t * pos, bool * escaped) { assert(pos && *pos < text.length() && escaped); @@ -867,10 +860,10 @@ sal_Unicode read(std::u16string_view text, std::size_t * pos, bool * escaped) { int n1, n2, n3, n4; if (*pos < text.length() - 4 && text[*pos] == 'u' && - ((n1 = hex(text[*pos + 1])) >= 0) && - ((n2 = hex(text[*pos + 2])) >= 0) && - ((n3 = hex(text[*pos + 3])) >= 0) && - ((n4 = hex(text[*pos + 4])) >= 0)) + ((n1 = o3tl::convertToHex<int>(text[*pos + 1])) >= 0) && + ((n2 = o3tl::convertToHex<int>(text[*pos + 2])) >= 0) && + ((n3 = o3tl::convertToHex<int>(text[*pos + 3])) >= 0) && + ((n4 = o3tl::convertToHex<int>(text[*pos + 4])) >= 0)) { *pos += 5; *escaped = true; diff --git a/sax/source/tools/converter.cxx b/sax/source/tools/converter.cxx index 61557575350b..c026e35d770a 100644 --- a/sax/source/tools/converter.cxx +++ b/sax/source/tools/converter.cxx @@ -33,6 +33,7 @@ #include <o3tl/string_view.hxx> #include <o3tl/typed_flags_set.hxx> #include <o3tl/unit_conversion.hxx> +#include <o3tl/numeric.hxx> #include <osl/diagnose.h> #include <tools/long.hxx> #include <tools/time.hxx> @@ -628,18 +629,6 @@ void Converter::convertMeasurePx( OUStringBuffer& rBuffer, sal_Int32 nValue ) rBuffer.append( 'x' ); } -static int lcl_gethex( int nChar ) -{ - if( nChar >= '0' && nChar <= '9' ) - return nChar - '0'; - else if( nChar >= 'a' && nChar <= 'f' ) - return nChar - 'a' + 10; - else if( nChar >= 'A' && nChar <= 'F' ) - return nChar - 'A' + 10; - else - return 0; -} - /** convert string to rgb color */ template<typename V> static bool lcl_convertColor( sal_Int32& rColor, V rValue ) @@ -647,13 +636,13 @@ static bool lcl_convertColor( sal_Int32& rColor, V rValue ) if( rValue.size() != 7 || rValue[0] != '#' ) return false; - rColor = lcl_gethex( rValue[1] ) * 16 + lcl_gethex( rValue[2] ); + rColor = o3tl::convertToHex<sal_Int32>(rValue[1], rValue[2]); rColor <<= 8; - rColor |= lcl_gethex( rValue[3] ) * 16 + lcl_gethex( rValue[4] ); + rColor |= o3tl::convertToHex<sal_Int32>(rValue[3], rValue[4]); rColor <<= 8; - rColor |= lcl_gethex( rValue[5] ) * 16 + lcl_gethex( rValue[6] ); + rColor |= o3tl::convertToHex<sal_Int32>(rValue[5], rValue[6]); return true; } diff --git a/sc/README.md b/sc/README.md index d0a0ba943ab7..d73a59535424 100644 --- a/sc/README.md +++ b/sc/README.md @@ -54,6 +54,14 @@ are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see ODF v1.3 part4 3.4 Host-Defined Behaviors https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017868_715980110 +* Array Functions + * DROP + * EXPAND + * TAKE + * TOCOL + * TOROW + * WRAPCOLS + * WRAPROWS * Database Functions * DAVERAGE * DCOUNT @@ -82,8 +90,6 @@ https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocume * FILTER * SORT * SORTBY - * TOCOL - * TOROW * UNIQUE * Mathematical Functions * RANDARRAY diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx index fe708bc6e356..2e3ea5639f96 100644 --- a/sc/inc/conditio.hxx +++ b/sc/inc/conditio.hxx @@ -677,12 +677,17 @@ private: CompareScConditionalFormat> ConditionalFormatContainer; ConditionalFormatContainer m_ConditionalFormats; + ScConditionalFormatList(ScDocument& rDoc, const ScConditionalFormatList& rList); void operator =(ScConditionalFormatList const &) = delete; public: ScConditionalFormatList() {} SC_DLLPUBLIC ScConditionalFormatList(const ScConditionalFormatList& rList); - ScConditionalFormatList(ScDocument& rDoc, const ScConditionalFormatList& rList); + + ScConditionalFormatList* Clone(ScDocument& rDestDoc) const + { + return new ScConditionalFormatList(rDestDoc, *this); + } void InsertNew( std::unique_ptr<ScConditionalFormat> pNew ); diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h index d47f1275f0e9..fbf2a1194a6a 100644 --- a/sc/inc/helpids.h +++ b/sc/inc/helpids.h @@ -600,9 +600,14 @@ inline constexpr OUString HID_FUNC_XMATCH_MS = u"SC_HID_FUNC_XMATCH_MS"_ustr; inline constexpr OUString HID_FUNC_FILTER_MS = u"SC_HID_FUNC_FILTER_MS"_ustr; inline constexpr OUString HID_FUNC_SORT_MS = u"SC_HID_FUNC_SORT_MS"_ustr; inline constexpr OUString HID_FUNC_SORTBY_MS = u"SC_HID_FUNC_SORTBY_MS"_ustr; +inline constexpr OUString HID_FUNC_DROP_MS = u"SC_HID_FUNC_DROP_MS"_ustr; +inline constexpr OUString HID_FUNC_EXPAND_MS = u"SC_HID_FUNC_EXPAND_MS"_ustr; +inline constexpr OUString HID_FUNC_TAKE_MS = u"SC_HID_FUNC_TAKE_MS"_ustr; inline constexpr OUString HID_FUNC_TOCOL_MS = u"SC_HID_FUNC_TOCOL_MS"_ustr; inline constexpr OUString HID_FUNC_TOROW_MS = u"SC_HID_FUNC_TOROW_MS"_ustr; inline constexpr OUString HID_FUNC_UNIQUE_MS = u"SC_HID_FUNC_UNIQUE_MS"_ustr; inline constexpr OUString HID_FUNC_LET_MS = u"SC_HID_FUNC_LET_MS"_ustr; +inline constexpr OUString HID_FUNC_WRAPCOLS_MS = u"SC_HID_FUNC_WRAPCOLS_MS"_ustr; +inline constexpr OUString HID_FUNC_WRAPROWS_MS = u"SC_HID_FUNC_WRAPROWS_MS"_ustr; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/lookupcache.hxx b/sc/inc/lookupcache.hxx index 00194ebd162c..bc50045f06a8 100644 --- a/sc/inc/lookupcache.hxx +++ b/sc/inc/lookupcache.hxx @@ -203,7 +203,8 @@ private: } }; - std::unordered_map< QueryKey, QueryCriteriaAndResult, QueryKey::Hash > maQueryMap; + typedef std::unordered_map<QueryKey, QueryCriteriaAndResult, QueryKey::Hash> QueryMap; + QueryMap maQueryMap; ScRange maRange; ScDocument * mpDoc; ScLookupCacheMap & mCacheMap; diff --git a/sc/inc/scfuncs.hrc b/sc/inc/scfuncs.hrc index 06eccaebd3fb..f52b86bbc70b 100644 --- a/sc/inc/scfuncs.hrc +++ b/sc/inc/scfuncs.hrc @@ -4251,6 +4251,44 @@ const TranslateId SC_OPCODE_RANDARRAY_ARY[] = NC_("SC_OPCODE_RANDARRAY", "Return integer (TRUE) or decimal (FALSE) values.") }; +// -=*# Resource for function DROP #*=- +const TranslateId SC_OPCODE_DROP_ARY[] = +{ + NC_("SC_OPCODE_DROP", "Excludes a specified number of contiguous rows or columns from the start or end of an array."), + NC_("SC_OPCODE_DROP", "Array"), + NC_("SC_OPCODE_DROP", "The array from which to drop rows or columns."), + NC_("SC_OPCODE_DROP", "Rows"), + NC_("SC_OPCODE_DROP", "The number of rows to drop. A negative value drops from the end of the array."), + NC_("SC_OPCODE_DROP", "Column"), + NC_("SC_OPCODE_DROP", "The number of columns to drop. A negative value drops from the end of the array.") +}; + +// -=*# Resource for function EXPAND #*=- +const TranslateId SC_OPCODE_EXPAND_ARY[] = +{ + NC_("SC_OPCODE_EXPAND", "Expands or pads an array to specified row and column dimensions."), + NC_("SC_OPCODE_EXPAND", "Array"), + NC_("SC_OPCODE_EXPAND", "The array to expand."), + NC_("SC_OPCODE_EXPAND", "Rows"), + NC_("SC_OPCODE_EXPAND", "The number of rows in the expanded array. If missing, rows will not be expanded."), + NC_("SC_OPCODE_EXPAND", "Column"), + NC_("SC_OPCODE_EXPAND", "The number of columns in the expanded array. If missing, columns will not be expanded."), + NC_("SC_OPCODE_EXPAND", "Pad with"), + NC_("SC_OPCODE_EXPAND", "The value with which to pad. The default is #N/A.") +}; + +// -=*# Resource for function TAKE #*=- +const TranslateId SC_OPCODE_TAKE_ARY[] = +{ + NC_("SC_OPCODE_TAKE", "Returns a specified number of contiguous rows or columns from the start or end of an array."), + NC_("SC_OPCODE_TAKE", "Array"), + NC_("SC_OPCODE_TAKE", "The array from which to take rows or columns."), + NC_("SC_OPCODE_TAKE", "Rows"), + NC_("SC_OPCODE_TAKE", "The number of rows to take. A negative value takes from the end of the array."), + NC_("SC_OPCODE_TAKE", "Column"), + NC_("SC_OPCODE_TAKE", "The number of columns to take. A negative value takes from the end of the array.") +}; + // -=*# Resource for function TOCOL #*=- const TranslateId SC_OPCODE_TOCOL_ARY[] = { @@ -4299,4 +4337,28 @@ const TranslateId SC_OPCODE_LET_ARY[] = NC_("SC_OPCODE_LET", "A calculation that uses all names within the LET function. This must be the last argument in the LET function. Or a second Name to assign to a second Name value. If a second Name is specified, Name value 2 and Calculation or Name 3 become required.") }; +// -=*# Resource for function WRAPCOLS #*=- +const TranslateId SC_OPCODE_WRAPCOLS_ARY[] = +{ + NC_("SC_OPCODE_WRAPCOLS", "Wraps the provided row or column of values by columns after a specified number of elements to form a new array."), + NC_("SC_OPCODE_WRAPCOLS", "Range"), + NC_("SC_OPCODE_WRAPCOLS", "the range to wrap."), + NC_("SC_OPCODE_WRAPCOLS", "Wrap count"), + NC_("SC_OPCODE_WRAPCOLS", "The maximum number of values for each column."), + NC_("SC_OPCODE_WRAPCOLS", "Pad with"), + NC_("SC_OPCODE_WRAPCOLS", "The value with which to pad. The default is #N/A.") +}; + +// -=*# Resource for function WRAPROWS #*=- +const TranslateId SC_OPCODE_WRAPROWS_ARY[] = +{ + NC_("SC_OPCODE_WRAPROWS", "Wraps the provided row or column of values by rows after a specified number of elements to form a new array."), + NC_("SC_OPCODE_WRAPROWS", "Range"), + NC_("SC_OPCODE_WRAPROWS", "the range to wrap."), + NC_("SC_OPCODE_WRAPROWS", "Wrap count"), + NC_("SC_OPCODE_WRAPROWS", "The maximum number of values for each row."), + NC_("SC_OPCODE_WRAPROWS", "Pad with"), + NC_("SC_OPCODE_WRAPROWS", "The value with which to pad. The default is #N/A.") +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/scopetools.hxx b/sc/inc/scopetools.hxx index db76c8651633..a836f06ee90b 100644 --- a/sc/inc/scopetools.hxx +++ b/sc/inc/scopetools.hxx @@ -86,6 +86,8 @@ class DelayStartListeningFormulaCells ScColumn& mColumn; bool const mbOldValue; + void ImplDestroy(); + public: DelayStartListeningFormulaCells(ScColumn& column, bool delay); DelayStartListeningFormulaCells(ScColumn& column); diff --git a/sc/inc/validat.hxx b/sc/inc/validat.hxx index 4afd9e2ba8f2..365cc3aca074 100644 --- a/sc/inc/validat.hxx +++ b/sc/inc/validat.hxx @@ -159,7 +159,8 @@ public: OUString& rStrResult, double& nVal, sal_uInt32& nFormat, bool& bIsVal) const; // TRUE -> break - bool DoError(weld::Window* pParent, const OUString& rInput, const ScAddress& rPos) const; + void DoError(weld::Window* pParent, const OUString& rInput, const ScAddress& rPos, + const std::function<void(bool forget)>& callback) const; void DoCalcError( ScFormulaCell* pCell ) const; bool IsEmpty() const; diff --git a/sc/qa/extras/scfunctionlistobj.cxx b/sc/qa/extras/scfunctionlistobj.cxx index 9f06e2a33872..b96cbadd487a 100644 --- a/sc/qa/extras/scfunctionlistobj.cxx +++ b/sc/qa/extras/scfunctionlistobj.cxx @@ -77,7 +77,7 @@ public: ScFunctionListObj::ScFunctionListObj() : UnoApiTest(u"/sc/qa/extras/testdocuments"_ustr) , XElementAccess(cppu::UnoType<uno::Sequence<beans::PropertyValue>>::get()) - , XIndexAccess(406) + , XIndexAccess(411) , XNameAccess(u"IF"_ustr) , XServiceInfo(u"stardiv.StarCalc.ScFunctionListObj"_ustr, u"com.sun.star.sheet.FunctionDescriptions"_ustr) diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/drop.fods b/sc/qa/unit/data/functions/spreadsheet/fods/drop.fods new file mode 100644 index 000000000000..3026865b9d9b --- /dev/null +++ b/sc/qa/unit/data/functions/spreadsheet/fods/drop.fods @@ -0,0 +1,5543 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><meta:creation-date>2024-01-16T18:30:06.278000000</meta:creation-date><meta:editing-duration>PT6H46M43S</meta:editing-duration><meta:editing-cycles>129</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/e22cdc9e2a513759389547132459492bc1d75fb9</meta:generator><dc:date>2025-01-23T20:21:11.704052025</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="555" meta:object-count="0"/></office:meta> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss"/> + <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="'WenQuanYi Micro Hei'" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="1.27cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="WenQuanYi Micro Hei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" style:writing-mode="page"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="page" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="'Segoe UI'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:style style:name="Default" style:family="graphic"/> + <style:style style:name="Note" style:family="graphic" style:parent-style-name="Default"> + <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" draw:shadow-offset-y="0.1cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="'WenQuanYi Micro Hei'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/> + </style:style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N111P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N111"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N111P0"/> + </number:currency-style> + <number:currency-style style:name="N114P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N114"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N114P0"/> + </number:currency-style> + <number:number-style style:name="N116P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N116"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N116P0"/> + </number:number-style> + <number:percentage-style style:name="N117"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N121P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N121"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N121P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N121P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N121P2"/> + </number:text-style> + <number:currency-style style:name="N123P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N123"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N123P0"/> + </number:currency-style> + <number:number-style style:name="N124"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N128P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N128P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N128P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N128"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N128P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N128P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N128P2"/> + </number:text-style> + <number:date-style style:name="N129"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N130"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N131P0"/> + </number:number-style> + <number:currency-style style:name="N133P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N133"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:currency-style> + <number:number-style style:name="N135P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N135"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N135P0"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N139P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N139"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N139P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N139P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N139P2"/> + </number:text-style> + <number:date-style style:name="N140"> + <number:text>⌀ </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N144P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N144"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N144P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N144P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N144P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N147P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N147"> + <style:text-properties fo:color="#ff0000"/> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>-</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N147P0"/> + </number:currency-style> + <number:date-style style:name="N148"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N150P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N150"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N150P0"/> + </number:currency-style> + <number:date-style style:name="N151"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:style="long"/> + </number:date-style> + <number:number-style style:name="N152"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N153"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N157"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N157P2"/> + </number:text-style> + <number:currency-style style:name="N159P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N159"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N159P0"/> + </number:currency-style> + <number:number-style style:name="N160"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N161"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N162"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N163P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N163"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N163P0"/> + </number:number-style> + <number:currency-style style:name="N165P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N165"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N165P0"/> + </number:currency-style> + <number:currency-style style:name="N167P0" style:volatile="true"> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N167"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N167P0"/> + </number:currency-style> + <number:number-style style:name="N171P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N171"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N171P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N171P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N171P2"/> + </number:text-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:number-style style:name="N175P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N175P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N175P1"/> + </number:number-style> + <number:number-style style:name="N176"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N177"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N179P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N179"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N179P0"/> + </number:currency-style> + <number:number-style style:name="N181P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N181"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N181P0"/> + </number:number-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N183"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N183P0"/> + </number:number-style> + <number:number-style style:name="N187P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N187"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N187P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N187P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N187P2"/> + </number:text-style> + <number:number-style style:name="N188"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N189"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N190"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N192P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N192P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N192P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N192"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N192P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N192P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N192P2"/> + </number:text-style> + <number:currency-style style:name="N193P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N193"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:currency-style> + <number:number-style style:name="N194"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N195"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N197P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N197"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N197P0"/> + </number:currency-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N198"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:date-style style:name="N199"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N203P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N203P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N203"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N203P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N203P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N203P2"/> + </number:text-style> + <number:number-style style:name="N207P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N207P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N207P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N207"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N207P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N207P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N207P2"/> + </number:text-style> + <number:date-style style:name="N208"> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N209"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N211P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N211"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N211P0"/> + </number:currency-style> + <number:number-style style:name="N213P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N213P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N213P1"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N217"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N219P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N219"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N219P0"/> + </number:number-style> + <number:number-style style:name="N220P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N220"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N220P0"/> + </number:number-style> + <number:number-style style:name="N221"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N223P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N223P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N223P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N223"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N223P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N223P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N223P2"/> + </number:text-style> + <number:currency-style style:name="N224P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N224"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:currency-style> + <number:number-style style:name="N225"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N227P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N227P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N227P1"/> + </number:number-style> + <number:number-style style:name="N231P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N231"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N231P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N231P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N231P2"/> + </number:text-style> + <number:number-style style:name="N232"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:date-style style:name="N237"> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N238P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N238"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N238P0"/> + </number:currency-style> + <number:currency-style style:name="N240P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N240"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N240P0"/> + </number:currency-style> + <number:number-style style:name="N244P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N244P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N244P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N244"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N244P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N244P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N244P2"/> + </number:text-style> + <number:number-style style:name="N248P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N248"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N248P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N248P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N248P2"/> + </number:text-style> + <number:number-style style:name="N250P0" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250P1" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250"> + <number:text>FALSCH</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N250P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N250P1"/> + </number:number-style> + <number:date-style style:name="N251"> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N253P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N253"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N253P0"/> + </number:currency-style> + <number:currency-style style:name="N255P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:currency-style> + <number:number-style style:name="N256"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N259P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N259P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N259P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N259"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N259P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N259P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N259P2"/> + </number:text-style> + <number:time-style style:name="N260"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:time-style style:name="N261"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:currency-style style:name="N263P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N263"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N263P0"/> + </number:currency-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N264"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N264P0"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:currency-style style:name="N268P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N268"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N268P0"/> + </number:currency-style> + <number:number-style style:name="N269"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N270"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N271"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:number-style> + <number:currency-style style:name="N272P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N272"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N272P0"/> + </number:currency-style> + <number:time-style style:name="N273" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N274P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N274"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N274P0"/> + </number:number-style> + <number:number-style style:name="N276P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N276"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N276P0"/> + </number:currency-style> + <number:date-style style:name="N277"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N278"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N280P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N280"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N280P0"/> + </number:currency-style> + <number:number-style style:name="N282P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N282"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N282P0"/> + </number:number-style> + <number:number-style style:name="N283P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N283"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N283P0"/> + </number:number-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N285"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N285P0"/> + </number:number-style> + <number:number-style style:name="N286P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N286"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N286P0"/> + </number:number-style> + <number:number-style style:name="N287P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N287"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N287P0"/> + </number:number-style> + <number:number-style style:name="N288P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N288"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N288P0"/> + </number:number-style> + <number:number-style style:name="N289P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N289"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:number-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N290"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N294P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N294"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N294P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N294P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N294P2"/> + </number:text-style> + <number:number-style style:name="N298P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N298"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N298P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N298P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N298P2"/> + </number:text-style> + <number:number-style style:name="N302P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N302"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N302P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N302P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N302P2"/> + </number:text-style> + <number:number-style style:name="N306P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N306P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N306P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N306P2"/> + </number:text-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:number-style style:name="N310P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N310"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N310P0"/> + </number:number-style> + <number:number-style style:name="N311P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:number-style> + <number:number-style style:name="N313P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N313"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N313P0"/> + </number:number-style> + <number:number-style style:name="N314P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N314"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N314P0"/> + </number:number-style> + <number:percentage-style style:name="N315"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N316"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N317"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N318"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N319"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N321"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N322"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N323"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N325"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:currency-style> + <number:currency-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:currency-style> + <number:currency-style style:name="N329P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N329"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N329P0"/> + </number:currency-style> + <number:currency-style style:name="N331P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N331"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N331P0"/> + </number:currency-style> + <number:currency-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N333"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:currency-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:currency-style style:name="N339P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N339"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N339P0"/> + </number:currency-style> + <number:currency-style style:name="N341P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N341"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N341P0"/> + </number:currency-style> + <number:currency-style style:name="N343P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N343"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N343P0"/> + </number:currency-style> + <number:currency-style style:name="N345P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N345"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N345P0"/> + </number:currency-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:currency-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:currency-style> + <number:currency-style style:name="N351P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N351"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N351P0"/> + </number:currency-style> + <number:currency-style style:name="N353P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N353"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N353P0"/> + </number:currency-style> + <number:percentage-style style:name="N354"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N355"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N356"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N358"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N359"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N360"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N362P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N362"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N362P0"/> + </number:currency-style> + <number:percentage-style style:name="N363" number:title="User-defined"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N365P0"/> + </number:percentage-style> + <number:number-style style:name="N366P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N366"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N366P0"/> + </number:number-style> + <number:date-style style:name="N367"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N369P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N369"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N369P0"/> + </number:currency-style> + <number:currency-style style:name="N371P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N371"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N371P0"/> + </number:currency-style> + <number:percentage-style style:name="N373P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N373"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N373P0"/> + </number:percentage-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N375"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:number-style style:name="N376P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N376"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N376P0"/> + </number:number-style> + <number:number-style style:name="N378P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N378"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N378P0"/> + </number:number-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N379"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N379P0"/> + </number:number-style> + <number:number-style style:name="N383P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N383"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N383P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N383P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N383P2"/> + </number:text-style> + <number:number-style style:name="N387P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N387"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N387P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N387P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N387P2"/> + </number:text-style> + <number:number-style style:name="N391P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N391"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N391P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N391P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N391P2"/> + </number:text-style> + <number:number-style style:name="N395P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N395"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N395P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N395P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N395P2"/> + </number:text-style> + <number:text-style style:name="N396"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:text-style style:name="N397"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:date-style style:name="N398"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N399"> + <number:day/> + <number:text>. </number:text> + <number:month/> + <number:text>. </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N403P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N403"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N403P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N403P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N403P2"/> + </number:text-style> + <number:number-style style:name="N407P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- € </number:text> + </number:number-style> + <number:text-style style:name="N407"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N407P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N407P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N407P2"/> + </number:text-style> + <number:number-style style:name="N411P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N411"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N411P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N411P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N411P2"/> + </number:text-style> + <number:number-style style:name="N415P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N415"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N415P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N415P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N415P2"/> + </number:text-style> + <number:currency-style style:name="N416"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:date-style style:name="N418"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N419"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N420"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N421"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N422"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N423"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N424"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours number:style="long"/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N425P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N425"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N425P0"/> + </number:number-style> + <number:number-style style:name="N426P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N426"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N426P0"/> + </number:number-style> + <number:number-style style:name="N427P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N427"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N427P0"/> + </number:number-style> + <number:number-style style:name="N428P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N428"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N428P0"/> + </number:number-style> + <number:number-style style:name="N429"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N430P0"/> + </number:number-style> + <number:number-style style:name="N431P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N431"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N431P0"/> + </number:number-style> + <number:number-style style:name="N432P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N432"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N432P0"/> + </number:number-style> + <number:number-style style:name="N433P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N433"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N433P0"/> + </number:number-style> + <number:number-style style:name="N434"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435"> + <number:text>$-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N435P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N435P1"/> + </number:number-style> + <number:number-style style:name="N436"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437"> + <number:text>-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N437P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N437P1"/> + </number:number-style> + <number:number-style style:name="N438"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439"> + <number:text>$-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N439P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N439P1"/> + </number:number-style> + <number:number-style style:name="N440"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N441P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N441P1"/> + </number:number-style> + <number:number-style style:name="N443P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N443"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N443P0"/> + </number:number-style> + <number:number-style style:name="N444P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N444"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N444P0"/> + </number:number-style> + <number:number-style style:name="N446P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N446"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N446P0"/> + </number:number-style> + <number:number-style style:name="N447P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N447"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N447P0"/> + </number:number-style> + <number:date-style style:name="N448"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + </number:date-style> + <number:date-style style:name="N449"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N450"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N451"> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N452"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N454P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N454"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N454P0"/> + </number:number-style> + <number:number-style style:name="N455P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N455"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N455P0"/> + </number:number-style> + <number:number-style style:name="N457P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N457"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N457P0"/> + </number:number-style> + <number:number-style style:name="N458P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N458"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N458P0"/> + </number:number-style> + <number:number-style style:name="N462P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="F2_t4_-5">- </number:text> + </number:number-style> + <number:text-style style:name="N462"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N462P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N462P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N462P2"/> + </number:text-style> + <number:number-style style:name="N466P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-4">- Ft </number:text> + </number:number-style> + <number:text-style style:name="N466"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N466P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N466P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N466P2"/> + </number:text-style> + <number:number-style style:name="N470P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:text-style style:name="N470"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N470P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N470P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N470P2"/> + </number:text-style> + <number:number-style style:name="N474P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:text-style style:name="N474"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N474P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N474P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N474P2"/> + </number:text-style> + <number:date-style style:name="N475"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N476"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N477"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N478"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N479"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N480"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N482P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N482"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N482P0"/> + </number:number-style> + <number:number-style style:name="N483P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N483"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N483P0"/> + </number:number-style> + <number:number-style style:name="N485P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N485"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N485P0"/> + </number:number-style> + <number:number-style style:name="N486P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N486"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N486P0"/> + </number:number-style> + <number:number-style style:name="N490P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="€2_-4">- </number:text> + </number:number-style> + <number:text-style style:name="N490"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N490P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N490P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N490P2"/> + </number:text-style> + <number:number-style style:name="N494P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-3">- € </number:text> + </number:number-style> + <number:text-style style:name="N494"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N494P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N494P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N494P2"/> + </number:text-style> + <number:number-style style:name="N498P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:text-style style:name="N498"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N498P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N498P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N498P2"/> + </number:text-style> + <number:number-style style:name="N502P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:text-style style:name="N502"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N502P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N502P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N502P2"/> + </number:text-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10131" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10132" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10135" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10136" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N10137" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10141P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10141" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10141P0"/> + </number:number-style> + <number:currency-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10143" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10143P0"/> + </number:currency-style> + <number:currency-style style:name="N10144P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10144" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10144P0"/> + </number:currency-style> + <number:currency-style style:name="N10146P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10146" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10146P0"/> + </number:currency-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10147P0"/> + </number:currency-style> + <number:number-style style:name="N10148P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10148" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10148P0"/> + </number:number-style> + <number:number-style style:name="N10149P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10149" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10149P0"/> + </number:number-style> + <number:number-style style:name="N10153P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10153P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10153P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10153" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10153P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10153P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10153P2"/> + </number:text-style> + <number:currency-style style:name="N10157P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10157P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10157P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10157" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10157P2"/> + </number:text-style> + <number:number-style style:name="N10161P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10161P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10161P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10161" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10161P2"/> + </number:text-style> + <number:currency-style style:name="N10165P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10165P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10165P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10165" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10165P2"/> + </number:text-style> + <number:number-style style:name="N10166" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N10167" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:date-style style:name="N10168" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10169" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10170" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10171" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10172" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10173" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:date-style style:name="N10174P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:text-style style:name="N10174" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10174P0"/> + </number:text-style> + <number:date-style style:name="N10175P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:text-style style:name="N10175" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10175P0"/> + </number:text-style> + <number:date-style style:name="N20114" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20115" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20116" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20117" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20118" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20120P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20120" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20120P0"/> + </number:number-style> + <number:number-style style:name="N20121P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20121" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20121P0"/> + </number:number-style> + <number:number-style style:name="N20123P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20123" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20123P0"/> + </number:number-style> + <number:number-style style:name="N20124P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20124" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20124P0"/> + </number:number-style> + <number:number-style style:name="N20126P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20126" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20126P0"/> + </number:number-style> + <number:number-style style:name="N20127P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20127" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20127P0"/> + </number:number-style> + <number:number-style style:name="N20129P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20129" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20129P0"/> + </number:number-style> + <number:number-style style:name="N20130P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20130" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20130P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"/> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="false" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="true" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="3.884cm"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.794cm"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="10.633cm"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.258cm"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="1.614cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.612cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.529cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro5" style:family="table-row"> + <style:table-row-properties style:row-height="0.487cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:number-style style:name="N2"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + </number:number-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + </style:style> + <style:style style:name="ce12" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/> + <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce38" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce18" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce31" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"/> + <style:style style:name="ce40" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet2.G2"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce30" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #afabab" fo:border-right="none" style:rotation-align="none" fo:border-top="none"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N429"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce36" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + <style:master-page style:name="Report" style:page-layout-name="pm2"> + <style:header> + <style:region-left> + <text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p> + </style:region-left> + <style:region-right> + <text:p><text:date style:data-style-name="N2" text:date-value="2025-01-23">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="20:06:38.265916047">00:00:00</text:time></text:p> + </style:region-right> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="ce4"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"> + <text:p>DROP Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce20" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce7" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([Sheet2.G2:.G208])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce29" office:value-type="string" calcext:value-type="string"> + <text:p>Simple DROP formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="20"> + <table:table-cell/> + <table:table-cell table:style-name="ce28"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="21"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B2:Sheet1.B50"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet1.B2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1"> + <table:table-column table:style-name="co4" table:number-columns-repeated="3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce14"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="2" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce40"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="12" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce31" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="11"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 3 first rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce15"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44" table:number-columns-repeated="6"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44"/> + <table:table-cell table:style-name="ce48"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 3)" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A3]=[.D3])AND([.B3]=[.E3])AND([.C3]=[.F3])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="{=DROP(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A4]=[.D4])AND([.B4]=[.E4])AND([.C4]=[.F4])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="{=DROP(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A5]=[.D5])AND([.B5]=[.E5])AND([.C5]=[.F5])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="{=DROP(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AE5:.AF10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AF5:.AG10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AG5:.AH10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 3 last rows</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; -3)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A7]=[.D7])AND([.B7]=[.E7])AND([.C7]=[.F7])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="{=DROP(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A8]=[.D8])AND([.B8]=[.E8])AND([.C8]=[.F8])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="{=DROP(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y9:.Z14]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z9:.AA14]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA9:.AB14]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A9]))AND(ISERROR([.B9]))AND(ISERROR([.C9]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="{=DROP(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 30 first rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce18"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 30)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A11]=[.D11])AND([.B11]=[.E11])AND([.C11]=[.F11])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A11])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce24" table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A12]=[.D12])AND([.B12]=[.E12])AND([.C12]=[.F12])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A12])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X13:.Y18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y13:.Z18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z13:.AA18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A13])AND(ISERROR([.B13]))AND(ISERROR([.C13]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A13])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A14]=[.D14])AND([.B14]=[.E14])AND([.C14]=[.F14])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A14])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A15]=[.D15])AND([.B15]=[.E15])AND([.C15]=[.F15])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A15])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce23"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A16]=[.D16])AND([.B16]=[.E16])AND([.C16]=[.F16])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A16])" office:value-type="string" office:string-value="{=DROP(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 30 last rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce30"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; -30)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A18]=[.D18])AND([.B18]=[.E18])AND([.C18]=[.F18])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A18])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A19]=[.D19])AND([.B19]=[.E19])AND([.C19]=[.F19])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A19])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X20:.Y25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y20:.Z25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z20:.AA25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A20])AND(ISERROR([.B20]))AND(ISERROR([.C20]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A20])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A21]=[.D21])AND([.B21]=[.E21])AND([.C21]=[.F21])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A21])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A22]=[.D22])AND([.B22]=[.E22])AND([.C22]=[.F22])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A22])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A23]=[.D23])AND([.B23]=[.E23])AND([.C23]=[.F23])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A23])" office:value-type="string" office:string-value="{=DROP(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce12" table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 2 first columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; ;2)" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce12"/> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A25]=[.D25])AND([.B25]=[.E25])AND([.C25]=[.F25])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A25])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A26]=[.D26])AND([.B26]=[.E26])AND([.C26]=[.F26])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A26])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y27:.Z32]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A27])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A27])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="ce12" table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A28]=[.D28])AND([.B28]=[.E28])AND([.C28]=[.F28])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A28])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce12"/> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A29]=[.D29])AND([.B29]=[.E29])AND([.C29]=[.F29])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A29])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A30]=[.D30])AND([.B30]=[.E30])AND([.C30]=[.F30])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A30])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 2 last columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; ;-2)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A32]=[.D32])AND([.B32]=[.E32])AND([.C32]=[.F32])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A33]=[.D33])AND([.B33]=[.E33])AND([.C33]=[.F33])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y34:.Z39]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A34])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A35]=[.D35])AND([.B35]=[.E35])AND([.C35]=[.F35])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A36]=[.D36])AND([.B36]=[.E36])AND([.C36]=[.F36])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A37]=[.D37])AND([.B37]=[.E37])AND([.C37]=[.F37])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A37])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 20 first columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; ;20)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A39]=[.D39])AND([.B39]=[.E39])AND([.C39]=[.F39])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A40]=[.D40])AND([.B40]=[.E40])AND([.C40]=[.F40])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A40])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y41:.Z46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z41:.AA46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA41:.AB46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A41])AND(ISERROR([.B41]))AND(ISERROR([.C41]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A41])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A42]=[.D42])AND([.B42]=[.E42])AND([.C42]=[.F42])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A42])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A43]=[.D43])AND([.B43]=[.E43])AND([.C43]=[.F43])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A43])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A44]=[.D44])AND([.B44]=[.E44])AND([.C44]=[.F44])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A44])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop 20 last columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; ;-20)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A46]=[.D46])AND([.B46]=[.E46])AND([.C46]=[.F46])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A46])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A47]=[.D47])AND([.B47]=[.E47])AND([.C47]=[.F47])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A47])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y48:.Z53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z48:.AA53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA48:.AB53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A48])AND(ISERROR([.B48]))AND(ISERROR([.C48]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A48])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A49]=[.D49])AND([.B49]=[.E49])AND([.C49]=[.F49])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A49])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A50]=[.D50])AND([.B50]=[.E50])AND([.C50]=[.F50])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A50])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A51]=[.D51])AND([.B51]=[.E51])AND([.C51]=[.F51])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A51])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop without arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8])" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A53]=[.D53])AND([.B53]=[.E53])AND([.C53]=[.F53])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A53])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A54]=[.D54])AND([.B54]=[.E54])AND([.C54]=[.F54])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A54])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y55:.Z60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z55:.AA60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA55:.AB60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A55])AND(ISERROR([.B55]))AND(ISERROR([.C55]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A55])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A56]=[.D56])AND([.B56]=[.E56])AND([.C56]=[.F56])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A56])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A57]=[.D57])AND([.B57]=[.E57])AND([.C57]=[.F57])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A57])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A58]=[.D58])AND([.B58]=[.E58])AND([.C58]=[.F58])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A58])" office:value-type="string" office:string-value="{=DROP(J3:L8)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop with 2 positive arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 2; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y60:.Z70]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:formula="of:=ISERROR([.A60])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A60])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:style-name="ce18"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:formula="of:=([.A61]=[.D61])AND([.B61]=[.E61])AND([.C61]=[.F61])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A61])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A62]=[.D62])AND([.B62]=[.E62])AND([.C62]=[.F62])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A62])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A63]=[.D63])AND([.B63]=[.E63])AND([.C63]=[.F63])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A63])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop with 2 negative arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; -2; -2)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A65]=[.D65])AND([.B65]=[.E65])AND([.C65]=[.F65])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A65])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A66]=[.D66])AND([.B66]=[.E66])AND([.C66]=[.F66])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A66])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y77:.Z81]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A67])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A67])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:formula="of:=([.A68]=[.D68])AND([.B68]=[.E68])AND([.C68]=[.F68])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A68])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop with 1 negative argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 2; -2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y70:.Z75]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A70])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A70])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:style-name="ce37" table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A71]=[.D71])AND([.B71]=[.E71])AND([.C71]=[.F71])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A71])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A72]=[.D72])AND([.B72]=[.E72])AND([.C72]=[.F72])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A72])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A73]=[.D73])AND([.B73]=[.E73])AND([.C73]=[.F73])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A73])" office:value-type="string" office:string-value="{=DROP(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce18"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop with 1 negative argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; -2; 2)" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A75]=[.D75])AND([.B75]=[.E75])AND([.C75]=[.F75])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A75])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A76]=[.D76])AND([.B76]=[.E76])AND([.C76]=[.F76])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A76])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y77:.Z81]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A77])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A77])" office:value-type="string" office:string-value="{=DROP(J3:L8; -2; 2)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; -2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="14"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 0)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A79]=[.D79])AND([.B79]=[.E79])AND([.C79]=[.F79])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A79])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Drop with 0 as argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A80]=[.D80])AND([.B80]=[.E80])AND([.C80]=[.F80])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A80])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X81:.Y86]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y81:.Z86]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z81:.AA86]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A81])AND(ISERROR([.B81]))AND(ISERROR([.C81]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A81])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A82]=[.D82])AND([.B82]=[.E82])AND([.C82]=[.F82])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A82])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A83]=[.D83])AND([.B83]=[.E83])AND([.C83]=[.F83])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A83])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A84]=[.D84])AND([.B84]=[.E84])AND([.C84]=[.F84])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A84])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="14"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; ;0)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A86]=[.D86])AND([.B86]=[.E86])AND([.C86]=[.F86])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A86])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A87]=[.D87])AND([.B87]=[.E87])AND([.C87]=[.F87])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A87])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X88:.Y93]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y88:.Z93]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z88:.AA93]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A88])AND(ISERROR([.B88]))AND(ISERROR([.C88]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A88])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A89]=[.D89])AND([.B89]=[.E89])AND([.C89]=[.F89])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A89])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A90]=[.D90])AND([.B90]=[.E90])AND([.C90]=[.F90])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A90])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A91]=[.D91])AND([.B91]=[.E91])AND([.C91]=[.F91])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A91])" office:value-type="string" office:string-value="{=DROP(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="14"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.DROP([.J3:.L8]; 0; 0)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A93]=[.D93])AND([.B93]=[.E93])AND([.C93]=[.F93])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A93])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A94]=[.D94])AND([.B94]=[.E94])AND([.C94]=[.F94])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A94])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X95:.Y100]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y95:.Z100]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z95:.AA100]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A95])AND(ISERROR([.B95]))AND(ISERROR([.C95]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A95])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A96]=[.D96])AND([.B96]=[.E96])AND([.C96]=[.F96])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A96])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A97]=[.D97])AND([.B97]=[.E97])AND([.C97]=[.F97])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A97])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A98]=[.D98])AND([.B98]=[.E98])AND([.C98]=[.F98])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A98])" office:value-type="string" office:string-value="{=DROP(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=DROP(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.G70:Sheet2.G77 Sheet2.G2:Sheet2.G58 Sheet2.G60:Sheet2.G68 Sheet2.G79:Sheet2.G84 Sheet2.G86:Sheet2.G91 Sheet2.G93:Sheet2.G98"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet2.G2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document> diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/expand.fods b/sc/qa/unit/data/functions/spreadsheet/fods/expand.fods new file mode 100644 index 000000000000..7a2b5f14a51d --- /dev/null +++ b/sc/qa/unit/data/functions/spreadsheet/fods/expand.fods @@ -0,0 +1,6012 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><meta:creation-date>2024-01-16T18:30:06.278000000</meta:creation-date><meta:editing-duration>PT6H26M39S</meta:editing-duration><meta:editing-cycles>128</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/b9a6803df10e6056c6f0a798cd07c85f4e7a00ac</meta:generator><dc:date>2025-01-24T14:12:12.846946910</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="707" meta:object-count="0"/></office:meta> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"> + <ooo:library-embedded ooo:name="Standard"/> + </ooo:libraries> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss"/> + <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="'WenQuanYi Micro Hei'" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="1.27cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="WenQuanYi Micro Hei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" style:writing-mode="page"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="page" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="'Segoe UI'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:style style:name="Default" style:family="graphic"/> + <style:style style:name="Note" style:family="graphic" style:parent-style-name="Default"> + <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" draw:shadow-offset-y="0.1cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="'WenQuanYi Micro Hei'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/> + </style:style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N111P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N111"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N111P0"/> + </number:currency-style> + <number:currency-style style:name="N114P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N114"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N114P0"/> + </number:currency-style> + <number:number-style style:name="N116P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N116"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N116P0"/> + </number:number-style> + <number:percentage-style style:name="N117"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N121P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N121"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N121P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N121P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N121P2"/> + </number:text-style> + <number:currency-style style:name="N123P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N123"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N123P0"/> + </number:currency-style> + <number:number-style style:name="N124"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N128P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N128P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N128P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N128"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N128P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N128P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N128P2"/> + </number:text-style> + <number:date-style style:name="N129"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N130"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N131P0"/> + </number:number-style> + <number:currency-style style:name="N133P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N133"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:currency-style> + <number:number-style style:name="N135P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N135"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N135P0"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N139P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N139"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N139P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N139P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N139P2"/> + </number:text-style> + <number:date-style style:name="N140"> + <number:text>⌀ </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N144P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N144"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N144P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N144P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N144P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N147P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N147"> + <style:text-properties fo:color="#ff0000"/> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>-</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N147P0"/> + </number:currency-style> + <number:date-style style:name="N148"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N150P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N150"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N150P0"/> + </number:currency-style> + <number:date-style style:name="N151"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:style="long"/> + </number:date-style> + <number:number-style style:name="N152"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N153"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N157"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N157P2"/> + </number:text-style> + <number:currency-style style:name="N159P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N159"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N159P0"/> + </number:currency-style> + <number:number-style style:name="N160"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N161"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N162"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N163P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N163"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N163P0"/> + </number:number-style> + <number:currency-style style:name="N165P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N165"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N165P0"/> + </number:currency-style> + <number:currency-style style:name="N167P0" style:volatile="true"> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N167"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N167P0"/> + </number:currency-style> + <number:number-style style:name="N171P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N171"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N171P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N171P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N171P2"/> + </number:text-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:number-style style:name="N175P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N175P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N175P1"/> + </number:number-style> + <number:number-style style:name="N176"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N177"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N179P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N179"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N179P0"/> + </number:currency-style> + <number:number-style style:name="N181P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N181"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N181P0"/> + </number:number-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N183"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N183P0"/> + </number:number-style> + <number:number-style style:name="N187P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N187"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N187P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N187P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N187P2"/> + </number:text-style> + <number:number-style style:name="N188"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N189"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N190"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N192P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N192P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N192P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N192"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N192P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N192P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N192P2"/> + </number:text-style> + <number:currency-style style:name="N193P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N193"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:currency-style> + <number:number-style style:name="N194"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N195"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N197P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N197"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N197P0"/> + </number:currency-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N198"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:date-style style:name="N199"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N203P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N203P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N203"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N203P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N203P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N203P2"/> + </number:text-style> + <number:number-style style:name="N207P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N207P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N207P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N207"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N207P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N207P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N207P2"/> + </number:text-style> + <number:date-style style:name="N208"> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N209"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N211P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N211"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N211P0"/> + </number:currency-style> + <number:number-style style:name="N213P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N213P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N213P1"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N217"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N219P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N219"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N219P0"/> + </number:number-style> + <number:number-style style:name="N220P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N220"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N220P0"/> + </number:number-style> + <number:number-style style:name="N221"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N223P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N223P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N223P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N223"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N223P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N223P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N223P2"/> + </number:text-style> + <number:currency-style style:name="N224P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N224"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:currency-style> + <number:number-style style:name="N225"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N227P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N227P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N227P1"/> + </number:number-style> + <number:number-style style:name="N231P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N231"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N231P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N231P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N231P2"/> + </number:text-style> + <number:number-style style:name="N232"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:date-style style:name="N237"> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N238P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N238"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N238P0"/> + </number:currency-style> + <number:currency-style style:name="N240P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N240"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N240P0"/> + </number:currency-style> + <number:number-style style:name="N244P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N244P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N244P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N244"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N244P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N244P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N244P2"/> + </number:text-style> + <number:number-style style:name="N248P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N248"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N248P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N248P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N248P2"/> + </number:text-style> + <number:number-style style:name="N250P0" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250P1" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250"> + <number:text>FALSCH</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N250P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N250P1"/> + </number:number-style> + <number:date-style style:name="N251"> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N253P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N253"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N253P0"/> + </number:currency-style> + <number:currency-style style:name="N255P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:currency-style> + <number:number-style style:name="N256"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N259P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N259P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N259P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N259"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N259P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N259P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N259P2"/> + </number:text-style> + <number:time-style style:name="N260"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:time-style style:name="N261"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:currency-style style:name="N263P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N263"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N263P0"/> + </number:currency-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N264"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N264P0"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:currency-style style:name="N268P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N268"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N268P0"/> + </number:currency-style> + <number:number-style style:name="N269"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N270"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N271"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:number-style> + <number:currency-style style:name="N272P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N272"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N272P0"/> + </number:currency-style> + <number:time-style style:name="N273" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N274P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N274"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N274P0"/> + </number:number-style> + <number:number-style style:name="N276P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N276"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N276P0"/> + </number:currency-style> + <number:date-style style:name="N277"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N278"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N280P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N280"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N280P0"/> + </number:currency-style> + <number:number-style style:name="N282P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N282"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N282P0"/> + </number:number-style> + <number:number-style style:name="N283P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N283"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N283P0"/> + </number:number-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N285"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N285P0"/> + </number:number-style> + <number:number-style style:name="N286P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N286"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N286P0"/> + </number:number-style> + <number:number-style style:name="N287P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N287"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N287P0"/> + </number:number-style> + <number:number-style style:name="N288P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N288"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N288P0"/> + </number:number-style> + <number:number-style style:name="N289P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N289"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:number-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N290"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N294P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N294"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N294P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N294P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N294P2"/> + </number:text-style> + <number:number-style style:name="N298P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N298"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N298P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N298P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N298P2"/> + </number:text-style> + <number:number-style style:name="N302P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N302"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N302P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N302P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N302P2"/> + </number:text-style> + <number:number-style style:name="N306P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N306P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N306P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N306P2"/> + </number:text-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:number-style style:name="N310P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N310"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N310P0"/> + </number:number-style> + <number:number-style style:name="N311P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:number-style> + <number:number-style style:name="N313P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N313"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N313P0"/> + </number:number-style> + <number:number-style style:name="N314P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N314"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N314P0"/> + </number:number-style> + <number:percentage-style style:name="N315"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N316"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N317"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N318"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N319"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N321"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N322"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N323"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N325"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:currency-style> + <number:currency-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:currency-style> + <number:currency-style style:name="N329P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N329"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N329P0"/> + </number:currency-style> + <number:currency-style style:name="N331P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N331"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N331P0"/> + </number:currency-style> + <number:currency-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N333"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:currency-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:currency-style style:name="N339P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N339"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N339P0"/> + </number:currency-style> + <number:currency-style style:name="N341P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N341"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N341P0"/> + </number:currency-style> + <number:currency-style style:name="N343P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N343"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N343P0"/> + </number:currency-style> + <number:currency-style style:name="N345P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N345"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N345P0"/> + </number:currency-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:currency-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:currency-style> + <number:currency-style style:name="N351P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N351"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N351P0"/> + </number:currency-style> + <number:currency-style style:name="N353P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N353"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N353P0"/> + </number:currency-style> + <number:percentage-style style:name="N354"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N355"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N356"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N358"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N359"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N360"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N362P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N362"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N362P0"/> + </number:currency-style> + <number:percentage-style style:name="N363" number:title="User-defined"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N365P0"/> + </number:percentage-style> + <number:number-style style:name="N366P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N366"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N366P0"/> + </number:number-style> + <number:date-style style:name="N367"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N369P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N369"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N369P0"/> + </number:currency-style> + <number:currency-style style:name="N371P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N371"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N371P0"/> + </number:currency-style> + <number:percentage-style style:name="N373P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N373"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N373P0"/> + </number:percentage-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N375"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:number-style style:name="N376P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N376"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N376P0"/> + </number:number-style> + <number:number-style style:name="N378P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N378"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N378P0"/> + </number:number-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N379"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N379P0"/> + </number:number-style> + <number:number-style style:name="N383P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N383"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N383P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N383P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N383P2"/> + </number:text-style> + <number:number-style style:name="N387P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N387"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N387P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N387P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N387P2"/> + </number:text-style> + <number:number-style style:name="N391P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N391"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N391P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N391P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N391P2"/> + </number:text-style> + <number:number-style style:name="N395P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N395"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N395P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N395P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N395P2"/> + </number:text-style> + <number:text-style style:name="N396"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:text-style style:name="N397"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:date-style style:name="N398"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N399"> + <number:day/> + <number:text>. </number:text> + <number:month/> + <number:text>. </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N403P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N403"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N403P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N403P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N403P2"/> + </number:text-style> + <number:number-style style:name="N407P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- € </number:text> + </number:number-style> + <number:text-style style:name="N407"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N407P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N407P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N407P2"/> + </number:text-style> + <number:number-style style:name="N411P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N411"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N411P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N411P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N411P2"/> + </number:text-style> + <number:number-style style:name="N415P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N415"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N415P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N415P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N415P2"/> + </number:text-style> + <number:currency-style style:name="N416"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:date-style style:name="N418"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N419"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N420"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N421"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N422"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N423"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N424"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours number:style="long"/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N425P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N425"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N425P0"/> + </number:number-style> + <number:number-style style:name="N426P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N426"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N426P0"/> + </number:number-style> + <number:number-style style:name="N427P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N427"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N427P0"/> + </number:number-style> + <number:number-style style:name="N428P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N428"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N428P0"/> + </number:number-style> + <number:number-style style:name="N429"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N430P0"/> + </number:number-style> + <number:number-style style:name="N431P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N431"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N431P0"/> + </number:number-style> + <number:number-style style:name="N432P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N432"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N432P0"/> + </number:number-style> + <number:number-style style:name="N433P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N433"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N433P0"/> + </number:number-style> + <number:number-style style:name="N434"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435"> + <number:text>$-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N435P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N435P1"/> + </number:number-style> + <number:number-style style:name="N436"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437"> + <number:text>-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N437P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N437P1"/> + </number:number-style> + <number:number-style style:name="N438"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439"> + <number:text>$-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N439P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N439P1"/> + </number:number-style> + <number:number-style style:name="N440"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N441P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N441P1"/> + </number:number-style> + <number:number-style style:name="N443P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N443"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N443P0"/> + </number:number-style> + <number:number-style style:name="N444P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N444"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N444P0"/> + </number:number-style> + <number:number-style style:name="N446P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N446"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N446P0"/> + </number:number-style> + <number:number-style style:name="N447P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N447"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N447P0"/> + </number:number-style> + <number:date-style style:name="N448"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + </number:date-style> + <number:date-style style:name="N449"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N450"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N451"> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N452"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N454P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N454"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N454P0"/> + </number:number-style> + <number:number-style style:name="N455P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N455"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N455P0"/> + </number:number-style> + <number:number-style style:name="N457P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N457"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N457P0"/> + </number:number-style> + <number:number-style style:name="N458P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N458"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N458P0"/> + </number:number-style> + <number:number-style style:name="N462P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="F2_t4_-5">- </number:text> + </number:number-style> + <number:text-style style:name="N462"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N462P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N462P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N462P2"/> + </number:text-style> + <number:number-style style:name="N466P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-4">- Ft </number:text> + </number:number-style> + <number:text-style style:name="N466"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N466P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N466P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N466P2"/> + </number:text-style> + <number:number-style style:name="N470P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:text-style style:name="N470"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N470P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N470P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N470P2"/> + </number:text-style> + <number:number-style style:name="N474P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:text-style style:name="N474"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N474P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N474P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N474P2"/> + </number:text-style> + <number:date-style style:name="N475"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N476"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N477"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N478"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N479"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N480"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N482P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N482"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N482P0"/> + </number:number-style> + <number:number-style style:name="N483P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N483"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N483P0"/> + </number:number-style> + <number:number-style style:name="N485P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N485"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N485P0"/> + </number:number-style> + <number:number-style style:name="N486P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N486"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N486P0"/> + </number:number-style> + <number:number-style style:name="N490P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="€2_-4">- </number:text> + </number:number-style> + <number:text-style style:name="N490"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N490P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N490P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N490P2"/> + </number:text-style> + <number:number-style style:name="N494P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-3">- € </number:text> + </number:number-style> + <number:text-style style:name="N494"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N494P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N494P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N494P2"/> + </number:text-style> + <number:number-style style:name="N498P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:text-style style:name="N498"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N498P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N498P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N498P2"/> + </number:text-style> + <number:number-style style:name="N502P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:text-style style:name="N502"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N502P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N502P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N502P2"/> + </number:text-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10131" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10132" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10135" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10136" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N10137" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10141P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10141" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10141P0"/> + </number:number-style> + <number:currency-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10143" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10143P0"/> + </number:currency-style> + <number:currency-style style:name="N10144P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10144" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10144P0"/> + </number:currency-style> + <number:currency-style style:name="N10146P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10146" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10146P0"/> + </number:currency-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10147P0"/> + </number:currency-style> + <number:number-style style:name="N10148P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10148" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10148P0"/> + </number:number-style> + <number:number-style style:name="N10149P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10149" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10149P0"/> + </number:number-style> + <number:number-style style:name="N10153P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10153P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10153P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10153" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10153P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10153P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10153P2"/> + </number:text-style> + <number:currency-style style:name="N10157P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10157P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10157P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10157" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10157P2"/> + </number:text-style> + <number:number-style style:name="N10161P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10161P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10161P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10161" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10161P2"/> + </number:text-style> + <number:currency-style style:name="N10165P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10165P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10165P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10165" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10165P2"/> + </number:text-style> + <number:number-style style:name="N10166" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N10167" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:date-style style:name="N10168" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10169" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10170" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10171" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10172" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10173" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:date-style style:name="N10174P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:text-style style:name="N10174" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10174P0"/> + </number:text-style> + <number:date-style style:name="N10175P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:text-style style:name="N10175" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10175P0"/> + </number:text-style> + <number:date-style style:name="N20114" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20115" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20116" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20117" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20118" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20120P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20120" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20120P0"/> + </number:number-style> + <number:number-style style:name="N20121P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20121" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20121P0"/> + </number:number-style> + <number:number-style style:name="N20123P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20123" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20123P0"/> + </number:number-style> + <number:number-style style:name="N20124P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20124" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20124P0"/> + </number:number-style> + <number:number-style style:name="N20126P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20126" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20126P0"/> + </number:number-style> + <number:number-style style:name="N20127P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20127" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20127P0"/> + </number:number-style> + <number:number-style style:name="N20129P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20129" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20129P0"/> + </number:number-style> + <number:number-style style:name="N20130P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20130" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20130P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"/> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="false" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="true" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="3.884cm"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.794cm"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="10.633cm"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.258cm"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="1.614cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.612cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.529cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro5" style:family="table-row"> + <style:table-row-properties style:row-height="0.487cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:number-style style:name="N2"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + </number:number-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + </style:style> + <style:style style:name="ce12" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce16" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce27" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce38" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce31" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"/> + <style:style style:name="ce45" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.I2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet2.I2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet2.I2"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce36" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce30" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #afabab" fo:border-right="none" style:rotation-align="none" fo:border-top="none"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N429"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce32" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce34" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce35" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + <style:master-page style:name="Report" style:page-layout-name="pm2"> + <style:header> + <style:region-left> + <text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p> + </style:region-left> + <style:region-right> + <text:p><text:date style:data-style-name="N2" text:date-value="2025-01-24">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="13:42:10.644266516">00:00:00</text:time></text:p> + </style:region-right> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="ce4"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"> + <text:p>Expand Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce20" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce7" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([Sheet2.I2:.I210])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce29" office:value-type="string" calcext:value-type="string"> + <text:p>Simple EXPAND formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="20"> + <table:table-cell/> + <table:table-cell table:style-name="ce28"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="21"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B2:Sheet1.B50"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet1.B2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1"> + <table:table-column table:style-name="co4" table:number-columns-repeated="4" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce16"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce45"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="12" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce31" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="11"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Missing rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce15"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44" table:number-columns-repeated="6"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44"/> + <table:table-cell table:style-name="ce48"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A3]=[.E3])AND([.B3]=[.F3])AND([.C3]=[.G3])AND([.D3]=[.H3])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A4]=[.E4])AND([.B4]=[.F4])AND([.C4]=[.G4])AND([.D4]=[.H4])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce16" office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z5:.AA12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA5:.AB12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB5:.AC12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A5]))AND(ISERROR([.B5]))AND(ISERROR([.C5]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AG5:.AH12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AH5:.AI12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AI5:.AJ12]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A6]=[.E6])AND([.B6]=[.F6])AND([.C6]=[.G6])AND([.D6]=[.H6])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A6])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A7]=[.E7])AND([.B7]=[.F7])AND([.C7]=[.G7])AND([.D7]=[.H7])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce16" office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A8]=[.E8])AND([.B8]=[.F8])AND([.C8]=[.G8])AND([.D8]=[.H8])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce16" office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Missing columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A10]=[.E10])AND([.B10]=[.F10])AND([.C10]=[.G10])AND([.D10]=[.H10])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A10])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A11]=[.E11])AND([.B11]=[.F11])AND([.C11]=[.G11])AND([.D11]=[.H11])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A11])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z12:.AA19]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA12:.AB19]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB12:.AC19]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A12]))AND(ISERROR([.B12]))AND(ISERROR([.C12]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A12])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce34"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A13]=[.E13])AND([.B13]=[.F13])AND([.C13]=[.G13])AND([.D13]=[.H13])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A13])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A14]=[.E14])AND([.B14]=[.F14])AND([.C14]=[.G14])AND([.D14]=[.H14])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A14])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A15]=[.E15])AND([.B15]=[.F15])AND([.C15]=[.G15])AND([.D15]=[.H15])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A15])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Missing rows and colums</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;;"-")" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A17]=[.E17])AND([.B17]=[.F17])AND([.C17]=[.G17])AND([.D17]=[.H17])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A17])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce23"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A18]=[.E18])AND([.B18]=[.F18])AND([.C18]=[.G18])AND([.D18]=[.H18])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A18])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z19:.AA26]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA19:.AB26]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB19:.AC26]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A19]))AND(ISERROR([.B19]))AND(ISERROR([.C19]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A19])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce30"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A20]=[.E20])AND([.B20]=[.F20])AND([.C20]=[.G20])AND([.D20]=[.H20])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A20])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A21]=[.E21])AND([.B21]=[.F21])AND([.C21]=[.G21])AND([.D21]=[.H21])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A21])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A22]=[.E22])AND([.B22]=[.F22])AND([.C22]=[.G22])AND([.D22]=[.H22])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A22])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>different row values</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];1)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A24])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A24])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;1)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;1)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="ce24"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A25])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A25])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;2)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];3)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="ce16" table:number-columns-repeated="2"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A26])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A26])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];4)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=ISERROR([.A27])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A27])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];5)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="ce27" table:number-columns-repeated="2"/> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A28])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A28])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];6)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A29]=[.E29])AND([.B29]=[.F29])AND([.C29]=[.G29])AND([.D29]=[.H29])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A29])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A30]=[.E30])AND([.B30]=[.F30])AND([.C30]=[.G30])AND([.D30]=[.H30])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A30])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z31:.AA38]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA31:.AB38]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB31:.AC38]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A31]))AND(ISERROR([.B31]))AND(ISERROR([.C31]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A31])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A32]=[.E32])AND([.B32]=[.F32])AND([.C32]=[.G32])AND([.D32]=[.H32])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A33]=[.E33])AND([.B33]=[.F33])AND([.C33]=[.G33])AND([.D33]=[.H33])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A34]=[.E34])AND([.B34]=[.F34])AND([.C34]=[.G34])AND([.D34]=[.H34])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;6)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;6)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="7" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];7)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A35]=[.E35])AND([.B35]=[.F35])AND([.C35]=[.G35])AND([.D35]=[.H35])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A36]=[.E36])AND([.B36]=[.F36])AND([.C36]=[.G36])AND([.D36]=[.H36])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z37:.AA44]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA37:.AB44]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB37:.AC44]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A37]))AND(ISERROR([.B37]))AND(ISERROR([.C37]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A37])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A38]=[.E38])AND([.B38]=[.F38])AND([.C38]=[.G38])AND([.D38]=[.H38])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A38])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A39]=[.E39])AND([.B39]=[.F39])AND([.C39]=[.G39])AND([.D39]=[.H39])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A40]=[.E40])AND([.B40]=[.F40])AND([.C40]=[.G40])AND([.D40]=[.H40])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A40])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z41:.AA48]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA41:.AB48]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB41:.AC48]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A41]))AND(ISERROR([.B41]))AND(ISERROR([.C41]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A41])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="7" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];7;;"-")" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A42]=[.E42])AND([.B42]=[.F42])AND([.C42]=[.G42])AND([.D42]=[.H42])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A42])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A43]=[.E43])AND([.B43]=[.F43])AND([.C43]=[.G43])AND([.D43]=[.H43])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A43])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z44:.AA51]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA44:.AB51]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB44:.AC51]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A44]))AND(ISERROR([.B44]))AND(ISERROR([.C44]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A44])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A45]=[.E45])AND([.B45]=[.F45])AND([.C45]=[.G45])AND([.D45]=[.H45])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A45])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A46]=[.E46])AND([.B46]=[.F46])AND([.C46]=[.G46])AND([.D46]=[.H46])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A46])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A47]=[.E47])AND([.B47]=[.F47])AND([.C47]=[.G47])AND([.D47]=[.H47])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A47])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A48]=[.E48])AND([.B48]=[.F48])AND([.C48]=[.G48])AND([.D48]=[.H48])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A48])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>different column values</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;1)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=ISERROR([.A50])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A50])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;1)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;1)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=ISERROR([.A51])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A51])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;2)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;3)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A52]=[.E52])AND([.B52]=[.F52])AND([.C52]=[.G52])AND([.D52]=[.H52])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A52])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A53]=[.E53])AND([.B53]=[.F53])AND([.C53]=[.G53])AND([.D53]=[.H53])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A53])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z54:.AA61]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA54:.AB61]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB54:.AC61]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=(ISERROR([.A54]))AND(ISERROR([.B54]))AND(ISERROR([.C54]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A54])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:formula="of:=([.A55]=[.E55])AND([.B55]=[.F55])AND([.C55]=[.G55])AND([.D55]=[.H55])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A55])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A56]=[.E56])AND([.B56]=[.F56])AND([.C56]=[.G56])AND([.D56]=[.H56])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A56])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A57]=[.E57])AND([.B57]=[.F57])AND([.C57]=[.G57])AND([.D57]=[.H57])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A57])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;3)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;3)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;4)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC58:.AD65]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A58]=[.E58])AND([.B58]=[.F58])AND([.C58]=[.G58])AND(ISERROR([.D58]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A58])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC59:.AD66]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A59]=[.E59])AND([.B59]=[.F59])AND([.C59]=[.G59])AND(ISERROR([.D59]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A59])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z60:.AA67]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA60:.AB67]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB60:.AC67]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC60:.AD67]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A60]))AND(ISERROR([.B60]))AND(ISERROR([.C60]))AND(ISERROR([.D60]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A60])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC61:.AD68]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A61]=[.E61])AND([.B61]=[.F61])AND([.C61]=[.G61])AND(ISERROR([.D61]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A61])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC62:.AD69]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A62]=[.E62])AND([.B62]=[.F62])AND([.C62]=[.G62])AND(ISERROR([.D62]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A62])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC63:.AD70]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A63]=[.E63])AND([.B63]=[.F63])AND([.C63]=[.G63])AND(ISERROR([.D63]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A63])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];;4;"-")" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A64]=[.E64])AND([.B64]=[.F64])AND([.C64]=[.G64])AND([.D64]=[.H64])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A64])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A65]=[.E65])AND([.B65]=[.F65])AND([.C65]=[.G65])AND([.D65]=[.H65])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A65])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z66:.AA73]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA66:.AB73]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB66:.AC73]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A66]))AND(ISERROR([.B66]))AND(ISERROR([.C66]))AND([.D66]=[.H66])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A66])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A67]=[.E67])AND([.B67]=[.F67])AND([.C67]=[.G67])AND([.D67]=[.H67])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A67])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A68]=[.E68])AND([.B68]=[.F68])AND([.C68]=[.G68])AND([.D68]=[.H68])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A68])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A69]=[.E69])AND([.B69]=[.F69])AND([.C69]=[.G69])AND([.D69]=[.H69])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A69])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>column and rows</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="7" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];7;4)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC71:.AD78]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A71]=[.E71])AND([.B71]=[.F71])AND([.C71]=[.G71])AND(ISERROR([.D71]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A71])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC72:.AD79]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A72]=[.E72])AND([.B72]=[.F72])AND([.C72]=[.G72])AND(ISERROR([.D72]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A72])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z73:.AA80]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA73:.AB80]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB73:.AC80]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC73:.AD80]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A73]))AND(ISERROR([.B73]))AND(ISERROR([.C73]))AND(ISERROR([.D73]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A73])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC74:.AD81]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A74]=[.E74])AND([.B74]=[.F74])AND([.C74]=[.G74])AND(ISERROR([.D74]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A74])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC75:.AD82]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A75]=[.E75])AND([.B75]=[.F75])AND([.C75]=[.G75])AND(ISERROR([.D75]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A75])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC76:.AD83]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A76]=[.E76])AND([.B76]=[.F76])AND([.C76]=[.G76])AND(ISERROR([.D76]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A76])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z77:.AA84]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA77:.AB84]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB77:.AC84]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AC77:.AD84]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A77]))AND(ISERROR([.B77]))AND(ISERROR([.C77]))AND(ISERROR([.D77]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A77])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>column and rows with “-”</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="7" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];7;4;"-")" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A79]=[.E79])AND([.B79]=[.F79])AND([.C79]=[.G79])AND([.D79]=[.H79])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A79])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A80]=[.E80])AND([.B80]=[.F80])AND([.C80]=[.G80])AND([.D80]=[.H80])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A80])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z81:.AA88]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA81:.AB88]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB81:.AC88]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A81]))AND(ISERROR([.B81]))AND(ISERROR([.C81]))AND([.D81]=[.H81])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A81])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A82]=[.E82])AND([.B82]=[.F82])AND([.C82]=[.G82])AND([.D82]=[.H82])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A82])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A83]=[.E83])AND([.B83]=[.F83])AND([.C83]=[.G83])AND([.D83]=[.H83])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A83])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A84]=[.E84])AND([.B84]=[.F84])AND([.C84]=[.G84])AND([.D84]=[.H84])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A84])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="-" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3" office:value-type="string" calcext:value-type="string"> + <text:p>-</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A85]=[.E85])AND([.B85]=[.F85])AND([.C85]=[.G85])AND([.D85]=[.H85])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A85])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;"-")}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;"-")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>column and rows with 5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="7" table:formula="of:=COM.MICROSOFT.EXPAND([.L3:.N8];7;4;5)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A87]=[.E87])AND([.B87]=[.F87])AND([.C87]=[.G87])AND([.D87]=[.H87])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A87])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A88]=[.E88])AND([.B88]=[.F88])AND([.C88]=[.G88])AND([.D88]=[.H88])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A88])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Z89:.AA96]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AA89:.AB96]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce16" table:formula="of:=VLOOKUP(1; [.AB89:.AC96]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A89]))AND(ISERROR([.B89]))AND(ISERROR([.C89]))AND([.D89]=[.H89])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A89])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A90]=[.E90])AND([.B90]=[.F90])AND([.C90]=[.G90])AND([.D90]=[.H90])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A90])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce27" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A91]=[.E91])AND([.B91]=[.F91])AND([.C91]=[.G91])AND([.D91]=[.H91])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A91])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A92]=[.E92])AND([.B92]=[.F92])AND([.C92]=[.G92])AND([.D92]=[.H92])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A92])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A93]=[.E93])AND([.B93]=[.F93])AND([.C93]=[.G93])AND([.D93]=[.H93])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A93])" office:value-type="string" office:string-value="{=EXPAND(L3:N8;7;4;5)}" calcext:value-type="string"> + <text:p>{=EXPAND(L3:N8;7;4;5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.I2:Sheet2.I93"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.I2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet2.I2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet2.I2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document> diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/take.fods b/sc/qa/unit/data/functions/spreadsheet/fods/take.fods new file mode 100644 index 000000000000..1ee29fd0c124 --- /dev/null +++ b/sc/qa/unit/data/functions/spreadsheet/fods/take.fods @@ -0,0 +1,5095 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><meta:creation-date>2024-01-16T18:30:06.278000000</meta:creation-date><meta:editing-duration>PT6H32M10S</meta:editing-duration><meta:editing-cycles>127</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/3c7f122f1062c7b55f762732ab424a92300fd851</meta:generator><dc:date>2025-01-23T11:45:23.811735705</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="441" meta:object-count="0"/></office:meta> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss"/> + <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="'WenQuanYi Micro Hei'" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="1.27cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="WenQuanYi Micro Hei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" style:writing-mode="page"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="page" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="'Segoe UI'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:style style:name="Default" style:family="graphic"/> + <style:style style:name="Note" style:family="graphic" style:parent-style-name="Default"> + <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" draw:shadow-offset-y="0.1cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="'WenQuanYi Micro Hei'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/> + </style:style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N111P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N111"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N111P0"/> + </number:currency-style> + <number:currency-style style:name="N114P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N114"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N114P0"/> + </number:currency-style> + <number:number-style style:name="N116P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N116"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N116P0"/> + </number:number-style> + <number:percentage-style style:name="N117"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N121P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N121"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N121P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N121P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N121P2"/> + </number:text-style> + <number:currency-style style:name="N123P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N123"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N123P0"/> + </number:currency-style> + <number:number-style style:name="N124"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N128P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N128P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N128P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N128"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N128P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N128P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N128P2"/> + </number:text-style> + <number:date-style style:name="N129"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N130"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N131P0"/> + </number:number-style> + <number:currency-style style:name="N133P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N133"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:currency-style> + <number:number-style style:name="N135P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N135"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N135P0"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N139P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N139"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N139P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N139P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N139P2"/> + </number:text-style> + <number:date-style style:name="N140"> + <number:text>⌀ </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N144P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N144"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N144P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N144P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N144P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N147P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N147"> + <style:text-properties fo:color="#ff0000"/> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>-</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N147P0"/> + </number:currency-style> + <number:date-style style:name="N148"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N150P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N150"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N150P0"/> + </number:currency-style> + <number:date-style style:name="N151"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:style="long"/> + </number:date-style> + <number:number-style style:name="N152"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N153"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N157"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N157P2"/> + </number:text-style> + <number:currency-style style:name="N159P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N159"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N159P0"/> + </number:currency-style> + <number:number-style style:name="N160"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N161"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N162"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N163P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N163"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N163P0"/> + </number:number-style> + <number:currency-style style:name="N165P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N165"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N165P0"/> + </number:currency-style> + <number:currency-style style:name="N167P0" style:volatile="true"> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N167"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N167P0"/> + </number:currency-style> + <number:number-style style:name="N171P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N171"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N171P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N171P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N171P2"/> + </number:text-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:number-style style:name="N175P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N175P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N175P1"/> + </number:number-style> + <number:number-style style:name="N176"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N177"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N179P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N179"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N179P0"/> + </number:currency-style> + <number:number-style style:name="N181P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N181"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N181P0"/> + </number:number-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N183"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N183P0"/> + </number:number-style> + <number:number-style style:name="N187P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N187"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N187P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N187P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N187P2"/> + </number:text-style> + <number:number-style style:name="N188"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N189"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N190"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N192P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N192P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N192P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N192"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N192P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N192P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N192P2"/> + </number:text-style> + <number:currency-style style:name="N193P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N193"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:currency-style> + <number:number-style style:name="N194"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N195"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N197P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N197"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N197P0"/> + </number:currency-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N198"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:date-style style:name="N199"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N203P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N203P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N203"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N203P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N203P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N203P2"/> + </number:text-style> + <number:number-style style:name="N207P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N207P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N207P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N207"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N207P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N207P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N207P2"/> + </number:text-style> + <number:date-style style:name="N208"> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N209"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N211P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N211"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N211P0"/> + </number:currency-style> + <number:number-style style:name="N213P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N213P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N213P1"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N217"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N219P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N219"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N219P0"/> + </number:number-style> + <number:number-style style:name="N220P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N220"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N220P0"/> + </number:number-style> + <number:number-style style:name="N221"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N223P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N223P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N223P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N223"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N223P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N223P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N223P2"/> + </number:text-style> + <number:currency-style style:name="N224P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N224"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:currency-style> + <number:number-style style:name="N225"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N227P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N227P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N227P1"/> + </number:number-style> + <number:number-style style:name="N231P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N231"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N231P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N231P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N231P2"/> + </number:text-style> + <number:number-style style:name="N232"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:date-style style:name="N237"> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N238P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N238"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N238P0"/> + </number:currency-style> + <number:currency-style style:name="N240P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N240"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N240P0"/> + </number:currency-style> + <number:number-style style:name="N244P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N244P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N244P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N244"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N244P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N244P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N244P2"/> + </number:text-style> + <number:number-style style:name="N248P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N248"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N248P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N248P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N248P2"/> + </number:text-style> + <number:number-style style:name="N250P0" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250P1" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250"> + <number:text>FALSCH</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N250P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N250P1"/> + </number:number-style> + <number:date-style style:name="N251"> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N253P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N253"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N253P0"/> + </number:currency-style> + <number:currency-style style:name="N255P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:currency-style> + <number:number-style style:name="N256"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N259P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N259P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N259P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N259"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N259P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N259P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N259P2"/> + </number:text-style> + <number:time-style style:name="N260"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:time-style style:name="N261"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:currency-style style:name="N263P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N263"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N263P0"/> + </number:currency-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N264"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N264P0"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:currency-style style:name="N268P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N268"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N268P0"/> + </number:currency-style> + <number:number-style style:name="N269"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N270"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N271"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:number-style> + <number:currency-style style:name="N272P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N272"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N272P0"/> + </number:currency-style> + <number:time-style style:name="N273" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N274P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N274"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N274P0"/> + </number:number-style> + <number:number-style style:name="N276P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N276"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N276P0"/> + </number:currency-style> + <number:date-style style:name="N277"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N278"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N280P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N280"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N280P0"/> + </number:currency-style> + <number:number-style style:name="N282P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N282"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N282P0"/> + </number:number-style> + <number:number-style style:name="N283P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N283"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N283P0"/> + </number:number-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N285"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N285P0"/> + </number:number-style> + <number:number-style style:name="N286P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N286"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N286P0"/> + </number:number-style> + <number:number-style style:name="N287P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N287"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N287P0"/> + </number:number-style> + <number:number-style style:name="N288P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N288"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N288P0"/> + </number:number-style> + <number:number-style style:name="N289P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N289"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:number-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N290"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N294P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N294"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N294P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N294P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N294P2"/> + </number:text-style> + <number:number-style style:name="N298P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N298"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N298P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N298P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N298P2"/> + </number:text-style> + <number:number-style style:name="N302P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N302"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N302P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N302P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N302P2"/> + </number:text-style> + <number:number-style style:name="N306P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N306P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N306P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N306P2"/> + </number:text-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:number-style style:name="N310P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N310"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N310P0"/> + </number:number-style> + <number:number-style style:name="N311P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:number-style> + <number:number-style style:name="N313P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N313"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N313P0"/> + </number:number-style> + <number:number-style style:name="N314P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N314"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N314P0"/> + </number:number-style> + <number:percentage-style style:name="N315"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N316"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N317"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N318"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N319"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N321"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N322"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N323"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N325"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:currency-style> + <number:currency-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:currency-style> + <number:currency-style style:name="N329P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N329"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N329P0"/> + </number:currency-style> + <number:currency-style style:name="N331P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N331"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N331P0"/> + </number:currency-style> + <number:currency-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N333"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:currency-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:currency-style style:name="N339P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N339"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N339P0"/> + </number:currency-style> + <number:currency-style style:name="N341P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N341"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N341P0"/> + </number:currency-style> + <number:currency-style style:name="N343P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N343"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N343P0"/> + </number:currency-style> + <number:currency-style style:name="N345P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N345"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N345P0"/> + </number:currency-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:currency-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:currency-style> + <number:currency-style style:name="N351P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N351"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N351P0"/> + </number:currency-style> + <number:currency-style style:name="N353P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N353"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N353P0"/> + </number:currency-style> + <number:percentage-style style:name="N354"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N355"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N356"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N358"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N359"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N360"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N362P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N362"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N362P0"/> + </number:currency-style> + <number:percentage-style style:name="N363" number:title="User-defined"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N365P0"/> + </number:percentage-style> + <number:number-style style:name="N366P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N366"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N366P0"/> + </number:number-style> + <number:date-style style:name="N367"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N369P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N369"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N369P0"/> + </number:currency-style> + <number:currency-style style:name="N371P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N371"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N371P0"/> + </number:currency-style> + <number:percentage-style style:name="N373P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N373"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N373P0"/> + </number:percentage-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N375"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:number-style style:name="N376P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N376"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N376P0"/> + </number:number-style> + <number:number-style style:name="N378P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N378"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N378P0"/> + </number:number-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N379"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N379P0"/> + </number:number-style> + <number:number-style style:name="N383P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N383"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N383P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N383P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N383P2"/> + </number:text-style> + <number:number-style style:name="N387P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N387"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N387P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N387P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N387P2"/> + </number:text-style> + <number:number-style style:name="N391P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N391"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N391P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N391P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N391P2"/> + </number:text-style> + <number:number-style style:name="N395P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N395"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N395P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N395P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N395P2"/> + </number:text-style> + <number:text-style style:name="N396"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:text-style style:name="N397"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:date-style style:name="N398"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N399"> + <number:day/> + <number:text>. </number:text> + <number:month/> + <number:text>. </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N403P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N403"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N403P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N403P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N403P2"/> + </number:text-style> + <number:number-style style:name="N407P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- € </number:text> + </number:number-style> + <number:text-style style:name="N407"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N407P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N407P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N407P2"/> + </number:text-style> + <number:number-style style:name="N411P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N411"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N411P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N411P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N411P2"/> + </number:text-style> + <number:number-style style:name="N415P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N415"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N415P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N415P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N415P2"/> + </number:text-style> + <number:currency-style style:name="N416"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:date-style style:name="N418"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N419"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N420"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N421"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N422"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N423"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N424"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours number:style="long"/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N425P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N425"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N425P0"/> + </number:number-style> + <number:number-style style:name="N426P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N426"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N426P0"/> + </number:number-style> + <number:number-style style:name="N427P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N427"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N427P0"/> + </number:number-style> + <number:number-style style:name="N428P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N428"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N428P0"/> + </number:number-style> + <number:number-style style:name="N429"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N430P0"/> + </number:number-style> + <number:number-style style:name="N431P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N431"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N431P0"/> + </number:number-style> + <number:number-style style:name="N432P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N432"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N432P0"/> + </number:number-style> + <number:number-style style:name="N433P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N433"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N433P0"/> + </number:number-style> + <number:number-style style:name="N434"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435"> + <number:text>$-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N435P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N435P1"/> + </number:number-style> + <number:number-style style:name="N436"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437"> + <number:text>-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N437P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N437P1"/> + </number:number-style> + <number:number-style style:name="N438"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439"> + <number:text>$-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N439P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N439P1"/> + </number:number-style> + <number:number-style style:name="N440"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N441P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N441P1"/> + </number:number-style> + <number:number-style style:name="N443P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N443"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N443P0"/> + </number:number-style> + <number:number-style style:name="N444P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N444"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N444P0"/> + </number:number-style> + <number:number-style style:name="N446P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N446"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N446P0"/> + </number:number-style> + <number:number-style style:name="N447P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N447"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N447P0"/> + </number:number-style> + <number:date-style style:name="N448"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + </number:date-style> + <number:date-style style:name="N449"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N450"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N451"> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N452"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N454P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N454"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N454P0"/> + </number:number-style> + <number:number-style style:name="N455P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N455"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N455P0"/> + </number:number-style> + <number:number-style style:name="N457P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N457"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N457P0"/> + </number:number-style> + <number:number-style style:name="N458P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N458"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N458P0"/> + </number:number-style> + <number:number-style style:name="N462P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="F2_t4_-5">- </number:text> + </number:number-style> + <number:text-style style:name="N462"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N462P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N462P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N462P2"/> + </number:text-style> + <number:number-style style:name="N466P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-4">- Ft </number:text> + </number:number-style> + <number:text-style style:name="N466"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N466P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N466P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N466P2"/> + </number:text-style> + <number:number-style style:name="N470P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:text-style style:name="N470"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N470P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N470P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N470P2"/> + </number:text-style> + <number:number-style style:name="N474P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:text-style style:name="N474"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N474P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N474P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N474P2"/> + </number:text-style> + <number:date-style style:name="N475"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N476"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N477"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N478"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N479"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N480"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N482P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N482"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N482P0"/> + </number:number-style> + <number:number-style style:name="N483P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N483"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N483P0"/> + </number:number-style> + <number:number-style style:name="N485P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N485"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N485P0"/> + </number:number-style> + <number:number-style style:name="N486P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N486"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N486P0"/> + </number:number-style> + <number:number-style style:name="N490P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="€2_-4">- </number:text> + </number:number-style> + <number:text-style style:name="N490"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N490P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N490P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N490P2"/> + </number:text-style> + <number:number-style style:name="N494P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-3">- € </number:text> + </number:number-style> + <number:text-style style:name="N494"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N494P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N494P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N494P2"/> + </number:text-style> + <number:number-style style:name="N498P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:text-style style:name="N498"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N498P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N498P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N498P2"/> + </number:text-style> + <number:number-style style:name="N502P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:text-style style:name="N502"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N502P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N502P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N502P2"/> + </number:text-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10131" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10132" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10135" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10136" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N10137" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10141P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10141" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10141P0"/> + </number:number-style> + <number:currency-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10143" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10143P0"/> + </number:currency-style> + <number:currency-style style:name="N10144P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10144" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10144P0"/> + </number:currency-style> + <number:currency-style style:name="N10146P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10146" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10146P0"/> + </number:currency-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10147P0"/> + </number:currency-style> + <number:number-style style:name="N10148P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10148" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10148P0"/> + </number:number-style> + <number:number-style style:name="N10149P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10149" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10149P0"/> + </number:number-style> + <number:number-style style:name="N10153P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10153P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10153P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10153" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10153P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10153P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10153P2"/> + </number:text-style> + <number:currency-style style:name="N10157P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10157P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10157P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10157" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10157P2"/> + </number:text-style> + <number:number-style style:name="N10161P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10161P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10161P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10161" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10161P2"/> + </number:text-style> + <number:currency-style style:name="N10165P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10165P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10165P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10165" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10165P2"/> + </number:text-style> + <number:number-style style:name="N10166" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N10167" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:date-style style:name="N10168" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10169" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10170" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10171" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10172" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10173" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:date-style style:name="N10174P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:text-style style:name="N10174" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10174P0"/> + </number:text-style> + <number:date-style style:name="N10175P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:text-style style:name="N10175" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10175P0"/> + </number:text-style> + <number:date-style style:name="N20114" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20115" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20116" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20117" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20118" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20120P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20120" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20120P0"/> + </number:number-style> + <number:number-style style:name="N20121P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20121" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20121P0"/> + </number:number-style> + <number:number-style style:name="N20123P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20123" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20123P0"/> + </number:number-style> + <number:number-style style:name="N20124P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20124" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20124P0"/> + </number:number-style> + <number:number-style style:name="N20126P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20126" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20126P0"/> + </number:number-style> + <number:number-style style:name="N20127P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20127" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20127P0"/> + </number:number-style> + <number:number-style style:name="N20129P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20129" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20129P0"/> + </number:number-style> + <number:number-style style:name="N20130P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20130" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20130P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"/> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="false" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="true" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="3.884cm"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.794cm"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="10.633cm"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.258cm"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="1.614cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.612cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.529cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro5" style:family="table-row"> + <style:table-row-properties style:row-height="0.487cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:number-style style:name="N2"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + </number:number-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + </style:style> + <style:style style:name="ce12" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce18" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce38" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce31" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"/> + <style:style style:name="ce40" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet2.G2"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce30" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #afabab" fo:border-right="none" style:rotation-align="none" fo:border-top="none"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N429"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce36" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + <style:master-page style:name="Report" style:page-layout-name="pm2"> + <style:header> + <style:region-left> + <text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p> + </style:region-left> + <style:region-right> + <text:p><text:date style:data-style-name="N2" text:date-value="2025-01-23">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="11:30:50.350894452">00:00:00</text:time></text:p> + </style:region-right> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="ce4"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"> + <text:p>WrapRows Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce20" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce7" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([Sheet2.G2:.G201])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce29" office:value-type="string" calcext:value-type="string"> + <text:p>Simple TAKE formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="20"> + <table:table-cell/> + <table:table-cell table:style-name="ce28"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="21"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B2:Sheet1.B50"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet1.B2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1"> + <table:table-column table:style-name="co4" table:number-columns-repeated="3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce14"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="2" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce40"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="12" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce31" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="11"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default" office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 3 first rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce15"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44" table:number-columns-repeated="6"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce39"/> + <table:table-cell table:style-name="ce44"/> + <table:table-cell table:style-name="ce48"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 3)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A3]=[.D3])AND([.B3]=[.E3])AND([.C3]=[.F3])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A4]=[.D4])AND([.B4]=[.E4])AND([.C4]=[.F4])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X5:.Y10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y5:.Z10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z5:.AA10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A5])AND(ISERROR([.B5]))AND(ISERROR([.C5]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AE5:.AF10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AF5:.AG10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AG5:.AH10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 3 last rows</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; -3)" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A7]=[.D7])AND([.B7]=[.E7])AND([.C7]=[.F7])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A8]=[.D8])AND([.B8]=[.E8])AND([.C8]=[.F8])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14" office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A9]=[.D9])AND([.B9]=[.E9])AND([.C9]=[.F9])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -3)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -3)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 30 first rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce18"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 30)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A11]=[.D11])AND([.B11]=[.E11])AND([.C11]=[.F11])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A11])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce24" table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:style-name="ce12" office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A12]=[.D12])AND([.B12]=[.E12])AND([.C12]=[.F12])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A12])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X13:.Y18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y13:.Z18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z13:.AA18]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A13])AND(ISERROR([.B13]))AND(ISERROR([.C13]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A13])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A14]=[.D14])AND([.B14]=[.E14])AND([.C14]=[.F14])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A14])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce14"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A15]=[.D15])AND([.B15]=[.E15])AND([.C15]=[.F15])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A15])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce23"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A16]=[.D16])AND([.B16]=[.E16])AND([.C16]=[.F16])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A16])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 30)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 30 last rows</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce30"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; -30)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A18]=[.D18])AND([.B18]=[.E18])AND([.C18]=[.F18])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A18])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A19]=[.D19])AND([.B19]=[.E19])AND([.C19]=[.F19])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A19])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.X20:.Y25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Y20:.Z25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z20:.AA25]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A20])AND(ISERROR([.B20]))AND(ISERROR([.C20]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A20])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A21]=[.D21])AND([.B21]=[.E21])AND([.C21]=[.F21])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A21])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A22]=[.D22])AND([.B22]=[.E22])AND([.C22]=[.F22])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A22])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A23]=[.D23])AND([.B23]=[.E23])AND([.C23]=[.F23])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A23])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -30)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -30)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce12" table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 2 first columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; ;2)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12"/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A25]=[.D25])AND([.B25]=[.E25])AND([.C25]=[.F25])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A25])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A26]=[.D26])AND([.B26]=[.E26])AND([.C26]=[.F26])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A26])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y27:.Z32]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z27:.AA32]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A27])AND(ISERROR([.B27]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A27])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="ce12" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="ce12"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A28]=[.D28])AND([.B28]=[.E28])AND([.C28]=[.F28])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A28])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce12"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A29]=[.D29])AND([.B29]=[.E29])AND([.C29]=[.F29])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A29])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A30]=[.D30])AND([.B30]=[.E30])AND([.C30]=[.F30])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A30])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 2 last columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; ;-2)" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A32]=[.D32])AND([.B32]=[.E32])AND([.C32]=[.F32])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A33]=[.D33])AND([.B33]=[.E33])AND([.C33]=[.F33])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y34:.Z39]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z34:.AA39]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=ISERROR([.A34])AND(ISERROR([.B34]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A35]=[.D35])AND([.B35]=[.E35])AND([.C35]=[.F35])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A36]=[.D36])AND([.B36]=[.E36])AND([.C36]=[.F36])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A37]=[.D37])AND([.B37]=[.E37])AND([.C37]=[.F37])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A37])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 20 first columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; ;20)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A39]=[.D39])AND([.B39]=[.E39])AND([.C39]=[.F39])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A40]=[.D40])AND([.B40]=[.E40])AND([.C40]=[.F40])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A40])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y41:.Z46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z41:.AA46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA41:.AB46]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A41])AND(ISERROR([.B41]))AND(ISERROR([.C41]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A41])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A42]=[.D42])AND([.B42]=[.E42])AND([.C42]=[.F42])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A42])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A43]=[.D43])AND([.B43]=[.E43])AND([.C43]=[.F43])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A43])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A44]=[.D44])AND([.B44]=[.E44])AND([.C44]=[.F44])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A44])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take 20 last columns</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; ;-20)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A46]=[.D46])AND([.B46]=[.E46])AND([.C46]=[.F46])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A46])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A47]=[.D47])AND([.B47]=[.E47])AND([.C47]=[.F47])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A47])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y48:.Z53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z48:.AA53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA48:.AB53]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A48])AND(ISERROR([.B48]))AND(ISERROR([.C48]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A48])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A49]=[.D49])AND([.B49]=[.E49])AND([.C49]=[.F49])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A49])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A50]=[.D50])AND([.B50]=[.E50])AND([.C50]=[.F50])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A50])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A51]=[.D51])AND([.B51]=[.E51])AND([.C51]=[.F51])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A51])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;-20)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;-20)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take without arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="6" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8])" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A53]=[.D53])AND([.B53]=[.E53])AND([.C53]=[.F53])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A53])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A54]=[.D54])AND([.B54]=[.E54])AND([.C54]=[.F54])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A54])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=VLOOKUP(1; [.Y55:.Z60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.Z55:.AA60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce14" table:formula="of:=VLOOKUP(1; [.AA55:.AB60]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A55])AND(ISERROR([.B55]))AND(ISERROR([.C55]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A55])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=([.A56]=[.D56])AND([.B56]=[.E56])AND([.C56]=[.F56])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A56])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A57]=[.D57])AND([.B57]=[.E57])AND([.C57]=[.F57])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A57])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A58]=[.D58])AND([.B58]=[.E58])AND([.C58]=[.F58])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A58])" office:value-type="string" office:string-value="{=TAKE(J3:L8)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take with 2 positive arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="2" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 2; 2)" office:value-type="string" office:string-value="January" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>January</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:formula="of:=([.A60]=[.D60])AND([.B60]=[.E60])AND([.C60]=[.F60])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A60])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="February" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>February</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:formula="of:=([.A61]=[.D61])AND([.B61]=[.E61])AND([.C61]=[.F61])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A61])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 2; 2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take with 2 negative arguments</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="2" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; -2; -2)" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24"/> + <table:table-cell table:formula="of:=([.A63]=[.D63])AND([.B63]=[.E63])AND([.C63]=[.F63])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A63])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:formula="of:=([.A64]=[.D64])AND([.B64]=[.E64])AND([.C64]=[.F64])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A64])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -2; -2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take with 1 negative argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="2" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 2; -2)" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="100" calcext:value-type="float"> + <text:p>100</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A66]=[.D66])AND([.B66]=[.E66])AND([.C66]=[.F66])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A66])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="150" calcext:value-type="float"> + <text:p>150</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce38" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A67]=[.D67])AND([.B67]=[.E67])AND([.C67]=[.F67])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A67])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 2; -2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 2; -2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take with 1 negative argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="2" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; -2; 2)" office:value-type="string" office:string-value="April" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>April</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24" office:value-type="float" office:value="250" calcext:value-type="float"> + <text:p>250</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce24"/> + <table:table-cell table:formula="of:=([.A69]=[.D69])AND([.B69]=[.E69])AND([.C69]=[.F69])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A69])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -2; 2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="May" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>May</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26" office:value-type="float" office:value="300" calcext:value-type="float"> + <text:p>300</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:formula="of:=([.A70]=[.D70])AND([.B70]=[.E70])AND([.C70]=[.F70])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A70])" office:value-type="string" office:string-value="{=TAKE(J3:L8; -2; 2)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; -2; 2)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Take with 0 as argument</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 0)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A72])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A72])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 0)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; ;0)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A73])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A73])" office:value-type="string" office:string-value="{=TAKE(J3:L8; ;0)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; ;0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TAKE([.J3:.L8]; 0; 0)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=ISERROR([.A74])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A74])" office:value-type="string" office:string-value="{=TAKE(J3:L8; 0; 0)}" calcext:value-type="string"> + <text:p>{=TAKE(J3:L8; 0; 0)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.G2:Sheet2.G58 Sheet2.G60:Sheet2.G61 Sheet2.G63:Sheet2.G64 Sheet2.G69:Sheet2.G70 Sheet2.G66:Sheet2.G67 Sheet2.G72:Sheet2.G74"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet2.G2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document> diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/wrapcols.fods b/sc/qa/unit/data/functions/spreadsheet/fods/wrapcols.fods new file mode 100644 index 000000000000..e642fa255507 --- /dev/null +++ b/sc/qa/unit/data/functions/spreadsheet/fods/wrapcols.fods @@ -0,0 +1,4393 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><meta:creation-date>2024-01-16T18:30:06.278000000</meta:creation-date><meta:editing-duration>PT5H35M26S</meta:editing-duration><meta:editing-cycles>118</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/f0be6a4ed5833233a8df61538c781bee9cb8c3ea</meta:generator><dc:date>2025-01-16T19:42:34.033499212</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="268" meta:object-count="0"/></office:meta> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss"/> + <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="'WenQuanYi Micro Hei'" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="1.27cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="WenQuanYi Micro Hei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" style:writing-mode="page"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="page" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="'Segoe UI'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:style style:name="Default" style:family="graphic"/> + <style:style style:name="Note" style:family="graphic" style:parent-style-name="Default"> + <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" draw:shadow-offset-y="0.1cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="'WenQuanYi Micro Hei'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/> + </style:style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N111P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N111"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N111P0"/> + </number:currency-style> + <number:currency-style style:name="N114P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N114"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N114P0"/> + </number:currency-style> + <number:number-style style:name="N116P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N116"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N116P0"/> + </number:number-style> + <number:percentage-style style:name="N117"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N121P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N121"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N121P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N121P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N121P2"/> + </number:text-style> + <number:currency-style style:name="N123P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N123"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N123P0"/> + </number:currency-style> + <number:number-style style:name="N124"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N128P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N128P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N128P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N128"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N128P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N128P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N128P2"/> + </number:text-style> + <number:date-style style:name="N129"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N130"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N131P0"/> + </number:number-style> + <number:currency-style style:name="N133P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N133"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:currency-style> + <number:number-style style:name="N135P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N135"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N135P0"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N139P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N139"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N139P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N139P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N139P2"/> + </number:text-style> + <number:date-style style:name="N140"> + <number:text>⌀ </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N144P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N144"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N144P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N144P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N144P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N147P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N147"> + <style:text-properties fo:color="#ff0000"/> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>-</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N147P0"/> + </number:currency-style> + <number:date-style style:name="N148"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N150P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N150"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N150P0"/> + </number:currency-style> + <number:date-style style:name="N151"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:style="long"/> + </number:date-style> + <number:number-style style:name="N152"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N153"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N157"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N157P2"/> + </number:text-style> + <number:currency-style style:name="N159P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N159"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N159P0"/> + </number:currency-style> + <number:number-style style:name="N160"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N161"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N162"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N163P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N163"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N163P0"/> + </number:number-style> + <number:currency-style style:name="N165P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N165"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N165P0"/> + </number:currency-style> + <number:currency-style style:name="N167P0" style:volatile="true"> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N167"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N167P0"/> + </number:currency-style> + <number:number-style style:name="N171P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N171"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N171P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N171P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N171P2"/> + </number:text-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:number-style style:name="N175P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N175P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N175P1"/> + </number:number-style> + <number:number-style style:name="N176"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N177"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N179P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N179"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N179P0"/> + </number:currency-style> + <number:number-style style:name="N181P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N181"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N181P0"/> + </number:number-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N183"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N183P0"/> + </number:number-style> + <number:number-style style:name="N187P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N187"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N187P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N187P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N187P2"/> + </number:text-style> + <number:number-style style:name="N188"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N189"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N190"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N192P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N192P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N192P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N192"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N192P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N192P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N192P2"/> + </number:text-style> + <number:currency-style style:name="N193P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N193"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:currency-style> + <number:number-style style:name="N194"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N195"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N197P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N197"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N197P0"/> + </number:currency-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N198"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:date-style style:name="N199"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N203P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N203P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N203"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N203P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N203P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N203P2"/> + </number:text-style> + <number:number-style style:name="N207P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N207P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N207P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N207"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N207P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N207P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N207P2"/> + </number:text-style> + <number:date-style style:name="N208"> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N209"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N211P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N211"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N211P0"/> + </number:currency-style> + <number:number-style style:name="N213P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N213P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N213P1"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N217"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N219P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N219"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N219P0"/> + </number:number-style> + <number:number-style style:name="N220P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N220"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N220P0"/> + </number:number-style> + <number:number-style style:name="N221"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N223P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N223P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N223P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N223"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N223P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N223P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N223P2"/> + </number:text-style> + <number:currency-style style:name="N224P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N224"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:currency-style> + <number:number-style style:name="N225"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N227P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N227P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N227P1"/> + </number:number-style> + <number:number-style style:name="N231P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N231"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N231P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N231P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N231P2"/> + </number:text-style> + <number:number-style style:name="N232"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:date-style style:name="N237"> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N238P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N238"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N238P0"/> + </number:currency-style> + <number:currency-style style:name="N240P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N240"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N240P0"/> + </number:currency-style> + <number:number-style style:name="N244P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N244P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N244P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N244"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N244P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N244P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N244P2"/> + </number:text-style> + <number:number-style style:name="N248P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N248"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N248P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N248P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N248P2"/> + </number:text-style> + <number:number-style style:name="N250P0" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250P1" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250"> + <number:text>FALSCH</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N250P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N250P1"/> + </number:number-style> + <number:date-style style:name="N251"> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N253P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N253"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N253P0"/> + </number:currency-style> + <number:currency-style style:name="N255P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:currency-style> + <number:number-style style:name="N256"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N259P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N259P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N259P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N259"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N259P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N259P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N259P2"/> + </number:text-style> + <number:time-style style:name="N260"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:time-style style:name="N261"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:currency-style style:name="N263P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N263"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N263P0"/> + </number:currency-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N264"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N264P0"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:currency-style style:name="N268P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N268"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N268P0"/> + </number:currency-style> + <number:number-style style:name="N269"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N270"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N271"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:number-style> + <number:currency-style style:name="N272P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N272"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N272P0"/> + </number:currency-style> + <number:time-style style:name="N273" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N274P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N274"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N274P0"/> + </number:number-style> + <number:number-style style:name="N276P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N276"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N276P0"/> + </number:currency-style> + <number:date-style style:name="N277"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N278"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N280P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N280"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N280P0"/> + </number:currency-style> + <number:number-style style:name="N282P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N282"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N282P0"/> + </number:number-style> + <number:number-style style:name="N283P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N283"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N283P0"/> + </number:number-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N285"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N285P0"/> + </number:number-style> + <number:number-style style:name="N286P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N286"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N286P0"/> + </number:number-style> + <number:number-style style:name="N287P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N287"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N287P0"/> + </number:number-style> + <number:number-style style:name="N288P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N288"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N288P0"/> + </number:number-style> + <number:number-style style:name="N289P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N289"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:number-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N290"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N294P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N294"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N294P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N294P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N294P2"/> + </number:text-style> + <number:number-style style:name="N298P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N298"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N298P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N298P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N298P2"/> + </number:text-style> + <number:number-style style:name="N302P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N302"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N302P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N302P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N302P2"/> + </number:text-style> + <number:number-style style:name="N306P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N306P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N306P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N306P2"/> + </number:text-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:number-style style:name="N310P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N310"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N310P0"/> + </number:number-style> + <number:number-style style:name="N311P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:number-style> + <number:number-style style:name="N313P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N313"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N313P0"/> + </number:number-style> + <number:number-style style:name="N314P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N314"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N314P0"/> + </number:number-style> + <number:percentage-style style:name="N315"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N316"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N317"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N318"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N319"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N321"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N322"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N323"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N325"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:currency-style> + <number:currency-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:currency-style> + <number:currency-style style:name="N329P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N329"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N329P0"/> + </number:currency-style> + <number:currency-style style:name="N331P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N331"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N331P0"/> + </number:currency-style> + <number:currency-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N333"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:currency-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:currency-style style:name="N339P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N339"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N339P0"/> + </number:currency-style> + <number:currency-style style:name="N341P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N341"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N341P0"/> + </number:currency-style> + <number:currency-style style:name="N343P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N343"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N343P0"/> + </number:currency-style> + <number:currency-style style:name="N345P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N345"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N345P0"/> + </number:currency-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:currency-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:currency-style> + <number:currency-style style:name="N351P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N351"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N351P0"/> + </number:currency-style> + <number:currency-style style:name="N353P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N353"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N353P0"/> + </number:currency-style> + <number:percentage-style style:name="N354"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N355"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N356"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N358"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N359"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N360"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N362P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N362"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N362P0"/> + </number:currency-style> + <number:percentage-style style:name="N363" number:title="User-defined"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N365P0"/> + </number:percentage-style> + <number:number-style style:name="N366P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N366"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N366P0"/> + </number:number-style> + <number:date-style style:name="N367"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N369P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N369"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N369P0"/> + </number:currency-style> + <number:currency-style style:name="N371P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N371"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N371P0"/> + </number:currency-style> + <number:percentage-style style:name="N373P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N373"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N373P0"/> + </number:percentage-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N375"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:number-style style:name="N376P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N376"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N376P0"/> + </number:number-style> + <number:number-style style:name="N378P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N378"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N378P0"/> + </number:number-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N379"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N379P0"/> + </number:number-style> + <number:number-style style:name="N383P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N383"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N383P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N383P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N383P2"/> + </number:text-style> + <number:number-style style:name="N387P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N387"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N387P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N387P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N387P2"/> + </number:text-style> + <number:number-style style:name="N391P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N391"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N391P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N391P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N391P2"/> + </number:text-style> + <number:number-style style:name="N395P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N395"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N395P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N395P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N395P2"/> + </number:text-style> + <number:text-style style:name="N396"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:text-style style:name="N397"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:date-style style:name="N398"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N399"> + <number:day/> + <number:text>. </number:text> + <number:month/> + <number:text>. </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N403P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N403"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N403P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N403P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N403P2"/> + </number:text-style> + <number:number-style style:name="N407P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- € </number:text> + </number:number-style> + <number:text-style style:name="N407"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N407P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N407P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N407P2"/> + </number:text-style> + <number:number-style style:name="N411P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N411"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N411P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N411P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N411P2"/> + </number:text-style> + <number:number-style style:name="N415P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N415"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N415P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N415P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N415P2"/> + </number:text-style> + <number:currency-style style:name="N416"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:date-style style:name="N418"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N419"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N420"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N421"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N422"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N423"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N424"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours number:style="long"/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N425P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N425"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N425P0"/> + </number:number-style> + <number:number-style style:name="N426P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N426"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N426P0"/> + </number:number-style> + <number:number-style style:name="N427P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N427"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N427P0"/> + </number:number-style> + <number:number-style style:name="N428P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N428"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N428P0"/> + </number:number-style> + <number:number-style style:name="N429"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N430P0"/> + </number:number-style> + <number:number-style style:name="N431P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N431"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N431P0"/> + </number:number-style> + <number:number-style style:name="N432P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N432"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N432P0"/> + </number:number-style> + <number:number-style style:name="N433P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N433"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N433P0"/> + </number:number-style> + <number:number-style style:name="N434"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435"> + <number:text>$-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N435P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N435P1"/> + </number:number-style> + <number:number-style style:name="N436"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437"> + <number:text>-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N437P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N437P1"/> + </number:number-style> + <number:number-style style:name="N438"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439"> + <number:text>$-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N439P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N439P1"/> + </number:number-style> + <number:number-style style:name="N440"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N441P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N441P1"/> + </number:number-style> + <number:number-style style:name="N443P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N443"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N443P0"/> + </number:number-style> + <number:number-style style:name="N444P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N444"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N444P0"/> + </number:number-style> + <number:number-style style:name="N446P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N446"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N446P0"/> + </number:number-style> + <number:number-style style:name="N447P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N447"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N447P0"/> + </number:number-style> + <number:date-style style:name="N448"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + </number:date-style> + <number:date-style style:name="N449"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N450"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N451"> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N452"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N454P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N454"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N454P0"/> + </number:number-style> + <number:number-style style:name="N455P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N455"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N455P0"/> + </number:number-style> + <number:number-style style:name="N457P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N457"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N457P0"/> + </number:number-style> + <number:number-style style:name="N458P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N458"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N458P0"/> + </number:number-style> + <number:number-style style:name="N462P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="F2_t4_-5">- </number:text> + </number:number-style> + <number:text-style style:name="N462"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N462P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N462P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N462P2"/> + </number:text-style> + <number:number-style style:name="N466P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-4">- Ft </number:text> + </number:number-style> + <number:text-style style:name="N466"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N466P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N466P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N466P2"/> + </number:text-style> + <number:number-style style:name="N470P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:text-style style:name="N470"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N470P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N470P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N470P2"/> + </number:text-style> + <number:number-style style:name="N474P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:text-style style:name="N474"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N474P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N474P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N474P2"/> + </number:text-style> + <number:date-style style:name="N475"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N476"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N477"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N478"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N479"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N480"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N482P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N482"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N482P0"/> + </number:number-style> + <number:number-style style:name="N483P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N483"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N483P0"/> + </number:number-style> + <number:number-style style:name="N485P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N485"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N485P0"/> + </number:number-style> + <number:number-style style:name="N486P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N486"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N486P0"/> + </number:number-style> + <number:number-style style:name="N490P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="€2_-4">- </number:text> + </number:number-style> + <number:text-style style:name="N490"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N490P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N490P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N490P2"/> + </number:text-style> + <number:number-style style:name="N494P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-3">- € </number:text> + </number:number-style> + <number:text-style style:name="N494"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N494P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N494P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N494P2"/> + </number:text-style> + <number:number-style style:name="N498P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:text-style style:name="N498"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N498P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N498P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N498P2"/> + </number:text-style> + <number:number-style style:name="N502P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:text-style style:name="N502"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N502P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N502P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N502P2"/> + </number:text-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10131" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10132" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10135" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10136" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N10137" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10141P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10141" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10141P0"/> + </number:number-style> + <number:currency-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10143" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10143P0"/> + </number:currency-style> + <number:currency-style style:name="N10144P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10144" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10144P0"/> + </number:currency-style> + <number:currency-style style:name="N10146P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10146" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10146P0"/> + </number:currency-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10147P0"/> + </number:currency-style> + <number:number-style style:name="N10148P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10148" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10148P0"/> + </number:number-style> + <number:number-style style:name="N10149P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10149" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10149P0"/> + </number:number-style> + <number:number-style style:name="N10153P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10153P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10153P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10153" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10153P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10153P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10153P2"/> + </number:text-style> + <number:currency-style style:name="N10157P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10157P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10157P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10157" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10157P2"/> + </number:text-style> + <number:number-style style:name="N10161P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10161P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10161P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10161" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10161P2"/> + </number:text-style> + <number:currency-style style:name="N10165P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10165P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10165P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10165" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10165P2"/> + </number:text-style> + <number:number-style style:name="N10166" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N10167" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:date-style style:name="N10168" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10169" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10170" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10171" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10172" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10173" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:date-style style:name="N10174P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:text-style style:name="N10174" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10174P0"/> + </number:text-style> + <number:date-style style:name="N10175P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:text-style style:name="N10175" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10175P0"/> + </number:text-style> + <number:date-style style:name="N20114" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20115" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20116" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20117" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20118" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20120P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20120" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20120P0"/> + </number:number-style> + <number:number-style style:name="N20121P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20121" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20121P0"/> + </number:number-style> + <number:number-style style:name="N20123P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20123" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20123P0"/> + </number:number-style> + <number:number-style style:name="N20124P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20124" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20124P0"/> + </number:number-style> + <number:number-style style:name="N20126P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20126" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20126P0"/> + </number:number-style> + <number:number-style style:name="N20127P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20127" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20127P0"/> + </number:number-style> + <number:number-style style:name="N20129P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20129" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20129P0"/> + </number:number-style> + <number:number-style style:name="N20130P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20130" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20130P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"/> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="false" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="true" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="3.884cm"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.794cm"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="10.633cm"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.258cm"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="1.614cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.612cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.529cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro5" style:family="table-row"> + <style:table-row-properties style:row-height="0.487cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:number-style style:name="N2"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + </number:number-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + </style:style> + <style:style style:name="ce31" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"/> + <style:style style:name="ce13" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet2.G2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet2.G2"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce36" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce30" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #afabab" fo:border-right="none" style:rotation-align="none" fo:border-top="none"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N429"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce32" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce34" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce35" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce38" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + <style:master-page style:name="Report" style:page-layout-name="pm2"> + <style:header> + <style:region-left> + <text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p> + </style:region-left> + <style:region-right> + <text:p><text:date style:data-style-name="N2" text:date-value="2025-01-16">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="19:32:52.421209722">00:00:00</text:time></text:p> + </style:region-right> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="ce4"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"> + <text:p>WrapCols Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce20" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce7" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([Sheet2.G2:.G208])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce29" office:value-type="string" calcext:value-type="string"> + <text:p>Simple WrapCols formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="20"> + <table:table-cell/> + <table:table-cell table:style-name="ce28"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="21"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B2:Sheet1.B50"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet1.B2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1"> + <table:table-column table:style-name="co4" table:number-columns-repeated="6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce13"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="12" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce31" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="11"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>row to array</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce15" office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44"/> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce36" table:formula="of:=VLOOKUP(1; [.AE5:.AF10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce48" office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.U2]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A3]=[.D3])AND([.B3]=[.E3])AND(ISERROR([.C3]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce21"/> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A4]=[.D4])AND([.B4]=[.E4])AND([.C4]=[.F4])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce34"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="K" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A5]=[.D5])AND([.B5]=[.E5])AND([.C5]=[.F5])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="M" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A6]=[.D6])AND([.B6]=[.E6])AND([.C6]=[.F6])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A6])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>column to array</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J4:.J15]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A8]=[.D8])AND([.B8]=[.E8])AND(ISERROR([.C8]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="{=WRAPCOLS(J4:J15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J4:J15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A9]=[.D9])AND([.B9]=[.E9])AND([.C9]=[.F9])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="{=WRAPCOLS(J4:J15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J4:J15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="K" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A10]=[.D10])AND([.B10]=[.E10])AND([.C10]=[.F10])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A10])" office:value-type="string" office:string-value="{=WRAPCOLS(J4:J15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J4:J15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce34"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="M" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A11]=[.D11])AND([.B11]=[.E11])AND([.C11]=[.F11])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A11])" office:value-type="string" office:string-value="{=WRAPCOLS(J4:J15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J4:J15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>no pad_with</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce36" table:formula="of:=VLOOKUP(1; [.W15:.X20]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.S2]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A13]=[.D13])AND([.B13]=[.E13])AND(ISERROR([.C13]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A13])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A14]=[.D14])AND([.B14]=[.E14])AND([.C14]=[.F14])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A14])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A15]=[.D15])AND([.B15]=[.E15])AND(ISERROR([.C15]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A15])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce23" office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A16]=[.D16])AND([.B16]=[.E16])AND(ISERROR([.C16]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A16])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = “”</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce30"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.S2]; 4; "")" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A18]=[.D18])AND([.B18]=[.E18])AND(ISERROR([.C18]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A18])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A19]=[.D19])AND([.B19]=[.E19])AND([.C19]=[.F19])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A19])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A20]=[.D20])AND([.B20]=[.E20])AND([.C20]=[.F20])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A20])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:formula="of:=([.A21]=[.D21])AND([.B21]=[.E21])AND([.C21]=[.F21])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A21])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = “test”</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.S2]; 4; "test")" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A23]=[.D23])AND([.B23]=[.E23])AND(ISERROR([.C23]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A23])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A24]=[.D24])AND([.B24]=[.E24])AND([.C24]=[.F24])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A24])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="test" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A25]=[.D25])AND([.B25]=[.E25])AND([.C25]=[.F25])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A25])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="test" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A26]=[.D26])AND([.B26]=[.E26])AND([.C26]=[.F26])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A26])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = 5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.S2]; 4; 5)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A28]=[.D28])AND([.B28]=[.E28])AND(ISERROR([.C28]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A28])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A29]=[.D29])AND([.B29]=[.E29])AND([.C29]=[.F29])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A29])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A30]=[.D30])AND([.B30]=[.E30])AND([.C30]=[.F30])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A30])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A31]=[.D31])AND([.B31]=[.E31])AND([.C31]=[.F31])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A31])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = 5.5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.S2]; 4; 5.5)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A33]=[.D33])AND([.B33]=[.E33])AND(ISERROR([.C33]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A34]=[.D34])AND([.B34]=[.E34])AND([.C34]=[.F34])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A35]=[.D35])AND([.B35]=[.E35])AND([.C35]=[.F35])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A36]=[.D36])AND([.B36]=[.E36])AND([.C36]=[.F36])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:S2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:S2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>more than 1 column or 1 row in range</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J2:.U3]; 4; 5)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell table:formula="of:=ISERROR([.A38])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A38])" office:value-type="string" office:string-value="{=WRAPCOLS(J2:U3; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J2:U3; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.WRAPCOLS([.J4:.K15]; 4)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell table:formula="of:=ISERROR([.A39])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="{=WRAPCOLS(J4:K15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPCOLS(J4:K15; 4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="17"> + <table:table-cell table:number-columns-repeated="21"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="6"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="14"/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="5"> + <table:table-cell table:number-columns-repeated="21"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="21"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.G58:Sheet2.G63 Sheet2.G2:Sheet2.G56"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet2.G2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet2.G2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document> diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/wraprows.fods b/sc/qa/unit/data/functions/spreadsheet/fods/wraprows.fods new file mode 100644 index 000000000000..9288ebcde220 --- /dev/null +++ b/sc/qa/unit/data/functions/spreadsheet/fods/wraprows.fods @@ -0,0 +1,4320 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><meta:creation-date>2024-01-16T18:30:06.278000000</meta:creation-date><meta:editing-duration>PT5H49M40S</meta:editing-duration><meta:editing-cycles>122</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/99e09f215d694b455c7b911cc2b2dc38ee0a7a2e</meta:generator><dc:date>2025-01-22T15:59:17.938680426</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="254" meta:object-count="0"/></office:meta> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss"/> + <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="'WenQuanYi Micro Hei'" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="1.27cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="WenQuanYi Micro Hei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" style:writing-mode="page"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="page" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="'Segoe UI'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:style style:name="Default" style:family="graphic"/> + <style:style style:name="Note" style:family="graphic" style:parent-style-name="Default"> + <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" draw:shadow-offset-y="0.1cm"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="'WenQuanYi Micro Hei'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/> + </style:style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N111P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N111"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="es" number:country="ES">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N111P0"/> + </number:currency-style> + <number:currency-style style:name="N114P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N114"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N114P0"/> + </number:currency-style> + <number:number-style style:name="N116P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N116"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N116P0"/> + </number:number-style> + <number:percentage-style style:name="N117"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N121P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N121P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N121"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N121P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N121P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N121P2"/> + </number:text-style> + <number:currency-style style:name="N123P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N123"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N123P0"/> + </number:currency-style> + <number:number-style style:name="N124"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N128P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N128P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N128P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N128"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N128P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N128P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N128P2"/> + </number:text-style> + <number:date-style style:name="N129"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N130"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N131"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N131P0"/> + </number:number-style> + <number:currency-style style:name="N133P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N133"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:currency-style> + <number:number-style style:name="N135P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N135"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N135P0"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N139P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N139P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N139"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N139P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N139P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N139P2"/> + </number:text-style> + <number:date-style style:name="N140"> + <number:text>⌀ </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N144P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N144P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N144"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N144P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N144P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N144P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N147P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N147"> + <style:text-properties fo:color="#ff0000"/> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>-</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N147P0"/> + </number:currency-style> + <number:date-style style:name="N148"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N150P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N150"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N150P0"/> + </number:currency-style> + <number:date-style style:name="N151"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:style="long"/> + </number:date-style> + <number:number-style style:name="N152"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N153"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N157P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N157"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N157P2"/> + </number:text-style> + <number:currency-style style:name="N159P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N159"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N159P0"/> + </number:currency-style> + <number:number-style style:name="N160"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N161"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N162"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N163P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N163"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N163P0"/> + </number:number-style> + <number:currency-style style:name="N165P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N165"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N165P0"/> + </number:currency-style> + <number:currency-style style:name="N167P0" style:volatile="true"> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N167"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="es" number:country="MX">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N167P0"/> + </number:currency-style> + <number:number-style style:name="N171P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N171P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N171"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N171P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N171P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N171P2"/> + </number:text-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:number-style style:name="N175P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N175"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N175P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N175P1"/> + </number:number-style> + <number:number-style style:name="N176"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N177"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N179P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N179"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N179P0"/> + </number:currency-style> + <number:number-style style:name="N181P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N181"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N181P0"/> + </number:number-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N183"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N183P0"/> + </number:number-style> + <number:number-style style:name="N187P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N187P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N187"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N187P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N187P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N187P2"/> + </number:text-style> + <number:number-style style:name="N188"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N189"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N190"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N192P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N192P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N192P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N192"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N192P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N192P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N192P2"/> + </number:text-style> + <number:currency-style style:name="N193P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N193"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:currency-style> + <number:number-style style:name="N194"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N195"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N197P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N197"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol>EUR</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N197P0"/> + </number:currency-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N198"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:date-style style:name="N199"> + <number:month number:style="long"/> + <number:text>-</number:text> + <number:day/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N203P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N203P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N203"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N203P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N203P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N203P2"/> + </number:text-style> + <number:number-style style:name="N207P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N207P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N207P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N207"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N207P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N207P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N207P2"/> + </number:text-style> + <number:date-style style:name="N208"> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N209"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N211P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N211"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N211P0"/> + </number:currency-style> + <number:number-style style:name="N213P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N213"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N213P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N213P1"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N217"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N219P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N219"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N219P0"/> + </number:number-style> + <number:number-style style:name="N220P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N220"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N220P0"/> + </number:number-style> + <number:number-style style:name="N221"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N223P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N223P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N223P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N223"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N223P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N223P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N223P2"/> + </number:text-style> + <number:currency-style style:name="N224P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N224"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:currency-style> + <number:number-style style:name="N225"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N227P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N227"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N227P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N227P1"/> + </number:number-style> + <number:number-style style:name="N231P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N231P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N231"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N231P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N231P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N231P2"/> + </number:text-style> + <number:number-style style:name="N232"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:date-style style:name="N237"> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N238P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N238"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N238P0"/> + </number:currency-style> + <number:currency-style style:name="N240P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N240"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:decimal-replacement="--" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N240P0"/> + </number:currency-style> + <number:number-style style:name="N244P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N244P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N244P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N244"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N244P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N244P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N244P2"/> + </number:text-style> + <number:number-style style:name="N248P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N248P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N248"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N248P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N248P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N248P2"/> + </number:text-style> + <number:number-style style:name="N250P0" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250P1" style:volatile="true"> + <number:text>WAHR</number:text> + </number:number-style> + <number:number-style style:name="N250"> + <number:text>FALSCH</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N250P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N250P1"/> + </number:number-style> + <number:date-style style:name="N251"> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N253P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N253"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N253P0"/> + </number:currency-style> + <number:currency-style style:name="N255P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:currency-style> + <number:number-style style:name="N256"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N259P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N259P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N259P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N259"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N259P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N259P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N259P2"/> + </number:text-style> + <number:time-style style:name="N260"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:time-style style:name="N261"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:currency-style style:name="N263P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N263"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N263P0"/> + </number:currency-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N264"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N264P0"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <number:currency-symbol number:language="nl" number:country="NL">€</number:currency-symbol> + <number:text> -</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:currency-style style:name="N268P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N268"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N268P0"/> + </number:currency-style> + <number:number-style style:name="N269"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N270"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N271"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:number-style> + <number:currency-style style:name="N272P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N272"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N272P0"/> + </number:currency-style> + <number:time-style style:name="N273" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N274P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N274"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N274P0"/> + </number:number-style> + <number:number-style style:name="N276P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N276"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N276P0"/> + </number:currency-style> + <number:date-style style:name="N277"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N278"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N280P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N280"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N280P0"/> + </number:currency-style> + <number:number-style style:name="N282P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N282"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N282P0"/> + </number:number-style> + <number:number-style style:name="N283P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N283"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N283P0"/> + </number:number-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N285"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N285P0"/> + </number:number-style> + <number:number-style style:name="N286P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N286"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N286P0"/> + </number:number-style> + <number:number-style style:name="N287P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N287"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N287P0"/> + </number:number-style> + <number:number-style style:name="N288P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N288"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N288P0"/> + </number:number-style> + <number:number-style style:name="N289P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N289"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:number-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N290"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N294P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N294P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N294"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N294P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N294P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N294P2"/> + </number:text-style> + <number:number-style style:name="N298P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N298P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N298"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N298P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N298P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N298P2"/> + </number:text-style> + <number:number-style style:name="N302P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N302P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N302"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N302P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N302P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N302P2"/> + </number:text-style> + <number:number-style style:name="N306P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N306P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N306P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N306P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N306P2"/> + </number:text-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:number-style style:name="N310P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N310"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N310P0"/> + </number:number-style> + <number:number-style style:name="N311P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:number-style> + <number:number-style style:name="N313P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N313"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N313P0"/> + </number:number-style> + <number:number-style style:name="N314P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N314"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N314P0"/> + </number:number-style> + <number:percentage-style style:name="N315"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N316"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N317"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N318"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N319"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N321"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N322"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N323"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N325"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:currency-style> + <number:currency-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:currency-style> + <number:currency-style style:name="N329P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N329"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N329P0"/> + </number:currency-style> + <number:currency-style style:name="N331P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N331"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N331P0"/> + </number:currency-style> + <number:currency-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N333"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:currency-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:currency-style style:name="N339P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N339"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N339P0"/> + </number:currency-style> + <number:currency-style style:name="N341P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N341"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N341P0"/> + </number:currency-style> + <number:currency-style style:name="N343P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N343"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N343P0"/> + </number:currency-style> + <number:currency-style style:name="N345P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N345"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N345P0"/> + </number:currency-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:currency-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:currency-style> + <number:currency-style style:name="N351P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N351"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N351P0"/> + </number:currency-style> + <number:currency-style style:name="N353P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N353"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N353P0"/> + </number:currency-style> + <number:percentage-style style:name="N354"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N355"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N356"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N358"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N359"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N360"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N362P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N362"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N362P0"/> + </number:currency-style> + <number:percentage-style style:name="N363" number:title="User-defined"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N365"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N365P0"/> + </number:percentage-style> + <number:number-style style:name="N366P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N366"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N366P0"/> + </number:number-style> + <number:date-style style:name="N367"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N369P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N369"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N369P0"/> + </number:currency-style> + <number:currency-style style:name="N371P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N371"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N371P0"/> + </number:currency-style> + <number:percentage-style style:name="N373P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N373"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N373P0"/> + </number:percentage-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N375"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:number-style style:name="N376P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N376"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N376P0"/> + </number:number-style> + <number:number-style style:name="N378P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N378"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N378P0"/> + </number:number-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N379"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N379P0"/> + </number:number-style> + <number:number-style style:name="N383P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N383P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N383"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N383P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N383P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N383P2"/> + </number:text-style> + <number:number-style style:name="N387P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N387P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N387"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N387P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N387P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N387P2"/> + </number:text-style> + <number:number-style style:name="N391P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N391P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N391"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N391P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N391P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N391P2"/> + </number:text-style> + <number:number-style style:name="N395P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N395P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N395"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N395P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N395P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N395P2"/> + </number:text-style> + <number:text-style style:name="N396"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:text-style style:name="N397"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:date-style style:name="N398"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N399"> + <number:day/> + <number:text>. </number:text> + <number:month/> + <number:text>. </number:text> + <number:year number:style="long"/> + </number:date-style> + <number:number-style style:name="N403P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N403P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N403"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N403P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N403P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N403P2"/> + </number:text-style> + <number:number-style style:name="N407P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N407P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- € </number:text> + </number:number-style> + <number:text-style style:name="N407"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N407P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N407P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N407P2"/> + </number:text-style> + <number:number-style style:name="N411P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N411P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N411"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N411P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N411P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N411P2"/> + </number:text-style> + <number:number-style style:name="N415P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N415P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N415"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N415P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N415P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N415P2"/> + </number:text-style> + <number:currency-style style:name="N416"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="AU">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:date-style style:name="N418"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N419"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N420"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N421"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N422"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N423"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N424"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours number:style="long"/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N425P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N425"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N425P0"/> + </number:number-style> + <number:number-style style:name="N426P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N426"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N426P0"/> + </number:number-style> + <number:number-style style:name="N427P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N427"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N427P0"/> + </number:number-style> + <number:number-style style:name="N428P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N428"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N428P0"/> + </number:number-style> + <number:number-style style:name="N429"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N430"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N430P0"/> + </number:number-style> + <number:number-style style:name="N431P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N431"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N431P0"/> + </number:number-style> + <number:number-style style:name="N432P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N432"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N432P0"/> + </number:number-style> + <number:number-style style:name="N433P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N433"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N433P0"/> + </number:number-style> + <number:number-style style:name="N434"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N435"> + <number:text>$-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N435P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N435P1"/> + </number:number-style> + <number:number-style style:name="N436"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N437"> + <number:text>-</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N437P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N437P1"/> + </number:number-style> + <number:number-style style:name="N438"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439P1" style:volatile="true"> + <number:text>-$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N439"> + <number:text>$-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N439P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N439P1"/> + </number:number-style> + <number:number-style style:name="N440"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N441"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <style:map style:condition="value()>0" style:apply-style-name="N441P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N441P1"/> + </number:number-style> + <number:number-style style:name="N443P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N443"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N443P0"/> + </number:number-style> + <number:number-style style:name="N444P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N444"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N444P0"/> + </number:number-style> + <number:number-style style:name="N446P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N446"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N446P0"/> + </number:number-style> + <number:number-style style:name="N447P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + </number:number-style> + <number:number-style style:name="N447"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Ft</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N447P0"/> + </number:number-style> + <number:date-style style:name="N448"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + </number:date-style> + <number:date-style style:name="N449"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N450"> + <number:day number:style="long"/> + <number:text>.</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N451"> + <number:month number:textual="true"/> + <number:text>.</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N452"> + <number:year number:style="long"/> + <number:text>.</number:text> + <number:month number:style="long"/> + <number:text>.</number:text> + <number:day number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N454P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N454"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N454P0"/> + </number:number-style> + <number:number-style style:name="N455P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N455"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N455P0"/> + </number:number-style> + <number:number-style style:name="N457P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N457"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N457P0"/> + </number:number-style> + <number:number-style style:name="N458P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + </number:number-style> + <number:number-style style:name="N458"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N458P0"/> + </number:number-style> + <number:number-style style:name="N462P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N462P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="F2_t4_-5">- </number:text> + </number:number-style> + <number:text-style style:name="N462"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N462P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N462P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N462P2"/> + </number:text-style> + <number:number-style style:name="N466P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N466P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-4">- Ft </number:text> + </number:number-style> + <number:text-style style:name="N466"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N466P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N466P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N466P2"/> + </number:text-style> + <number:number-style style:name="N470P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:number-style style:name="N470P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="F1_t3_-4"> </number:text> + </number:number-style> + <number:text-style style:name="N470"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N470P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N470P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N470P2"/> + </number:text-style> + <number:number-style style:name="N474P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:number-style style:name="N474P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-3"> Ft </number:text> + </number:number-style> + <number:text-style style:name="N474"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N474P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N474P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N474P2"/> + </number:text-style> + <number:date-style style:name="N475"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N476"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N477"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N478"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N479"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N480"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N482P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N482"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N482P0"/> + </number:number-style> + <number:number-style style:name="N483P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N483"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N483P0"/> + </number:number-style> + <number:number-style style:name="N485P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N485"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N485P0"/> + </number:number-style> + <number:number-style style:name="N486P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + </number:number-style> + <number:number-style style:name="N486"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1"> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N486P0"/> + </number:number-style> + <number:number-style style:name="N490P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N490P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="€2_-4">- </number:text> + </number:number-style> + <number:text-style style:name="N490"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N490P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N490P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N490P2"/> + </number:text-style> + <number:number-style style:name="N494P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N494P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text loext:blank-width-char="-3">- € </number:text> + </number:number-style> + <number:text-style style:name="N494"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N494P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N494P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N494P2"/> + </number:text-style> + <number:number-style style:name="N498P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:number-style style:name="N498P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="€1_-3"> </number:text> + </number:number-style> + <number:text-style style:name="N498"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N498P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N498P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N498P2"/> + </number:text-style> + <number:number-style style:name="N502P0" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:number-style style:name="N502P2" style:volatile="true"> + <number:text loext:blank-width-char="-"> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/> + <number:text loext:blank-width-char="-2"> € </number:text> + </number:number-style> + <number:text-style style:name="N502"> + <number:text loext:blank-width-char="-"> </number:text> + <number:text-content/> + <number:text loext:blank-width-char="-"> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N502P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N502P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N502P2"/> + </number:text-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10131" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10132" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10135" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10136" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:date-style style:name="N10137" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10141P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10141" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10141P0"/> + </number:number-style> + <number:currency-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10143" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10143P0"/> + </number:currency-style> + <number:currency-style style:name="N10144P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10144" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10144P0"/> + </number:currency-style> + <number:currency-style style:name="N10146P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10146" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10146P0"/> + </number:currency-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10147P0"/> + </number:currency-style> + <number:number-style style:name="N10148P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10148" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10148P0"/> + </number:number-style> + <number:number-style style:name="N10149P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10149" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10149P0"/> + </number:number-style> + <number:number-style style:name="N10153P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10153P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10153P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10153" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10153P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10153P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10153P2"/> + </number:text-style> + <number:currency-style style:name="N10157P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10157P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10157P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10157" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10157P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10157P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10157P2"/> + </number:text-style> + <number:number-style style:name="N10161P0" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10161P1" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10161P2" style:volatile="true" number:language="en" number:country="US"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10161" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10161P2"/> + </number:text-style> + <number:currency-style style:name="N10165P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10165P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10165P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10165" number:language="en" number:country="US"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10165P2"/> + </number:text-style> + <number:number-style style:name="N10166" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N10167" number:language="en" number:country="US"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:date-style style:name="N10168" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10169" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10170" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10171" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10172" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10173" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:date-style style:name="N10174P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:text-style style:name="N10174" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10174P0"/> + </number:text-style> + <number:date-style style:name="N10175P0" style:volatile="true" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:text-style style:name="N10175" number:language="en" number:country="US"> + <number:text-content/> + <style:map style:condition="value()<=1.7976931348623157E+308" style:apply-style-name="N10175P0"/> + </number:text-style> + <number:date-style style:name="N20114" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20115" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20116" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20117" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20118" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20120P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20120" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20120P0"/> + </number:number-style> + <number:number-style style:name="N20121P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20121" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20121P0"/> + </number:number-style> + <number:number-style style:name="N20123P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20123" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20123P0"/> + </number:number-style> + <number:number-style style:name="N20124P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20124" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20124P0"/> + </number:number-style> + <number:number-style style:name="N20126P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20126" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20126P0"/> + </number:number-style> + <number:number-style style:name="N20127P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20127" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20127P0"/> + </number:number-style> + <number:number-style style:name="N20129P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20129" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20129P0"/> + </number:number-style> + <number:number-style style:name="N20130P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20130" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20130P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"/> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="false" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="true" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="3.884cm"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.794cm"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="10.633cm"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.258cm"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="1.614cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.612cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.529cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro5" style:family="table-row"> + <style:table-row-properties style:row-height="0.487cm" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:number-style style:name="N2"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + </number:number-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet1.B2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet1.B2"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/> + </style:style> + <style:style style:name="ce31" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"/> + <style:style style:name="ce13" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.I2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="true" style:base-cell-address="Sheet2.I2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="false" style:base-cell-address="Sheet2.I2"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce36" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #c5e0b4" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-left-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce30" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #afabab" fo:border-right="none" style:rotation-align="none" fo:border-top="none"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N429"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce32" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce34" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"> + <style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/> + <style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Calibri" fo:font-size="11pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="11pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="11pt" style:font-style-complex="normal" style:font-weight-complex="normal"> + <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/> + </style:text-properties> + </style:style> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #afabab" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-left-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-left-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="none" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce35" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce38" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #afabab" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #afabab" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="light2" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="7500"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border-bottom="0.74pt solid #c5e0b4" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #c5e0b4" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="bottom" loext:vertical-justify="auto"> + <loext:border-bottom-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-bottom-complex-color> + <loext:border-right-complex-color loext:theme-type="accent6" loext:color-type="theme"> + <loext:transformation loext:type="lummod" loext:value="4000"/> + <loext:transformation loext:type="lumoff" loext:value="5999"/> + </loext:border-right-complex-color> + </style:table-cell-properties> + <style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.75cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.25cm" fo:border="1.5pt solid #000000" fo:padding="0.018cm" fo:background-color="#c0c0c0"> + <style:background-image/> + </style:header-footer-properties> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + <style:master-page style:name="Report" style:page-layout-name="pm2"> + <style:header> + <style:region-left> + <text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p> + </style:region-left> + <style:region-right> + <text:p><text:date style:data-style-name="N2" text:date-value="2025-01-22">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="15:45:03.312649474">00:00:00</text:time></text:p> + </style:region-right> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="ce4"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"> + <text:p>WrapRows Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce20" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce7" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce22" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce5" table:formula="of:=AND([Sheet2.I2:.I201])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce29" office:value-type="string" calcext:value-type="string"> + <text:p>Simple WRAPROWS formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="20"> + <table:table-cell/> + <table:table-cell table:style-name="ce28"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="21"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B2:Sheet1.B50"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet1.B2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet1.B2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1"> + <table:table-column table:style-name="co4" table:number-columns-repeated="8" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:default-cell-style-name="ce13"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co4" table:number-columns-repeated="12" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce31" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="11"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Data</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>row to array</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce15" office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44"/> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce36" table:formula="of:=VLOOKUP(1; [.AG5:.AH10]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce44" office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce48" office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.W2]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A3]=[.E3])AND([.B3]=[.F3])AND([.C3]=[.G3])AND([.D3]=[.H3])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="{=WRAPROWS(L2:W2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:W2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce21"/> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A4]=[.E4])AND([.B4]=[.F4])AND([.C4]=[.G4])AND([.D4]=[.H4])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="{=WRAPROWS(L2:W2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:W2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce34"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="K" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="M" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A5])AND([.B5]=[.F5])AND([.C5]=[.G5])AND([.D5]=[.H5])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="{=WRAPROWS(L2:W2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:W2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>column to array</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L4:.L15]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A7]=[.E7])AND([.B7]=[.F7])AND([.C7]=[.G7])AND([.D7]=[.H7])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="{=WRAPROWS(L4:L15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L4:L15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A8]=[.E8])AND([.B8]=[.F8])AND([.C8]=[.G8])AND([.D8]=[.H8])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="{=WRAPROWS(L4:L15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L4:L15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17"/> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="K" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="M" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=ISERROR([.A9])AND([.B9]=[.F9])AND([.C9]=[.G9])AND([.D9]=[.H9])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="{=WRAPROWS(L4:L15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L4:L15; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce32"/> + <table:table-cell table:style-name="ce35"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>no pad_with</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce34"/> + <table:table-cell table:style-name="ce36"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.U2]; 4)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A11]=[.E11])AND([.B11]=[.F11])AND([.C11]=[.G11])AND([.D11]=[.H11])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A11])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce9" table:number-columns-repeated="3"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A12]=[.E12])AND([.B12]=[.F12])AND([.C12]=[.G12])AND([.D12]=[.H12])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A12])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce36" table:formula="of:=VLOOKUP(1; [.Y15:.Z20]; 2)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A13]))AND([.B13]=[.F13])AND(ISERROR([.C13]))AND(ISERROR([.D13]))" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A13])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4)}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = “”</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce17" office:value-type="string" calcext:value-type="string"> + <text:p>K</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.U2]; 4; "")" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A15]=[.E15])AND([.B15]=[.F15])AND([.C15]=[.G15])AND([.D15]=[.H15])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A15])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce23" office:value-type="string" calcext:value-type="string"> + <text:p>M</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A16]=[.E16])AND([.B16]=[.F16])AND([.C16]=[.G16])AND([.D16]=[.H16])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A16])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce26"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce37"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro5"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell> + <text:p/> + </table:table-cell> + <table:table-cell> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:formula="of:=(ISERROR([.A17]))AND([.B17]=[.F17])AND([.C17]=[.G17])AND([.D17]=[.H17])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A17])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "")}</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce30"/> + <table:table-cell table:style-name="ce25"/> + <table:table-cell table:style-name="ce38"/> + <table:table-cell table:style-name="ce9"/> + <table:table-cell table:number-columns-repeated="8"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = “test”</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.U2]; 4; "test")" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A19]=[.E19])AND([.B19]=[.F19])AND([.C19]=[.G19])AND([.D19]=[.H19])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A19])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A20]=[.E20])AND([.B20]=[.F20])AND([.C20]=[.G20])AND([.D20]=[.H20])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A20])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="test" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="test" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="string" calcext:value-type="string"> + <text:p>test</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A21]))AND([.B21]=[.F21])AND([.C21]=[.G21])AND([.D21]=[.H21])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A21])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; "test")}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; "test")}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = 5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.U2]; 4; 5)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A23]=[.E23])AND([.B23]=[.F23])AND([.C23]=[.G23])AND([.D23]=[.H23])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A23])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A24]=[.E24])AND([.B24]=[.F24])AND([.C24]=[.G24])AND([.D24]=[.H24])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A24])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A25]))AND([.B25]=[.F25])AND([.C25]=[.G25])AND([.D25]=[.H25])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A25])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>path_with = 5.5</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.U2]; 4; 5.5)" office:value-type="string" office:string-value="A" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="B" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="C" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>B</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>C</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A27]=[.E27])AND([.B27]=[.F27])AND([.C27]=[.G27])AND([.D27]=[.H27])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A27])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p/> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> + <text:p>4</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=([.A28]=[.E28])AND([.B28]=[.F28])AND([.C28]=[.G28])AND([.D28]=[.H28])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A28])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" office:string-value="J" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>#N/A</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>J</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2" office:value-type="float" office:value="5.5" calcext:value-type="float"> + <text:p>5,5</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=(ISERROR([.A29]))AND([.B29]=[.F29])AND([.C29]=[.G29])AND([.D29]=[.H29])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A29])" office:value-type="string" office:string-value="{=WRAPROWS(L2:U2; 4; 5,5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:U2; 4; 5,5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="10"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>more than 1 column or 1 row in range</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="12"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L2:.W3]; 4; 5)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="7"/> + <table:table-cell table:formula="of:=ISERROR([.A31])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A31])" office:value-type="string" office:string-value="{=WRAPROWS(L2:W3; 4; 5)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L2:W3; 4; 5)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.WRAPROWS([.L4:.M15]; 4)" office:value-type="string" office:string-value="" calcext:value-type="error"> + <text:p>Err:502</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="7"/> + <table:table-cell table:formula="of:=ISERROR([.A32])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>VERDADERO</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="{=WRAPROWS(L4:M15; 4)}" calcext:value-type="string"> + <text:p>{=WRAPROWS(L4:M15; 4)}</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="13"/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="17"> + <table:table-cell table:number-columns-repeated="23"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="8"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="14"/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="5"> + <table:table-cell table:number-columns-repeated="23"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="23"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.I51:Sheet2.I56 Sheet2.I2:Sheet2.I49"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.I2"/> + <calcext:condition calcext:apply-style-name="true" calcext:value="=1" calcext:base-cell-address="Sheet2.I2"/> + <calcext:condition calcext:apply-style-name="false" calcext:value="=0" calcext:base-cell-address="Sheet2.I2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document> diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 06065cac98b7..230b7da34588 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -3100,8 +3100,10 @@ CPPUNIT_TEST_FIXTURE(Test, testFunctionLists) "COLUMN", "COLUMNS", "DDE", + "DROP", "ERROR.TYPE", "ERRORTYPE", + "EXPAND", "FILTER", "GETPIVOTDATA", "HLOOKUP", @@ -3119,10 +3121,13 @@ CPPUNIT_TEST_FIXTURE(Test, testFunctionLists) "SORT", "SORTBY", "STYLE", + "TAKE", "TOCOL", "TOROW", "UNIQUE", "VLOOKUP", + "WRAPCOLS", + "WRAPROWS", "XLOOKUP", "XMATCH", nullptr diff --git a/sc/qa/unit/ucalc_condformat.cxx b/sc/qa/unit/ucalc_condformat.cxx index 87a169b1a2c5..56ebcd01e3eb 100644 --- a/sc/qa/unit/ucalc_condformat.cxx +++ b/sc/qa/unit/ucalc_condformat.cxx @@ -305,7 +305,7 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testDataBarCondCopyPaste) pDatabar->SetDataBarData(pFormatData); pFormat->AddEntry(pDatabar); - sal_uInt32 nIndex = m_pDoc->AddCondFormat(std::move(pFormat), 0); + sal_uInt32 nIndex0 = m_pDoc->AddCondFormat(std::move(pFormat), 0); ScDocument aClipDoc(SCDOCMODE_CLIP); copyToClip(m_pDoc, aCondFormatRange, &aClipDoc); @@ -313,11 +313,11 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testDataBarCondCopyPaste) ScRange aTargetRange(0, 3, 0, 2, 3, 0); pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); - // Pasting the same conditional format must modify existing format, making its range - // combined of previous range and newly pasted range having the conditional format. - // No new conditional formats must be created. - CPPUNIT_ASSERT_EQUAL(size_t(1), m_pDoc->GetCondFormList(0)->size()); - aRangeList.Join(aTargetRange); + // Pasting the same conditional databar format into a non-adjacent range must create a new + // format. + sal_uInt32 nIndex1 = m_pDoc->GetCondFormat(0, 3, 0)->GetKey(); + CPPUNIT_ASSERT_EQUAL(size_t(2), m_pDoc->GetCondFormList(0)->size()); + aRangeList = aTargetRange; for (SCCOL nCol = 0; nCol < 3; ++nCol) { ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 3, 0); @@ -325,13 +325,68 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testDataBarCondCopyPaste) CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); sal_uInt32 nPastedKey = pPastedFormat->GetKey(); - CPPUNIT_ASSERT_EQUAL(nIndex, nPastedKey); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex1, nPastedKey); const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 3, 0, ATTR_CONDITIONAL); const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); CPPUNIT_ASSERT(pCondFormatItem); CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); - CPPUNIT_ASSERT_EQUAL(nIndex, pCondFormatItem->GetCondFormatData().front()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); + } + + // Now paste next to the previous range (immediately below) + aTargetRange = ScRange(0, 4, 0, 2, 4, 0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + // Pasting the same conditional databar format into an adjacent range (not continuing the row) + // must create a new format. + sal_uInt32 nIndex2 = m_pDoc->GetCondFormat(0, 4, 0)->GetKey(); + CPPUNIT_ASSERT_EQUAL(size_t(3), m_pDoc->GetCondFormList(0)->size()); + aRangeList = aTargetRange; + for (SCCOL nCol = 0; nCol < 3; ++nCol) + { + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 4, 0); + CPPUNIT_ASSERT(pPastedFormat); + CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); + + sal_uInt32 nPastedKey = pPastedFormat->GetKey(); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT(nIndex1 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex2, nPastedKey); + + const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 4, 0, ATTR_CONDITIONAL); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); + } + + // Now paste next to the previous range (immediately to the right) + aTargetRange = ScRange(3, 4, 0, 5, 4, 0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + // Pasting the same conditional databar format into an adjacent range (continuing the row) must + // modify existing format, making its range combined of previous range and newly pasted range + // having the conditional format. No new conditional formats must be created. + CPPUNIT_ASSERT_EQUAL(size_t(3), m_pDoc->GetCondFormList(0)->size()); + aRangeList.Join(aTargetRange); + for (SCCOL nCol = 3; nCol < 6; ++nCol) + { + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 4, 0); + CPPUNIT_ASSERT(pPastedFormat); + CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); + + sal_uInt32 nPastedKey = pPastedFormat->GetKey(); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT(nIndex1 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex2, nPastedKey); + + const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 4, 0, ATTR_CONDITIONAL); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); } m_pDoc->DeleteTab(0); @@ -407,7 +462,7 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testColorScaleCondCopyPaste) pColorScaleFormat->AddEntry(pEntryRed); pFormat->AddEntry(pColorScaleFormat); - sal_uInt32 nIndex = m_pDoc->AddCondFormat(std::move(pFormat), 0); + sal_uInt32 nIndex0 = m_pDoc->AddCondFormat(std::move(pFormat), 0); ScDocument aClipDoc(SCDOCMODE_CLIP); copyToClip(m_pDoc, aCondFormatRange, &aClipDoc); @@ -415,11 +470,11 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testColorScaleCondCopyPaste) ScRange aTargetRange(0, 3, 0, 2, 3, 0); pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); - // Pasting the same conditional format must modify existing format, making its range - // combined of previous range and newly pasted range having the conditional format. - // No new conditional formats must be created. - CPPUNIT_ASSERT_EQUAL(size_t(1), m_pDoc->GetCondFormList(0)->size()); - aRangeList.Join(aTargetRange); + // Pasting the same conditional databar format into a non-adjacent range must create a new + // format. + sal_uInt32 nIndex1 = m_pDoc->GetCondFormat(0, 3, 0)->GetKey(); + CPPUNIT_ASSERT_EQUAL(size_t(2), m_pDoc->GetCondFormList(0)->size()); + aRangeList = aTargetRange; for (SCCOL nCol = 0; nCol < 3; ++nCol) { ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 3, 0); @@ -427,13 +482,68 @@ CPPUNIT_TEST_FIXTURE(TestCondformat, testColorScaleCondCopyPaste) CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); sal_uInt32 nPastedKey = pPastedFormat->GetKey(); - CPPUNIT_ASSERT_EQUAL(nIndex, nPastedKey); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex1, nPastedKey); const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 3, 0, ATTR_CONDITIONAL); const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); CPPUNIT_ASSERT(pCondFormatItem); CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(nIndex), pCondFormatItem->GetCondFormatData().front()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); + } + + // Now paste next to the previous range (immediately below) + aTargetRange = ScRange(0, 4, 0, 2, 4, 0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + // Pasting the same conditional databar format into an adjacent range (not continuing the row) + // must create a new format. + sal_uInt32 nIndex2 = m_pDoc->GetCondFormat(0, 4, 0)->GetKey(); + CPPUNIT_ASSERT_EQUAL(size_t(3), m_pDoc->GetCondFormList(0)->size()); + aRangeList = aTargetRange; + for (SCCOL nCol = 0; nCol < 3; ++nCol) + { + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 4, 0); + CPPUNIT_ASSERT(pPastedFormat); + CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); + + sal_uInt32 nPastedKey = pPastedFormat->GetKey(); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT(nIndex1 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex2, nPastedKey); + + const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 4, 0, ATTR_CONDITIONAL); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); + } + + // Now paste next to the previous range (immediately to the right) + aTargetRange = ScRange(3, 4, 0, 5, 4, 0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + // Pasting the same conditional databar format into an adjacent range (continuing the row) must + // modify existing format, making its range combined of previous range and newly pasted range + // having the conditional format. No new conditional formats must be created. + CPPUNIT_ASSERT_EQUAL(size_t(3), m_pDoc->GetCondFormList(0)->size()); + aRangeList.Join(aTargetRange); + for (SCCOL nCol = 3; nCol < 6; ++nCol) + { + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(nCol, 4, 0); + CPPUNIT_ASSERT(pPastedFormat); + CPPUNIT_ASSERT_EQUAL(aRangeList, pPastedFormat->GetRange()); + + sal_uInt32 nPastedKey = pPastedFormat->GetKey(); + CPPUNIT_ASSERT(nIndex0 != nPastedKey); + CPPUNIT_ASSERT(nIndex1 != nPastedKey); + CPPUNIT_ASSERT_EQUAL(nIndex2, nPastedKey); + + const SfxPoolItem* pItem = m_pDoc->GetAttr(nCol, 4, 0, ATTR_CONDITIONAL); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT_EQUAL(nPastedKey, pCondFormatItem->GetCondFormatData().front()); } m_pDoc->DeleteTab(0); diff --git a/sc/source/core/data/funcdesc.cxx b/sc/source/core/data/funcdesc.cxx index ea2bba6ecea2..b16b776e024c 100644 --- a/sc/source/core/data/funcdesc.cxx +++ b/sc/source/core/data/funcdesc.cxx @@ -793,9 +793,14 @@ ScFunctionList::ScFunctionList( bool bEnglishFunctionNames ) { SC_OPCODE_SORTBY, ENTRY(SC_OPCODE_SORTBY_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_SORTBY_MS, PAIRED_VAR_ARGS + 1, { 0, 0, 1 }, 0 }, { SC_OPCODE_MAT_SEQUENCE, ENTRY(SC_OPCODE_MAT_SEQUENCE_ARY), 0, ID_FUNCTION_GRP_MATRIX, HID_FUNC_MSEQUENCE_MS, 4, { 0, 1, 1, 1 }, 0 }, { SC_OPCODE_RANDARRAY, ENTRY(SC_OPCODE_RANDARRAY_ARY), 0, ID_FUNCTION_GRP_MATH, HID_FUNC_RANDARRAY_MS, 5, { 1, 1, 1, 1, 1 }, 0 }, + { SC_OPCODE_DROP, ENTRY(SC_OPCODE_DROP_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_DROP_MS, 3, { 0, 0, 1 }, 0 }, + { SC_OPCODE_EXPAND, ENTRY(SC_OPCODE_EXPAND_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_EXPAND_MS, 4, { 0, 0, 1, 1 }, 0 }, + { SC_OPCODE_TAKE, ENTRY(SC_OPCODE_TAKE_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_TAKE_MS, 3, { 0, 1, 1 }, 0 }, { SC_OPCODE_TOCOL, ENTRY(SC_OPCODE_TOCOL_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_TOCOL_MS, 3, { 0, 1, 1 }, 0 }, { SC_OPCODE_TOROW, ENTRY(SC_OPCODE_TOROW_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_TOROW_MS, 3, { 0, 1, 1 }, 0 }, { SC_OPCODE_UNIQUE, ENTRY(SC_OPCODE_UNIQUE_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_UNIQUE_MS, 3, { 0, 1, 1 }, 0 }, + { SC_OPCODE_WRAPCOLS, ENTRY(SC_OPCODE_WRAPCOLS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_WRAPCOLS_MS, 3, { 0, 1, 1 }, 0 }, + { SC_OPCODE_WRAPROWS, ENTRY(SC_OPCODE_WRAPROWS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_WRAPROWS_MS, 3, { 0, 1, 1 }, 0 }, }; ScFuncDesc* pDesc = nullptr; diff --git a/sc/source/core/data/stlsheet.cxx b/sc/source/core/data/stlsheet.cxx index 47b861756337..b56a6ef0c6a2 100644 --- a/sc/source/core/data/stlsheet.cxx +++ b/sc/source/core/data/stlsheet.cxx @@ -144,13 +144,12 @@ SfxItemSet& ScStyleSheet::GetItemSet() // (== Standard page template) SfxItemPool& rItemPool = GetPool()->GetPool(); - pSet = new SfxItemSetFixed< - ATTR_USERDEF, ATTR_USERDEF, - ATTR_WRITINGDIR, ATTR_WRITINGDIR, - ATTR_BACKGROUND, ATTR_BACKGROUND, - ATTR_BORDER, ATTR_SHADOW, - ATTR_LRSPACE, ATTR_PAGE_SCALETO>(rItemPool); - + pSet = new SfxItemSet(rItemPool, WhichRangesContainer(svl::Items< + ATTR_USERDEF, ATTR_USERDEF, + ATTR_WRITINGDIR, ATTR_WRITINGDIR, + ATTR_BACKGROUND, ATTR_BACKGROUND, + ATTR_BORDER, ATTR_SHADOW, + ATTR_LRSPACE, ATTR_PAGE_SCALETO>)); // If being loaded also the set is then filled in from the file, // so the defaults do not need to be set. // GetPrinter would then also create a new printer, @@ -233,20 +232,21 @@ SfxItemSet& ScStyleSheet::GetItemSet() pItemPool = pItemPool->GetSecondaryPool(); assert(pItemPool); - pSet = new SfxItemSetFixed< - XATTR_LINE_FIRST, XATTR_LINE_LAST, - XATTR_FILL_FIRST, XATTR_FILL_LAST, - SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, - SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, - SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, - SDRATTR_3D_FIRST, SDRATTR_3D_LAST, - EE_PARA_START, EE_CHAR_END>(*pItemPool); + pSet = new SfxItemSet(*pItemPool, WhichRangesContainer(svl::Items< + XATTR_LINE_FIRST, XATTR_LINE_LAST, + XATTR_FILL_FIRST, XATTR_FILL_LAST, + SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, + SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, + SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, + SDRATTR_3D_FIRST, SDRATTR_3D_LAST, + EE_PARA_START, EE_CHAR_END>)); } break; case SfxStyleFamily::Para: default: - pSet = new SfxItemSetFixed<ATTR_PATTERN_START, ATTR_PATTERN_END>( GetPool()->GetPool() ); + pSet = new SfxItemSet(GetPool()->GetPool(), WhichRangesContainer(svl::Items< + ATTR_PATTERN_START, ATTR_PATTERN_END>)); break; } bMySet = true; diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index c4e8f0cfa11e..6b320dd64a95 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -512,7 +512,7 @@ void ScTable::CopyToClip( mpCondFormatList->startRendering(); mpCondFormatList->updateValues(); - pTable->mpCondFormatList.reset(new ScConditionalFormatList(pTable->rDocument, *mpCondFormatList)); + pTable->mpCondFormatList.reset(mpCondFormatList->Clone(pTable->rDocument)); mpCondFormatList->endRendering(); } @@ -589,6 +589,52 @@ void ScTable::CopyCellToDocument(SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, S namespace { +bool isFormatDependentOnRange(const ScConditionalFormat& rFormat) +{ + for (size_t i = 0; i < rFormat.size(); ++i) + if (auto* entry = rFormat.GetEntry(i)) + if (auto type = entry->GetType(); type == ScFormatEntry::Type::Colorscale + || type == ScFormatEntry::Type::Databar + || type == ScFormatEntry::Type::Iconset) + return true; + return false; +} + +bool isRangeDependentFormatNeedDeduplication(const ScRangeList& rOld, const ScRangeList& rNew) +{ + // Are they two adjacent vectors? + if (rOld.size() == 1 && rNew.size() == 1) + { + // Test vertical vectors + if (rOld[0].aStart.Col() == rOld[0].aEnd.Col() && rNew[0].aStart.Col() == rNew[0].aEnd.Col() + && rNew[0].aStart.Col() == rOld[0].aStart.Col()) + { + if (rOld[0].aEnd.Row() == rNew[0].aStart.Row() - 1 + || rNew[0].aEnd.Row() == rOld[0].aStart.Row() - 1) + { + return true; // Two joining vertical vectors -> merge + } + } + // Test horizontal vectors + if (rOld[0].aStart.Row() == rOld[0].aEnd.Row() && rNew[0].aStart.Row() == rNew[0].aEnd.Row() + && rNew[0].aStart.Row() == rOld[0].aStart.Row()) + { + if (rOld[0].aEnd.Col() == rNew[0].aStart.Col() - 1 + || rNew[0].aEnd.Col() == rOld[0].aStart.Col() - 1) + { + return true; // Two joining horizontal vectors -> merge + } + } + } + + // Is the new one fully included into the old one? + for (auto& range : rNew) + if (!rOld.Contains(range)) + return false; // Different ranges, no deduplication + + return true; // New is completely inside old -> merge (in fact, this means "nothing to do") +} + bool CheckAndDeduplicateCondFormat(ScDocument& rDocument, ScConditionalFormat* pOldFormat, const ScConditionalFormat* pNewFormat, SCTAB nTab) { if (!pOldFormat) @@ -598,6 +644,11 @@ bool CheckAndDeduplicateCondFormat(ScDocument& rDocument, ScConditionalFormat* p { const ScRangeList& rNewRangeList = pNewFormat->GetRange(); ScRangeList& rDstRangeList = pOldFormat->GetRangeList(); + + if (isFormatDependentOnRange(*pOldFormat) + && !isRangeDependentFormatNeedDeduplication(rDstRangeList, rNewRangeList)) + return false; // No deduplication, create new format + for (size_t i = 0; i < rNewRangeList.size(); ++i) { rDstRangeList.Join(rNewRangeList[i]); @@ -1344,7 +1395,7 @@ void ScTable::CopyToTable( if (bToUndoDoc && (nFlags & InsertDeleteFlags::ATTRIB)) { - pDestTab->mpCondFormatList.reset(new ScConditionalFormatList(pDestTab->rDocument, *mpCondFormatList)); + pDestTab->mpCondFormatList.reset(mpCondFormatList->Clone(pDestTab->rDocument)); } if (pDBDataNoName) @@ -1362,80 +1413,74 @@ void ScTable::CopyToTable( bool bFlagChange = false; - bool bWidth = (nRow1==0 && nRow2==rDocument.MaxRow() && mpColWidth && pDestTab->mpColWidth); - bool bHeight = (nCol1==0 && nCol2==rDocument.MaxCol() && mpRowHeights && pDestTab->mpRowHeights); - - if (bWidth || bHeight) + if (nRow1 == 0 && nRow2 == rDocument.MaxRow() && mpColWidth && pDestTab->mpColWidth) { - if (bWidth) - { - auto destTabColWidthIt = pDestTab->mpColWidth->begin() + nCol1; - auto thisTabColWidthIt = mpColWidth->begin() + nCol1; - pDestTab->mpColWidth->CopyFrom(*mpColWidth, nCol1, nCol2); - pDestTab->mpColFlags->CopyFrom(*mpColFlags, nCol1, nCol2); - for (SCCOL i = nCol1; i <= nCol2; ++i) - { - bool bThisHidden = ColHidden(i); - bool bHiddenChange = (pDestTab->ColHidden(i) != bThisHidden); - bool bChange = bHiddenChange || (*destTabColWidthIt != *thisTabColWidthIt); - pDestTab->SetColHidden(i, i, bThisHidden); - //TODO: collect changes? - if (bHiddenChange && pCharts) - pCharts->SetRangeDirty(ScRange( i, 0, nTab, i, rDocument.MaxRow(), nTab )); - - if (bChange) - bFlagChange = true; - - ++destTabColWidthIt; - ++thisTabColWidthIt; - } - pDestTab->SetColManualBreaks( std::set(maColManualBreaks) ); - } - - if (bHeight) + auto destTabColWidthIt = pDestTab->mpColWidth->begin() + nCol1; + auto thisTabColWidthIt = mpColWidth->begin() + nCol1; + pDestTab->mpColWidth->CopyFrom(*mpColWidth, nCol1, nCol2); + pDestTab->mpColFlags->CopyFrom(*mpColFlags, nCol1, nCol2); + for (SCCOL i = nCol1; i <= nCol2; ++i) { - bool bChange = pDestTab->GetRowHeight(nRow1, nRow2) != GetRowHeight(nRow1, nRow2); + bool bThisHidden = ColHidden(i); + bool bHiddenChange = (pDestTab->ColHidden(i) != bThisHidden); + bool bChange = bHiddenChange || (*destTabColWidthIt != *thisTabColWidthIt); + pDestTab->SetColHidden(i, i, bThisHidden); + //TODO: collect changes? + if (bHiddenChange && pCharts) + pCharts->SetRangeDirty(ScRange(i, 0, nTab, i, rDocument.MaxRow(), nTab)); if (bChange) bFlagChange = true; - pDestTab->CopyRowHeight(*this, nRow1, nRow2, 0); - pDestTab->pRowFlags->CopyFrom(*pRowFlags, nRow1, nRow2); + ++destTabColWidthIt; + ++thisTabColWidthIt; + } + pDestTab->SetColManualBreaks(std::set(maColManualBreaks)); + } - // Hidden flags. - for (SCROW i = nRow1; i <= nRow2; ++i) - { - SCROW nLastRow; - bool bHidden = RowHidden(i, nullptr, &nLastRow); - if (nLastRow >= nRow2) - // the last row shouldn't exceed the upper bound the caller specified. - nLastRow = nRow2; - - bool bHiddenChanged = pDestTab->SetRowHidden(i, nLastRow, bHidden); - if (bHiddenChanged && pCharts) - // Hidden flags differ. - pCharts->SetRangeDirty(ScRange(0, i, nTab, rDocument.MaxCol(), nLastRow, nTab)); - - if (bHiddenChanged) - bFlagChange = true; - - // Jump to the last row of the identical flag segment. - i = nLastRow; - } + if (nCol1 == 0 && nCol2 == rDocument.MaxCol() && mpRowHeights && pDestTab->mpRowHeights) + { + bool bChange = pDestTab->GetRowHeight(nRow1, nRow2) != GetRowHeight(nRow1, nRow2); - // Filtered flags. - for (SCROW i = nRow1; i <= nRow2; ++i) - { - SCROW nLastRow; - bool bFiltered = RowFiltered(i, nullptr, &nLastRow); - if (nLastRow >= nRow2) - // the last row shouldn't exceed the upper bound the caller specified. - nLastRow = nRow2; - pDestTab->SetRowFiltered(i, nLastRow, bFiltered); - i = nLastRow; - } - pDestTab->SetRowManualBreaks( std::set(maRowManualBreaks) ); + if (bChange) + bFlagChange = true; + + pDestTab->CopyRowHeight(*this, nRow1, nRow2, 0); + pDestTab->pRowFlags->CopyFrom(*pRowFlags, nRow1, nRow2); + + // Hidden flags. + for (SCROW i = nRow1; i <= nRow2; ++i) + { + SCROW nLastRow; + bool bHidden = RowHidden(i, nullptr, &nLastRow); + if (nLastRow >= nRow2) + // the last row shouldn't exceed the upper bound the caller specified. + nLastRow = nRow2; + + bool bHiddenChanged = pDestTab->SetRowHidden(i, nLastRow, bHidden); + if (bHiddenChanged && pCharts) + // Hidden flags differ. + pCharts->SetRangeDirty(ScRange(0, i, nTab, rDocument.MaxCol(), nLastRow, nTab)); + + if (bHiddenChanged) + bFlagChange = true; + + // Jump to the last row of the identical flag segment. + i = nLastRow; + } + + // Filtered flags. + for (SCROW i = nRow1; i <= nRow2; ++i) + { + SCROW nLastRow; + bool bFiltered = RowFiltered(i, nullptr, &nLastRow); + if (nLastRow >= nRow2) + // the last row shouldn't exceed the upper bound the caller specified. + nLastRow = nRow2; + pDestTab->SetRowFiltered(i, nLastRow, bFiltered); + i = nLastRow; } + pDestTab->SetRowManualBreaks(std::set(maRowManualBreaks)); } if (bFlagChange) @@ -1523,7 +1568,7 @@ void ScTable::UndoToTable( } if (nFlags & InsertDeleteFlags::ATTRIB) - pDestTab->mpCondFormatList.reset(new ScConditionalFormatList(pDestTab->rDocument, *mpCondFormatList)); + pDestTab->mpCondFormatList.reset(mpCondFormatList->Clone(pDestTab->rDocument)); if (!(bWidth||bHeight)) return; diff --git a/sc/source/core/data/validat.cxx b/sc/source/core/data/validat.cxx index a830da8cef34..5bedbb6a8c6c 100644 --- a/sc/source/core/data/validat.cxx +++ b/sc/source/core/data/validat.cxx @@ -245,10 +245,10 @@ bool ScValidationData::DoScript( const ScAddress& rPos, const OUString& rInput, // Macro not found (only with input) { //TODO: different error message, if found, but not bAllowed ?? - std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, + std::shared_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, VclMessageType::Warning, VclButtonsType::Ok, ScResId(STR_VALID_MACRONOTFOUND))); - xBox->run(); + xBox->runAsync(xBox, [] (sal_uInt32){ }); } return bScriptReturnedFalse; @@ -351,10 +351,10 @@ bool ScValidationData::DoMacro( const ScAddress& rPos, const OUString& rInput, if ( !bDone && !pCell ) // Macro not found (only with input) { //TODO: different error message, if found, but not bAllowed ?? - std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, + std::shared_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, VclMessageType::Warning, VclButtonsType::Ok, ScResId(STR_VALID_MACRONOTFOUND))); - xBox->run(); + xBox->runAsync(xBox, [](sal_uInt32) {}); } return bRet; @@ -373,14 +373,16 @@ IMPL_STATIC_LINK_NOARG(ScValidationData, InstallLOKNotifierHdl, void*, vcl::ILib // true -> abort -bool ScValidationData::DoError(weld::Window* pParent, const OUString& rInput, - const ScAddress& rPos) const +void ScValidationData::DoError(weld::Window* pParent, const OUString& rInput, const ScAddress& rPos, + const std::function<void(bool forget)>& callback) const { - if ( eErrorStyle == SC_VALERR_MACRO ) - return DoMacro(rPos, rInput, nullptr, pParent); + if ( eErrorStyle == SC_VALERR_MACRO ) { + DoMacro(rPos, rInput, nullptr, pParent); + return; + } if (!bShowError) - return true; + return; // Output error message @@ -407,7 +409,7 @@ bool ScValidationData::DoError(weld::Window* pParent, const OUString& rInput, break; } - std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, eType, + std::shared_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(pParent, eType, eStyle, aMessage, SfxViewShell::Current())); xBox->set_title(aTitle); xBox->SetInstallLOKNotifierHdl(LINK(nullptr, ScValidationData, InstallLOKNotifierHdl)); @@ -424,9 +426,8 @@ bool ScValidationData::DoError(weld::Window* pParent, const OUString& rInput, break; } - short nRet = xBox->run(); - - return ( eErrorStyle == SC_VALERR_STOP || nRet == RET_CANCEL ); + xBox->runAsync(xBox, [this, callback](sal_Int32 result) + { callback(eErrorStyle == SC_VALERR_STOP || result == RET_CANCEL); }); } bool ScValidationData::IsDataValidCustom( diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx index d9450ea07149..a2980401003f 100644 --- a/sc/source/core/inc/interpre.hxx +++ b/sc/source/core/inc/interpre.hxx @@ -724,12 +724,23 @@ private: void ScFilter(); void ScSort(); void ScSortBy(); + void ScDrop(); + void ScExpand(); + void ScTake(); void ScToCol(); void ScToRow(); void ScUnique(); void ScLet(); void ScSubTotal(); + void ScWrapCols(); + void ScWrapRows(); +private: + void ScToColOrRow(bool bCol); + void ScWrapColsOrRows(bool bCols); + void ScTakeOrDrop(bool bTake); + +public: // If upon call rMissingField==true then the database field parameter may be // missing (Xcl DCOUNT() syntax), or may be faked as missing by having the // value 0.0 or being exactly the entire database range reference (old SO diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index ddf58c111cd9..f8a77d522590 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -19,6 +19,7 @@ #include <interpre.hxx> +#include <optional> #include <scitems.hxx> #include <editeng/langitem.hxx> #include <editeng/justifyitem.hxx> @@ -8799,29 +8800,46 @@ void ScInterpreter::ScSortBy() PushIllegalParameter(); } -void ScInterpreter::ScToCol() +static void lcl_FillCell(const ScMatrixRef& pMatSource, const ScMatrixRef& pMatDest, SCSIZE nsC, SCSIZE nsR, SCSIZE ndC, SCSIZE ndR) +{ + if (pMatSource->IsEmptyCell(nsC, nsR)) + { + pMatDest->PutEmpty(ndC, ndR); + } + else if (!pMatSource->IsStringOrEmpty(nsC, nsR)) + { + pMatDest->PutDouble(pMatSource->GetDouble(nsC, nsR), ndC, ndR); + } + else + { + pMatDest->PutString(pMatSource->GetString(nsC, nsR), ndC, ndR); + } +} + +void ScInterpreter::ScTakeOrDrop(bool bTake) { sal_uInt8 nParamCount = GetByte(); if (!MustHaveParamCount(nParamCount, 1, 3)) return; - // 3rd argument optional - Scan_by_column: default FALSE - bool bByColumn = false; + // 3rd argument optional - columns + std::optional<sal_Int32> nArgCols; if (nParamCount == 3) - bByColumn = GetBoolWithDefault(false); + { + if (!IsMissing()) + nArgCols = GetInt32(); + else + Pop(); + } - // 2nd argument optional - Ignore: default keep all values - IgnoreValues eIgnoreValues = IgnoreValues::DEFAULT; + // 2nd argument optional - rows + std::optional<sal_Int32> nArgRows; if (nParamCount >= 2) { - sal_Int32 k = GetInt32WithDefault(0); - if (k >= 0 && k <= 3) - eIgnoreValues = static_cast<IgnoreValues>(k); + if (!IsMissing()) + nArgRows = GetInt32(); else - { - PushIllegalParameter(); - return; - } + Pop(); } // 1st argument: take unique search range @@ -8858,24 +8876,61 @@ void ScInterpreter::ScToCol() } std::vector<std::pair<SCSIZE, SCSIZE>> aResPos; - SCSIZE nOut = bByColumn ? nsC : nsR; - SCSIZE nIn = bByColumn ? nsR : nsC; - for (SCSIZE i = 0; i < nOut; i++) + SCSIZE nMinCol = 0; + SCSIZE nMaxCol = nsC; + if (nArgCols.has_value()) { - for (SCSIZE j = 0; j < nIn; j++) + if (o3tl::make_unsigned(std::abs(nArgCols.value())) < nsC) { - SCSIZE nCol = bByColumn ? i : j; - SCSIZE nRow = bByColumn ? j : i; - if ((eIgnoreValues == IgnoreValues::ALL || eIgnoreValues == IgnoreValues::BLANKS) && pMatSource->IsEmptyCell(nCol, nRow)) - continue; // Nothing to do - else if ((eIgnoreValues == IgnoreValues::ALL || eIgnoreValues == IgnoreValues::ERRORS) && pMatSource->GetError(nCol, nRow) != FormulaError::NONE) - continue; // Nothing to do + if (bTake) + { + if (nArgCols.value() < 0) + nMinCol = nsC + nArgCols.value(); + else + nMaxCol = nArgCols.value(); + } else - aResPos.emplace_back(nCol, nRow); + { + if (nArgCols.value() < 0) + nMaxCol = nsC + nArgCols.value(); + else + nMinCol = nArgCols.value(); + } + } + } + + SCSIZE nMinRow = 0; + SCSIZE nMaxRow = nsR; + if (nArgRows.has_value()) + { + if (o3tl::make_unsigned(std::abs(nArgRows.value())) < nsR) + { + if (bTake) + { + if (nArgRows.value() < 0) + nMinRow = nsR + nArgRows.value(); + else + nMaxRow = nArgRows.value(); + } + else + { + if (nArgRows.value() < 0) + nMaxRow = nsR + nArgRows.value(); + else + nMinRow = nArgRows.value(); + } } + } + for (SCSIZE col = nMinCol; col < nMaxCol; col++) + { + for (SCSIZE row = nMinRow; row < nMaxRow; row++) + { + aResPos.emplace_back(col, row); + } } + // No result if (aResPos.size() == 0) { @@ -8883,34 +8938,160 @@ void ScInterpreter::ScToCol() return; } - ScMatrixRef pResMat = GetNewMat(1, aResPos.size(), /*bEmpty*/true); + SCSIZE nColumns = nMaxCol - nMinCol; + SCSIZE nRows = nMaxRow - nMinRow; + ScMatrixRef pResMat = GetNewMat(nColumns, nRows, /*bEmpty*/true); if (!pResMat) { PushIllegalArgument(); return; } - // fill result matrix to the same column - for (SCSIZE iPos = 0; iPos < aResPos.size(); ++iPos) + size_t iPos = 0; + for (SCSIZE col = 0; col < nColumns; ++col) + { + for (SCSIZE row = 0; row < nRows; ++row) + { + lcl_FillCell(pMatSource, pResMat, aResPos[iPos].first, aResPos[iPos].second, col, row); + ++iPos; + } + } + + PushMatrix(pResMat); +} + +void ScInterpreter::ScDrop() +{ + ScTakeOrDrop(/*bTake*/ false); +} + +void ScInterpreter::ScExpand() +{ + sal_uInt8 nParamCount = GetByte(); + if (!MustHaveParamCount(nParamCount, 2, 4)) + return; + + // 4rd argument optional - pad_with + std::optional<bool> bDouble; + double fNumber(0.0); + svl::SharedString aString; + if (nParamCount == 4) + bDouble = GetDoubleOrString(fNumber, aString); + + // 3rd argument optional - columns + std::optional<sal_Int32> nArgCols; + if (nParamCount >= 3) { - if (pMatSource->IsEmptyCell(aResPos[iPos].first, aResPos[iPos].second)) + if (!IsMissing()) + nArgCols = GetInt32(); + else + Pop(); + } + + // 2nd argument - rows + std::optional<sal_Int32> nArgRows; + if (nParamCount >= 2) + { + if (!IsMissing()) + nArgRows = GetInt32(); + else + Pop(); + } + + // 1st argument: take unique search range + ScMatrixRef pMatSource = nullptr; + SCSIZE nsC = 0, nsR = 0; + switch (GetStackType()) + { + case svSingleRef: + case svDoubleRef: + case svMatrix: + case svExternalSingleRef: + case svExternalDoubleRef: { - pResMat->PutEmpty(0, iPos); + pMatSource = GetMatrix(); + if (!pMatSource) + { + PushIllegalParameter(); + return; + } + + pMatSource->GetDimensions(nsC, nsR); } - else if (!pMatSource->IsStringOrEmpty(aResPos[iPos].first, aResPos[iPos].second)) + break; + + default: + PushIllegalParameter(); + return; + } + + if (nGlobalError != FormulaError::NONE || nsC < 1 || nsR < 1) + { + PushIllegalArgument(); + return; + } + + SCSIZE nColumns = nsC; + SCSIZE nRows = nsR; + if (nArgCols.has_value()) + { + if (o3tl::make_unsigned(std::abs(nArgCols.value())) < nsC) { - pResMat->PutDouble(pMatSource->GetDouble(aResPos[iPos].first, aResPos[iPos].second), 0, iPos); + PushIllegalArgument(); + return; } else + nColumns = nArgCols.value(); + } + + if (nArgRows.has_value()) + { + if (o3tl::make_unsigned(std::abs(nArgRows.value())) < nsR) { - pResMat->PutString(pMatSource->GetString(aResPos[iPos].first, aResPos[iPos].second), 0, iPos); + PushIllegalArgument(); + return; + } + else + nRows = nArgRows.value(); + } + + ScMatrixRef pResMat = GetNewMat(nColumns, nRows, /*bEmpty*/true); + if (!pResMat) + { + PushIllegalArgument(); + return; + } + + for (SCSIZE col = 0; col < nColumns; ++col) + { + for (SCSIZE row = 0; row < nRows; ++row) + { + if (col < nsC && row < nsR) + lcl_FillCell(pMatSource, pResMat, col, row, col, row); + else + { + if (bDouble.has_value()) + { + if (bDouble.value()) + pResMat->PutDouble(fNumber, col, row); + else + pResMat->PutString(aString, col, row); + } + else + pResMat->PutError(FormulaError::NotAvailable, col, row); + } } } PushMatrix(pResMat); } -void ScInterpreter::ScToRow() +void ScInterpreter::ScTake() +{ + ScTakeOrDrop(/*bTake*/ true); +} + +void ScInterpreter::ScToColOrRow(bool bCol) { sal_uInt8 nParamCount = GetByte(); if (!MustHaveParamCount(nParamCount, 1, 3)) @@ -8935,7 +9116,7 @@ void ScInterpreter::ScToRow() } } - // 1st argument: take torow range + // 1st argument: take unique search range ScMatrixRef pMatSource = nullptr; SCSIZE nsC = 0, nsR = 0; switch (GetStackType()) @@ -8993,34 +9174,38 @@ void ScInterpreter::ScToRow() PushNA(); return; } + SCSIZE nColumns = bCol? 1 : aResPos.size(); + SCSIZE nRows = bCol? aResPos.size() : 1; - ScMatrixRef pResMat = GetNewMat(aResPos.size(), 1, /*bEmpty*/true); + ScMatrixRef pResMat = GetNewMat(nColumns, nRows, /*bEmpty*/true); if (!pResMat) { PushIllegalArgument(); return; } - // fill result matrix to the same row + // fill result matrix to the same column for (SCSIZE iPos = 0; iPos < aResPos.size(); ++iPos) { - if (pMatSource->IsEmptyCell(aResPos[iPos].first, aResPos[iPos].second)) - { - pResMat->PutEmpty(iPos, 0); - } - else if (!pMatSource->IsStringOrEmpty(aResPos[iPos].first, aResPos[iPos].second)) - { - pResMat->PutDouble(pMatSource->GetDouble(aResPos[iPos].first, aResPos[iPos].second), iPos, 0); - } + if (bCol) + lcl_FillCell(pMatSource, pResMat, aResPos[iPos].first, aResPos[iPos].second, 0, iPos); else - { - pResMat->PutString(pMatSource->GetString(aResPos[iPos].first, aResPos[iPos].second), iPos, 0); - } + lcl_FillCell(pMatSource, pResMat, aResPos[iPos].first, aResPos[iPos].second, iPos, 0); } PushMatrix(pResMat); } +void ScInterpreter::ScToCol() +{ + ScToColOrRow(/*bCol*/ true); +} + +void ScInterpreter::ScToRow() +{ + ScToColOrRow(/*bCol*/ false); +} + void ScInterpreter::ScUnique() { sal_uInt8 nParamCount = GetByte(); @@ -9126,36 +9311,14 @@ void ScInterpreter::ScUnique() { for (SCSIZE col = 0; col < nsC; col++) { - if (pMatSource->IsEmptyCell(col, aResPos[iPos].first)) - { - pResMat->PutEmpty(col, iPos); - } - else if (!pMatSource->IsStringOrEmpty(col, aResPos[iPos].first)) - { - pResMat->PutDouble(pMatSource->GetDouble(col, aResPos[iPos].first), col, iPos); - } - else - { - pResMat->PutString(pMatSource->GetString(col, aResPos[iPos].first), col, iPos); - } + lcl_FillCell(pMatSource, pResMat, col, aResPos[iPos].first, col, iPos); } } else { for (SCSIZE row = 0; row < nsR; row++) { - if (pMatSource->IsEmptyCell(aResPos[iPos].first, row)) - { - pResMat->PutEmpty(iPos, row); - } - else if (!pMatSource->IsStringOrEmpty(aResPos[iPos].first, row)) - { - pResMat->PutDouble(pMatSource->GetDouble(aResPos[iPos].first, row), iPos, row); - } - else - { - pResMat->PutString(pMatSource->GetString(aResPos[iPos].first, row), iPos, row); - } + lcl_FillCell(pMatSource, pResMat, aResPos[iPos].first, row, iPos, row); } } } @@ -9376,6 +9539,127 @@ void ScInterpreter::ScSubTotal() PushTokenRef( xRef); } +void ScInterpreter::ScWrapColsOrRows(bool bCols) +{ + sal_uInt8 nParamCount = GetByte(); + if (!MustHaveParamCount(nParamCount, 2, 3)) + return; + + // 3rd argument optional - pad_with + std::optional<bool> bDouble; + double fNumber(0.0); + svl::SharedString aString; + if (nParamCount == 3) + bDouble = GetDoubleOrString(fNumber, aString); + + // 2nd argument - wrap_count + SCSIZE nWrap = GetInt32WithDefault(0); + if (nWrap <= 0) + { + PushIllegalParameter(); + return; + } + + // 1st argument: take range + ScMatrixRef pMatSource = nullptr; + SCSIZE nsC = 0, nsR = 0; + switch (GetStackType()) + { + case svSingleRef: + case svDoubleRef: + case svMatrix: + case svExternalSingleRef: + case svExternalDoubleRef: + { + pMatSource = GetMatrix(); + if (!pMatSource) + { + PushIllegalParameter(); + return; + } + + pMatSource->GetDimensions(nsC, nsR); + } + break; + + default: + PushIllegalParameter(); + return; + } + + if (nGlobalError != FormulaError::NONE || nsC < 1 || nsR < 1 || (nsC > 1 && nsR > 1)) + { + PushIllegalArgument(); + return; + } + + std::vector<std::pair<SCSIZE, SCSIZE>> aResPos; + for (SCSIZE col = 0; col < nsC; col++) + { + for (SCSIZE row = 0; row < nsR; row++) + { + aResPos.emplace_back(col, row); + } + } + + // No result + if (aResPos.size() == 0) + { + PushNA(); + return; + } + + SCSIZE nCeil = std::ceil(aResPos.size() / static_cast<double>(nWrap)); + SCSIZE nColumns = bCols ? nCeil : nWrap; + SCSIZE nRows = bCols ? nWrap : nCeil; + ScMatrixRef pResMat = GetNewMat(nColumns, nRows, /*bEmpty*/true); + if (!pResMat) + { + PushIllegalArgument(); + return; + } + + if (!bCols) + std::swap(nColumns, nRows); + + size_t iPos = 0; + for (SCSIZE col = 0; col < nColumns; ++col) + { + for (SCSIZE row = 0; row < nRows; ++row) + { + SCSIZE nC = bCols ? col : row; + SCSIZE nR = bCols ? row : col; + if (iPos < aResPos.size()) + { + lcl_FillCell(pMatSource, pResMat, aResPos[iPos].first, aResPos[iPos].second, nC, nR); + ++iPos; + } + else if (bDouble.has_value()) + { + if (bDouble.value()) + pResMat->PutDouble(fNumber, nC, nR); + else + pResMat->PutString(aString, nC, nR); + } + else + pResMat->PutError(FormulaError::NotAvailable, nC, nR); + } + } + + PushMatrix(pResMat); +} + +void ScInterpreter::ScWrapCols() +{ + ScWrapColsOrRows(/*bCols*/ true); +} + +void ScInterpreter::ScWrapRows() +{ + ScWrapColsOrRows(/*bCols*/ false); +} + + void ScInterpreter::ScAggregate() { sal_uInt8 nParamCount = GetByte(); diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index 693d71856db1..18c4300af5e7 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -4159,10 +4159,15 @@ StackVar ScInterpreter::Interpret() case ocFilter : ScFilter(); break; case ocSort : ScSort(); break; case ocSortBy : ScSortBy(); break; + case ocDrop : ScDrop(); break; + case ocExpand : ScExpand(); break; + case ocTake : ScTake(); break; case ocToCol : ScToCol(); break; case ocToRow : ScToRow(); break; case ocUnique : ScUnique(); break; case ocLet : ScLet(); break; + case ocWrapCols : ScWrapCols(); break; + case ocWrapRows : ScWrapRows(); break; case ocTrue : ScTrue(); break; case ocFalse : ScFalse(); break; case ocGetActDate : ScGetActDate(); break; diff --git a/sc/source/core/tool/lookupcache.cxx b/sc/source/core/tool/lookupcache.cxx index d4c19a3c7e07..c405714f1e34 100644 --- a/sc/source/core/tool/lookupcache.cxx +++ b/sc/source/core/tool/lookupcache.cxx @@ -89,7 +89,7 @@ SCROW ScLookupCache::lookup( const QueryCriteria & rCriteria ) const { // try to find the row index for which we have already performed lookup auto it = std::find_if(maQueryMap.begin(), maQueryMap.end(), - [&rCriteria](const std::pair<QueryKey, QueryCriteriaAndResult>& rEntry) { + [&rCriteria](const QueryMap::value_type& rEntry) { return rEntry.second.maCriteria == rCriteria; }); if (it != maQueryMap.end()) diff --git a/sc/source/core/tool/parclass.cxx b/sc/source/core/tool/parclass.cxx index bcaca39b0570..1964e949fd9f 100644 --- a/sc/source/core/tool/parclass.cxx +++ b/sc/source/core/tool/parclass.cxx @@ -136,6 +136,8 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] = { ocDBVarP, {{ Reference, Reference, Reference }, 0, Value }}, { ocDevSq, {{ Reference }, 1, Value }}, { ocDiv, {{ Array, Array }, 0, Value }}, + { ocDrop, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, + { ocExpand, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, { ocEqual, {{ Array, Array }, 0, Value }}, { ocFTest, {{ ForceArray, ForceArray }, 0, Value }}, { ocFalse, {{ Bounds }, 0, Value }}, @@ -256,6 +258,7 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] = { ocSumX2DY2, {{ ForceArray, ForceArray }, 0, Value }}, { ocSumX2MY2, {{ ForceArray, ForceArray }, 0, Value }}, { ocSumXMY2, {{ ForceArray, ForceArray }, 0, Value }}, + { ocTake, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, { ocTTest, {{ ForceArray, ForceArray, Value, Value }, 0, Value }}, { ocTextJoin_MS, {{ Reference, Value, Reference }, 1, Value }}, { ocToCol, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, @@ -274,6 +277,8 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] = { ocVarS, {{ Reference }, 1, Value }}, { ocWhitespace, {{ Bounds }, 0, Bounds }}, { ocWorkday_MS, {{ Value, Value, Value, Reference }, 0, Value }}, + { ocWrapCols, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, + { ocWrapRows, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } }, { ocXLookup, {{ Value, ReferenceOrForceArray, ReferenceOrForceArray, Value, Value, Value }, 0, Reference }}, { ocXMatch, {{ Value, ReferenceOrForceArray, Value, Value }, 0, Value }}, { ocXor, {{ Reference }, 1, Value }}, diff --git a/sc/source/core/tool/scopetools.cxx b/sc/source/core/tool/scopetools.cxx index 022c553d59d8..15d94040e09b 100644 --- a/sc/source/core/tool/scopetools.cxx +++ b/sc/source/core/tool/scopetools.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <o3tl/deleter.hxx> #include <scopetools.hxx> #include <document.hxx> #include <column.hxx> @@ -84,20 +85,14 @@ DelayStartListeningFormulaCells::DelayStartListeningFormulaCells(ScColumn& colum { } -DelayStartListeningFormulaCells::~DelayStartListeningFormulaCells() +void DelayStartListeningFormulaCells::ImplDestroy() { -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - try - { - mColumn.GetDoc().EnableDelayStartListeningFormulaCells(&mColumn, mbOldValue); - } - catch (...) - { - std::abort(); - } -#else mColumn.GetDoc().EnableDelayStartListeningFormulaCells(&mColumn, mbOldValue); -#endif +} + +DelayStartListeningFormulaCells::~DelayStartListeningFormulaCells() +{ + suppress_fun_call_w_exception(ImplDestroy()); } void DelayStartListeningFormulaCells::set() diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index cda61367b7a2..b0d036613ffa 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -1591,9 +1591,14 @@ void ScTokenArray::CheckToken( const FormulaToken& r ) case ocAveDev: case ocMatSequence: case ocRandArray: + case ocDrop: + case ocExpand: + case ocTake: case ocToCol: case ocToRow: case ocUnique: + case ocWrapCols: + case ocWrapRows: // Don't change the state. break; default: diff --git a/sc/source/filter/excel/xename.cxx b/sc/source/filter/excel/xename.cxx index 5607a9068d4f..aa33b31deeb3 100644 --- a/sc/source/filter/excel/xename.cxx +++ b/sc/source/filter/excel/xename.cxx @@ -322,6 +322,8 @@ OUString XclExpName::GetWithDefaultRangeSeparator( const OUString& rSymbol ) con } } } + if (rSymbol.isEmpty()) + return u"#NAME?"_ustr; return rSymbol; } diff --git a/sc/source/filter/excel/xlformula.cxx b/sc/source/filter/excel/xlformula.cxx index b4db2be5068e..92355939bd9d 100644 --- a/sc/source/filter/excel/xlformula.cxx +++ b/sc/source/filter/excel/xlformula.cxx @@ -608,12 +608,25 @@ const XclFunctionInfo saFuncTable_2021[] = EXC_FUNCENTRY_V_VR( ocSortBy, 2, 3, 0, "SORTBY" ), EXC_FUNCENTRY_V_VR( ocMatSequence,1, 4, 0, "SEQUENCE" ), EXC_FUNCENTRY_V_VR( ocRandArray, 0, 5, 0, "RANDARRAY" ), - EXC_FUNCENTRY_V_VR( ocToCol, 1, 3, 0, "TOCOL" ), - EXC_FUNCENTRY_V_VR( ocToRow, 1, 3, 0, "TOROW" ), EXC_FUNCENTRY_V_VR( ocUnique, 1, 3, 0, "UNIQUE" ), - EXC_FUNCENTRY_V_VR( ocLet, 3, 3, 0, "LET") + EXC_FUNCENTRY_V_VR( ocLet, 3, 3, 0, "LET"), }; +/** Functions new in Excel 2024. + + + @See sc/source/filter/oox/formulabase.cxx saFuncTable2024 for V,VR,RO,... + */ +const XclFunctionInfo saFuncTable_2024[] = +{ + EXC_FUNCENTRY_V_VR( ocDrop, 1, 3, 0, "DROP" ), + EXC_FUNCENTRY_V_VR( ocExpand, 2, 4, 0, "EXPAND" ), + EXC_FUNCENTRY_V_VR( ocTake, 1, 3, 0, "TAKE" ), + EXC_FUNCENTRY_V_VR( ocToCol, 1, 3, 0, "TOCOL" ), + EXC_FUNCENTRY_V_VR( ocToRow, 1, 3, 0, "TOROW" ), + EXC_FUNCENTRY_V_VR( ocWrapCols, 2, 3, 0, "WRAPCOLS"), + EXC_FUNCENTRY_V_VR( ocWrapRows, 2, 3, 0, "WRAPROWS"), +}; #define EXC_FUNCENTRY_ODF( opcode, minparam, maxparam, flags, asciiname ) \ { opcode, NOID, minparam, maxparam, V, { VR }, EXC_FUNCFLAG_IMPORTONLY|(flags), EXC_FUNCNAME_ODF( asciiname ) }, \ @@ -692,6 +705,7 @@ XclFunctionProvider::XclFunctionProvider( const XclRoot& rRoot ) (this->*pFillFunc)(saFuncTable_2013, std::end(saFuncTable_2013)); (this->*pFillFunc)(saFuncTable_2016, std::end(saFuncTable_2016)); (this->*pFillFunc)(saFuncTable_2021, std::end(saFuncTable_2021)); + (this->*pFillFunc)(saFuncTable_2024, std::end(saFuncTable_2024)); (this->*pFillFunc)(saFuncTable_Odf, std::end(saFuncTable_Odf)); (this->*pFillFunc)(saFuncTable_OOoLO, std::end(saFuncTable_OOoLO)); } diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx index 913deb8e4a2a..09024d5ca98e 100644 --- a/sc/source/filter/oox/formulabase.cxx +++ b/sc/source/filter/oox/formulabase.cxx @@ -882,12 +882,26 @@ const FunctionData saFuncTable2021[] = { "COM.MICROSOFT.SORTBY", "SORTBY", NOID, NOID, 2, MX, V, { RO, RO, VR }, FuncFlags::MACROCALL_NEW | FuncFlags::PARAMPAIRS }, { "COM.MICROSOFT.SEQUENCE", "SEQUENCE", NOID, NOID, 1, 4, A, { VO }, FuncFlags::MACROCALL_NEW }, { "COM.MICROSOFT.RANDARRAY", "RANDARRAY", NOID, NOID, 0, 5, A, { VO }, FuncFlags::MACROCALL_NEW }, - { "COM.MICROSOFT.TOCOL", "TOCOL", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, - { "COM.MICROSOFT.TOROW", "TOROW", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, { "COM.MICROSOFT.UNIQUE", "UNIQUE", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, { "COM.MICROSOFT.LET", "LET", NOID, NOID, 3, MX, R, { VR, VR, VA }, FuncFlags::MACROCALL_NEW | FuncFlags::PARAMPAIRS }, }; +/** Functions new in Excel 2024. + + + @See sc/source/filter/excel/xlformula.cxx saFuncTable_2024 + */ +/* FIXME: BIFF?? function identifiers available? Where to obtain? */ +const FunctionData saFuncTable2024[] = +{ + { "COM.MICROSOFT.DROP", "DROP", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.EXPAND", "EXPAND", NOID, NOID, 2, 4, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.TAKE", "TAKE", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.TOCOL", "TOCOL", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.TOROW", "TOROW", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.WRAPCOLS", "WRAPCOLS", NOID, NOID, 2, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, + { "COM.MICROSOFT.WRAPROWS", "WRAPROWS", NOID, NOID, 2, 3, A, { VO }, FuncFlags::MACROCALL_NEW }, +}; /** Functions defined by OpenFormula, but not supported by Calc or by Excel. */ @@ -1039,6 +1053,7 @@ FunctionProviderImpl::FunctionProviderImpl( bool bImportFilter ) initFuncs(saFuncTable2013 , std::end(saFuncTable2013) , bImportFilter); initFuncs(saFuncTable2016 , std::end(saFuncTable2016) , bImportFilter); initFuncs(saFuncTable2021 , std::end(saFuncTable2021 ), bImportFilter); + initFuncs(saFuncTable2024 , std::end(saFuncTable2024 ), bImportFilter); initFuncs(saFuncTableOdf , std::end(saFuncTableOdf) , bImportFilter); initFuncs(saFuncTableOOoLO, std::end(saFuncTableOOoLO), bImportFilter); } diff --git a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx index be843112859a..d109fb537fbd 100644 --- a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx +++ b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx @@ -13,6 +13,9 @@ #include <editeng/editobj.hxx> #include <editeng/wghtitem.hxx> #include <editeng/eeitem.hxx> +#include <editeng/boxitem.hxx> +#include <editeng/borderline.hxx> +#include <editeng/justifyitem.hxx> #include <editutil.hxx> @@ -21,6 +24,8 @@ #include <docfunc.hxx> #include <docsh.hxx> +using namespace ::editeng; + FormulaTemplate::FormulaTemplate(ScDocument* pDoc) : mpDoc(pDoc) , mbUse3D(true) @@ -213,7 +218,9 @@ void AddressWalkerWriter::writeBoldString(const OUString& aString) rEngine.SetTextCurrentDefaults(aString); SfxItemSet aItemSet = rEngine.GetEmptyItemSet(); SvxWeightItem aWeight(WEIGHT_BOLD, EE_CHAR_WEIGHT); + SvxHorJustifyItem aJustify(SvxCellHorJustify::Center, ATTR_HOR_JUSTIFY); aItemSet.Put(aWeight); + aItemSet.Put(aJustify); rEngine.QuickSetAttribs(aItemSet, ESelection(0, 0, 0, aString.getLength()) ); std::unique_ptr<EditTextObject> pEditText(rEngine.CreateTextObject()); mpDocShell->GetDocFunc().SetEditCell(mCurrentAddress, *pEditText, true); @@ -224,6 +231,47 @@ void AddressWalkerWriter::writeValue(double aValue) mpDocShell->GetDocFunc().SetValueCell(mCurrentAddress, aValue, true); } +// Applies a column header format to the current cell and subsequent (nCols - 1) columns +// Header format = bold font, horizontally centered, text wrap and top/bottom borders +void AddressWalkerWriter::formatAsColumnHeader(SCCOL nCols) +{ + ScPatternAttr aPattern(mrDocument.getCellAttributeHelper()); + SvxHorJustifyItem aHJustify(SvxCellHorJustify::Center, ATTR_HOR_JUSTIFY); + SvxVerJustifyItem aVJustify(SvxCellVerJustify::Center, ATTR_VER_JUSTIFY); + SvxWeightItem aWeight(WEIGHT_BOLD, ATTR_FONT_WEIGHT); + ScLineBreakCell aWrap(true); + SvxBoxItem aBorderOuter(ATTR_BORDER); + SvxBorderLine aLine; + aLine.GuessLinesWidths(aLine.GetBorderLineStyle(), SvxBorderLineWidth::Thin); + aBorderOuter.SetLine(&aLine, SvxBoxItemLine::TOP); + aBorderOuter.SetLine(&aLine, SvxBoxItemLine::BOTTOM); + + aPattern.GetItemSet().Put(aHJustify); + aPattern.GetItemSet().Put(aVJustify); + aPattern.GetItemSet().Put(aWeight); + aPattern.GetItemSet().Put(aWrap); + aPattern.GetItemSet().Put(aBorderOuter); + + mrDocument.ApplyPatternAreaTab(mCurrentAddress.Col(), mCurrentAddress.Row(), + mCurrentAddress.Col() + nCols - 1, mCurrentAddress.Row(), + mCurrentAddress.Tab(), aPattern); +} + +// Formats as the bottom end of a table with a bottom line +// Starts in the current cell and formats nCols in total +void AddressWalkerWriter::formatTableBottom(SCCOL nCols) +{ + ScPatternAttr aPattern(mrDocument.getCellAttributeHelper()); + SvxBoxItem aBorderOuter(ATTR_BORDER); + SvxBorderLine aLine; + aLine.GuessLinesWidths(aLine.GetBorderLineStyle(), SvxBorderLineWidth::Thin); + aBorderOuter.SetLine(&aLine, SvxBoxItemLine::BOTTOM); + aPattern.GetItemSet().Put(aBorderOuter); + mrDocument.ApplyPatternAreaTab(mCurrentAddress.Col(), mCurrentAddress.Row(), + mCurrentAddress.Col() + nCols - 1, mCurrentAddress.Row(), + mCurrentAddress.Tab(), aPattern); +} + // DataCellIterator DataCellIterator::DataCellIterator(const ScRange& aInputRange, bool aByColumn) diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index d62f61f0ef70..e778d27886c0 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -3118,13 +3118,6 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode, bool bBeforeSavingInL ImplCreateEditEngine(); - bool bMatrix = ( nBlockMode == ScEnterMode::MATRIX ); - - SfxApplication* pSfxApp = SfxGetpApp(); - std::unique_ptr<EditTextObject> pObject; - std::unique_ptr<ScPatternAttr> pCellAttrs; - bool bForget = false; // Remove due to validity? - OUString aString = GetEditText(mpEditEngine.get()); OUString aPreAutoCorrectString(aString); EditView* pActiveView = pTopView ? pTopView : pTableView; @@ -3193,12 +3186,24 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode, bool bBeforeSavingInL return; } - if (pData->DoError(pActiveViewSh->GetFrameWeld(), aString, aCursorPos)) - bForget = true; // Do not take over input - + pData->DoError( + pActiveViewSh->GetFrameWeld(), aString, aCursorPos, + [this, nBlockMode, aString, aPreAutoCorrectString](bool bForget) + { EnterHandler2(nBlockMode, bForget, aString, aPreAutoCorrectString); }); + return; } } } + EnterHandler2(nBlockMode, false, aString, aPreAutoCorrectString); +} + +void ScInputHandler::EnterHandler2(ScEnterMode nBlockMode, bool bForget, OUString aString, + const OUString& aPreAutoCorrectString) +{ + std::unique_ptr<EditTextObject> pObject; + std::unique_ptr<ScPatternAttr> pCellAttrs; + bool bMatrix = (nBlockMode == ScEnterMode::MATRIX); + SfxApplication* pSfxApp = SfxGetpApp(); // Check for input into DataPilot table if ( bModified && !bForget ) diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index e745b922315e..9b5413cd1c17 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -5703,7 +5703,7 @@ void ScDocFunc::SetConditionalFormatList( ScConditionalFormatList* pList, SCTAB ScConditionalFormatList* pOld = rDoc.GetCondFormList(nTab); if (pOld) - pUndoDoc->SetCondFormList(new ScConditionalFormatList(*pUndoDoc, *pOld), nTab); + pUndoDoc->SetCondFormList(pOld->Clone(*pUndoDoc), nTab); else pUndoDoc->SetCondFormList(nullptr, nTab); @@ -5723,7 +5723,7 @@ void ScDocFunc::SetConditionalFormatList( ScConditionalFormatList* pList, SCTAB { ScDocumentUniquePtr pRedoDoc(new ScDocument(SCDOCMODE_UNDO)); pRedoDoc->InitUndo( rDoc, nTab, nTab ); - pRedoDoc->SetCondFormList(new ScConditionalFormatList(*pRedoDoc, *pList), nTab); + pRedoDoc->SetCondFormList(pList->Clone(*pRedoDoc), nTab); rDocShell.GetUndoManager()->AddUndoAction( std::make_unique<ScUndoConditionalFormatList>(&rDocShell, std::move(pUndoDoc), std::move(pRedoDoc), nTab)); diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx index 01c65a4ed446..f679b031f3a5 100644 --- a/sc/source/ui/drawfunc/drawsh.cxx +++ b/sc/source/ui/drawfunc/drawsh.cxx @@ -161,8 +161,9 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) case SID_CELL_FORMAT_RESET: case SID_TEXT_STANDARD: { - SfxItemSetFixed<SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_MINFRAMEHEIGHT, - SDRATTR_TEXT_MAXFRAMEHEIGHT, SDRATTR_TEXT_MAXFRAMEWIDTH> aEmptyAttr(GetPool()); + SfxItemSet aEmptyAttr(SfxItemSet::makeFixedSfxItemSet< + SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_MINFRAMEHEIGHT, + SDRATTR_TEXT_MAXFRAMEHEIGHT, SDRATTR_TEXT_MAXFRAMEWIDTH>(GetPool())); if (ScDrawLayer::IsNoteCaption(pSingleSelectedObj)) aEmptyAttr.Put(pView->GetAttrFromMarked(true)); @@ -429,7 +430,9 @@ void ScDrawShell::ExecuteMacroAssign(SdrObject* pObj, weld::Window* pWin) } // create empty itemset for macro-dlg - auto xItemSet = std::make_unique<SfxItemSetFixed<SID_ATTR_MACROITEM, SID_ATTR_MACROITEM, SID_EVENTCONFIG, SID_EVENTCONFIG>>( SfxGetpApp()->GetPool() ); + auto xItemSet = std::make_unique<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + SID_ATTR_MACROITEM, SID_ATTR_MACROITEM, + SID_EVENTCONFIG, SID_EVENTCONFIG>(SfxGetpApp()->GetPool())); xItemSet->Put ( aItem ); SfxEventNamesItem aNamesItem(SID_EVENTCONFIG); diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx index a44532a05907..cc373117bfa2 100644 --- a/sc/source/ui/drawfunc/fuins2.cxx +++ b/sc/source/ui/drawfunc/fuins2.cxx @@ -57,7 +57,6 @@ #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/chart/ChartDataRowSource.hpp> -#include <cppuhelper/bootstrap.hxx> #include <svtools/dialogclosedlistener.hxx> #include <officecfg/Office/Common.hxx> @@ -628,9 +627,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, vcl::Window* pWin, ScDrawV rViewShell.ActivateObject(pObj.get(), embed::EmbedVerbs::MS_OLEVERB_SHOW); //open wizard - //@todo get context from calc if that has one - uno::Reference< uno::XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if(xContext.is()) { uno::Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() ); diff --git a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx index ab791151180f..0e678e3f4482 100644 --- a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx +++ b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx @@ -86,6 +86,8 @@ public: void writeString(const char* aCharArray); void writeBoldString(const OUString& aString); void writeValue(double aValue); + void formatAsColumnHeader(SCCOL nCols = 1); + void formatTableBottom(SCCOL nCols = 1); }; class DataCellIterator final diff --git a/sc/source/ui/inc/inputhdl.hxx b/sc/source/ui/inc/inputhdl.hxx index 3067dd819397..0b68ed14c6b6 100644 --- a/sc/source/ui/inc/inputhdl.hxx +++ b/sc/source/ui/inc/inputhdl.hxx @@ -198,6 +198,8 @@ public: bool KeyInput( const KeyEvent& rKEvt, bool bStartEdit ); void EnterHandler( ScEnterMode nBlockMode = ScEnterMode::NORMAL, bool bBeforeSavingInLOK = false ); + void EnterHandler2(ScEnterMode nBlockMode, bool bForget, OUString aString, + const OUString& aPreAutoCorrectString); void CancelHandler(); void SetReference( const ScRange& rRef, const ScDocument& rDoc ); void AddRefEntry(); diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx index 5f75a610def8..cde2774153bc 100644 --- a/sc/source/ui/miscdlgs/optsolver.cxx +++ b/sc/source/ui/miscdlgs/optsolver.cxx @@ -39,6 +39,7 @@ #include <optsolver.hxx> #include <table.hxx> #include <TableFillingAndNavigationTools.hxx> +#include <tabvwsh.hxx> #include <com/sun/star/beans/XPropertySetInfo.hpp> #include <com/sun/star/sheet/SolverConstraint.hpp> @@ -1258,10 +1259,12 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal // Objective cell section aOutput.writeBoldString(ScResId(STR_SENSITIVITY_OBJCELL)); aOutput.newLine(); + aOutput.formatAsColumnHeader(2); aOutput.writeString(ScResId(STR_SENSITIVITY_CELL)); aOutput.nextColumn(); aOutput.writeString(ScResId(STR_SENSITIVITY_FINALVALUE)); aOutput.newLine(); + aOutput.formatTableBottom(2); aOutput.writeString(GetCellStrAddress(xSolver->getObjective())); aOutput.nextColumn(); aOutput.writeValue(xSolver->getResultValue()); @@ -1271,6 +1274,7 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal // Variable cell section aOutput.writeBoldString(ScResId(STR_SENSITIVITY_VARCELLS)); aOutput.newLine(); + aOutput.formatAsColumnHeader(6); aOutput.writeString(ScResId(STR_SENSITIVITY_CELL)); aOutput.nextColumn(); aOutput.writeString(ScResId(STR_SENSITIVITY_FINALVALUE)); @@ -1289,8 +1293,11 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal uno::Sequence<double> aObjReducedCosts = aSensitivity.ObjReducedCosts; uno::Sequence<double> aObjAllowableDecreases = aSensitivity.ObjAllowableDecreases; uno::Sequence<double> aObjAllowableIncreases = aSensitivity.ObjAllowableIncreases; - for (sal_Int32 i = 0; i < aVariables.getLength(); i++) + sal_Int32 nRows = aVariables.getLength(); + for (sal_Int32 i = 0; i < nRows; i++) { + if (i == nRows - 1) + aOutput.formatTableBottom(6); aOutput.writeString(GetCellStrAddress(aVariables[i])); aOutput.nextColumn(); aOutput.writeValue(aSolution[i]); @@ -1309,6 +1316,7 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal // Constraints section aOutput.writeBoldString(ScResId(STR_SENSITIVITY_CONSTRAINTS)); aOutput.newLine(); + aOutput.formatAsColumnHeader(6); aOutput.writeString(ScResId(STR_SENSITIVITY_CELL)); aOutput.nextColumn(); aOutput.writeString(ScResId(STR_SENSITIVITY_FINALVALUE)); @@ -1327,8 +1335,11 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal uno::Sequence<double> aConstrShadowPrices = aSensitivity.ConstrShadowPrices; uno::Sequence<double> aConstrAllowableDecreases = aSensitivity.ConstrAllowableDecreases; uno::Sequence<double> aConstrAllowableIncreases = aSensitivity.ConstrAllowableIncreases; - for (sal_Int32 i = 0; i < aConstraints.getLength(); i++) + nRows = aConstraints.getLength(); + for (sal_Int32 i = 0; i < nRows; i++) { + if (i == nRows - 1) + aOutput.formatTableBottom(6); aOutput.writeString(GetCellStrAddress(aConstraints[i].Left)); aOutput.nextColumn(); aOutput.writeValue(aConstrValues[i]); @@ -1342,6 +1353,15 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal aOutput.writeValue(aConstrAllowableIncreases[i]); aOutput.newLine(); } + + // Disable grid lines in the sensitivity report + if (ScTabViewShell* pViewSh = ScTabViewShell::GetActiveViewShell()) + { + ScViewData& rData = pViewSh->GetViewData(); + rData.SetTabNo(nReportTab); + rData.SetShowGrid(false); + rData.SetTabNo(mnCurTab); + } } } diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx index cd96fa833f21..f5b3124c8795 100644 --- a/sc/source/ui/undo/undoblk.cxx +++ b/sc/source/ui/undo/undoblk.cxx @@ -1626,7 +1626,7 @@ ScDocumentUniquePtr ScUndoConditionalFormat::createUndoRedoData() ScDocumentUniquePtr pUndoRedoDoc(new ScDocument(SCDOCMODE_UNDO)); pUndoRedoDoc->InitUndo(rDoc, mnTab, mnTab); if (const auto* pList = rDoc.GetCondFormList(mnTab)) - pUndoRedoDoc->SetCondFormList(new ScConditionalFormatList(*pUndoRedoDoc, *pList), mnTab); + pUndoRedoDoc->SetCondFormList(pList->Clone(*pUndoRedoDoc), mnTab); return pUndoRedoDoc; } @@ -1654,14 +1654,23 @@ void ScUndoConditionalFormat::DoChange(ScDocument* pSrcDoc) // formats with the other formats in the tab, to get the correct state. ScRangeList aCombinedRange; if (const auto* pOldList = rDoc.GetCondFormList(mnTab)) + { aCombinedRange = pOldList->GetCombinedRange(); + // Clear all existing CF keys from cells' attributes + for (auto& pFormat : *pOldList) + rDoc.RemoveCondFormatData(aCombinedRange, mnTab, pFormat->GetKey()); + } if (const auto* pNewList = pSrcDoc->GetCondFormList(mnTab)) { for (const auto& cond : *pNewList) + { + // Restore the CF keys to cell attributes + rDoc.AddCondFormatData(cond->GetRange(), mnTab, cond->GetKey()); for (const auto& range : cond->GetRange()) aCombinedRange.Join(range); - rDoc.SetCondFormList(new ScConditionalFormatList(rDoc, *pNewList), mnTab); + } + rDoc.SetCondFormList(pNewList->Clone(rDoc), mnTab); } else { @@ -1725,7 +1734,7 @@ void ScUndoConditionalFormatList::DoChange(const ScDocument* pSrcDoc) mpUndoDoc->GetCondFormList(mnTab)->RemoveFromDocument(rDoc); mpRedoDoc->GetCondFormList(mnTab)->AddToDocument(rDoc); } - rDoc.SetCondFormList(new ScConditionalFormatList(rDoc, *pSrcDoc->GetCondFormList(mnTab)), mnTab); + rDoc.SetCondFormList(pSrcDoc->GetCondFormList(mnTab)->Clone(rDoc), mnTab); pDocShell->PostPaintGridAll(); pDocShell->PostDataChanged(); diff --git a/sc/source/ui/unoobj/funcuno.cxx b/sc/source/ui/unoobj/funcuno.cxx index 82ad1eeab815..7e301b4b3984 100644 --- a/sc/source/ui/unoobj/funcuno.cxx +++ b/sc/source/ui/unoobj/funcuno.cxx @@ -581,7 +581,7 @@ uno::Any SAL_CALL ScFunctionAccess::callFunction( const OUString& aName, { ArrayOfArrayProc<uno::Any>::processSequences( pDoc, rArg, aTokenArr, nDocRow, bArgErr, bOverflow ); } - else if (uno::Reference<table::XCellRange> xRange; rArg >>= xRange) + else if (uno::Reference<table::XCellRange> xRange; (rArg >>= xRange) && xRange) { // currently, only our own cell ranges are supported diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 99f5075f6b3a..f94f19ac7c48 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -27,6 +27,7 @@ #include <basic/sberrors.hxx> #include <comphelper/lok.hxx> +#include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> #include <svl/stritem.hxx> #include <svl/numformat.hxx> @@ -95,7 +96,6 @@ #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/uno/XComponentContext.hpp> -#include <cppuhelper/bootstrap.hxx> #include <o3tl/string_view.hxx> #include <memory> @@ -2004,8 +2004,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) case SID_CHINESE_CONVERSION: { //open ChineseTranslationDialog - Reference< XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if(xContext.is()) { Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() ); @@ -2242,28 +2241,23 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) // try to find an existing conditional format const ScPatternAttr* pPattern = rDoc.GetPattern(aPos.Col(), aPos.Row(), aPos.Tab()); ScConditionalFormatList* pList = rDoc.GetCondFormList(aPos.Tab()); - const ScCondFormatIndexes& rCondFormats = pPattern->GetItem(ATTR_CONDITIONAL).GetCondFormatData(); - bool bContainsCondFormat = !rCondFormats.empty(); + bool bContainsCondFormat = false; bool bCondFormatDlg = false; - bool bContainsExistingCondFormat = false; - if(bContainsCondFormat) + for (auto nKey : pPattern->GetItem(ATTR_CONDITIONAL).GetCondFormatData()) { - for (const auto& rCondFormat : rCondFormats) + // check if at least one existing conditional format has the same range + const ScConditionalFormat* pCondFormat = pList->GetFormat(nKey); + if(!pCondFormat) + continue; + + bContainsCondFormat = true; // found at least one format + const ScRangeList& rCondFormatRange = pCondFormat->GetRange(); + if(rCondFormatRange == aRangeList) { - // check if at least one existing conditional format has the same range - const ScConditionalFormat* pCondFormat = pList->GetFormat(rCondFormat); - if(!pCondFormat) - continue; - - bContainsExistingCondFormat = true; - const ScRangeList& rCondFormatRange = pCondFormat->GetRange(); - if(rCondFormatRange == aRangeList) - { - // found a matching range, edit this conditional format - bCondFormatDlg = true; - nIndex = pCondFormat->GetKey(); - break; - } + // found a matching range, edit this conditional format + bCondFormatDlg = true; + nIndex = pCondFormat->GetKey(); + break; } } @@ -2426,7 +2420,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) // if not found a conditional format ask whether we should edit one of the existing // or should create a new overlapping conditional format - if(bContainsCondFormat && !bCondFormatDlg && bContainsExistingCondFormat) + if (bContainsCondFormat && !bCondFormatDlg) { std::shared_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(pTabViewShell->GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo, diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx index 38a2e62ac177..553ef3401f14 100644 --- a/sc/source/ui/view/cellsh2.cxx +++ b/sc/source/ui/view/cellsh2.cxx @@ -920,102 +920,135 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq ) auto xDlg = std::make_shared<ScValidationDlg>(pParentWin, &aArgSet, pTabViewShell); ScValidationRegisteredDlg aRegisterThatDlgExists(pParentWin, xDlg); - short nResult = xDlg->run(); - if ( nResult == RET_OK ) + struct lcl_auxData { - const SfxItemSet* pOutSet = xDlg->GetOutputItemSet(); - - if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_MODE ) ) - eMode = static_cast<ScValidationMode>(pItem->GetValue()); - if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_CONDMODE ) ) - eOper = static_cast<ScConditionMode>(pItem->GetValue()); - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_VALUE1 ) ) + ScAddress aCursorPos; + ScValidationMode eMode; + ScConditionMode eOper; + OUString aExpr1; + OUString aExpr2; + bool bBlank; + sal_Int16 nListType; + bool bShowHelp; + OUString aHelpTitle; + OUString aHelpText; + bool bShowError; + ScValidErrorStyle eErrStyle; + OUString aErrTitle; + OUString aErrText; + bool bCaseSensitive; + }; + + std::shared_ptr<lcl_auxData> pAuxData = std::make_shared<lcl_auxData>(lcl_auxData{ + aCursorPos, eMode, eOper, aExpr1, aExpr2, bBlank, nListType, bShowHelp, + aHelpTitle, aHelpText, bShowError, eErrStyle, aErrTitle, aErrText, bCaseSensitive}); + + auto xRequest = std::make_shared<SfxRequest>(rReq); + rReq.Ignore(); // the 'old' request is not relevant any more + SfxTabDialogController::runAsync( + xDlg, + [&rDoc, xRequest=std::move(xRequest), pAuxData, xDlg, pTabViewShell](sal_Int32 nResult) + { + if ( nResult == RET_OK ) { - OUString aTemp1 = pItem->GetValue(); - if (eMode == SC_VALID_DATE || eMode == SC_VALID_TIME) + const SfxItemSet* pOutSet = xDlg->GetOutputItemSet(); + + if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_MODE ) ) + pAuxData->eMode = static_cast<ScValidationMode>(pItem->GetValue()); + if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_CONDMODE ) ) + pAuxData->eOper = static_cast<ScConditionMode>(pItem->GetValue()); + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_VALUE1 ) ) { - sal_uInt32 nNumIndex = 0; - double nVal; - if (rDoc.GetFormatTable()->IsNumberFormat(aTemp1, nNumIndex, nVal)) - aExpr1 = ::rtl::math::doubleToUString( nVal, - rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, - ScGlobal::getLocaleData().getNumDecimalSep()[0], true); + OUString aTemp1 = pItem->GetValue(); + if (pAuxData->eMode == SC_VALID_DATE || pAuxData->eMode == SC_VALID_TIME) + { + sal_uInt32 nNumIndex = 0; + double nVal; + if (rDoc.GetFormatTable()->IsNumberFormat(aTemp1, nNumIndex, nVal)) + pAuxData->aExpr1 = ::rtl::math::doubleToUString( nVal, + rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, + ScGlobal::getLocaleData().getNumDecimalSep()[0], true); + else + pAuxData->aExpr1 = aTemp1; + } else - aExpr1 = aTemp1; + pAuxData->aExpr1 = aTemp1; } - else - aExpr1 = aTemp1; - } - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_VALUE2 ) ) - { - OUString aTemp2 = pItem->GetValue(); - if (eMode == SC_VALID_DATE || eMode == SC_VALID_TIME) + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_VALUE2 ) ) { - sal_uInt32 nNumIndex = 0; - double nVal; - if (rDoc.GetFormatTable()->IsNumberFormat(aTemp2, nNumIndex, nVal)) - aExpr2 = ::rtl::math::doubleToUString( nVal, - rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, - ScGlobal::getLocaleData().getNumDecimalSep()[0], true); - else - aExpr2 = aTemp2; - if ( eMode == SC_VALID_TIME ) { - sal_Int32 wraparound = aExpr1.compareTo(aExpr2); - if (wraparound > 0) { - if (eOper == ScConditionMode::Between) { - eOper = ScConditionMode::NotBetween; - std::swap( aExpr1, aExpr2 ); - } - else if (eOper == ScConditionMode::NotBetween) { - eOper = ScConditionMode::Between; - std::swap( aExpr1, aExpr2 ); + OUString aTemp2 = pItem->GetValue(); + if (pAuxData->eMode == SC_VALID_DATE || pAuxData->eMode == SC_VALID_TIME) + { + sal_uInt32 nNumIndex = 0; + double nVal; + if (rDoc.GetFormatTable()->IsNumberFormat(aTemp2, nNumIndex, nVal)) + pAuxData->aExpr2 = ::rtl::math::doubleToUString( nVal, + rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, + ScGlobal::getLocaleData().getNumDecimalSep()[0], true); + else + pAuxData->aExpr2 = aTemp2; + if ( pAuxData->eMode == SC_VALID_TIME ) { + sal_Int32 wraparound = pAuxData->aExpr1.compareTo(pAuxData->aExpr2); + if (wraparound > 0) { + if (pAuxData->eOper == ScConditionMode::Between) { + pAuxData->eOper = ScConditionMode::NotBetween; + std::swap( pAuxData->aExpr1, pAuxData->aExpr2 ); + } + else if (pAuxData->eOper == ScConditionMode::NotBetween) { + pAuxData->eOper = ScConditionMode::Between; + std::swap( pAuxData->aExpr1, pAuxData->aExpr2 ); + } } } } + else + pAuxData->aExpr2 = aTemp2; } - else - aExpr2 = aTemp2; + if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_BLANK ) ) + pAuxData->bBlank = pItem->GetValue(); + if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_CASESENS ) ) + pAuxData->bCaseSensitive = pItem->GetValue(); + if ( const SfxInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_LISTTYPE ) ) + pAuxData->nListType = pItem->GetValue(); + + if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_SHOWHELP ) ) + pAuxData->bShowHelp = pItem->GetValue(); + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_HELPTITLE ) ) + pAuxData->aHelpTitle = pItem->GetValue(); + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_HELPTEXT ) ) + pAuxData->aHelpText = pItem->GetValue(); + + if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_SHOWERR ) ) + pAuxData->bShowError = pItem->GetValue(); + if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRSTYLE ) ) + pAuxData->eErrStyle = static_cast<ScValidErrorStyle>(pItem->GetValue()); + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRTITLE ) ) + pAuxData->aErrTitle = pItem->GetValue(); + if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRTEXT ) ) + pAuxData->aErrText = pItem->GetValue(); + + ScValidationData aData( pAuxData->eMode, pAuxData->eOper, pAuxData->aExpr1, pAuxData->aExpr2, rDoc, pAuxData->aCursorPos ); + aData.SetIgnoreBlank( pAuxData->bBlank ); + aData.SetCaseSensitive( pAuxData->bCaseSensitive ); + aData.SetListType( pAuxData->nListType ); + + aData.SetInput(pAuxData->aHelpTitle, pAuxData->aHelpText); // sets bShowInput to TRUE + if (!pAuxData->bShowHelp) + aData.ResetInput(); // reset only bShowInput + + aData.SetError(pAuxData->aErrTitle, pAuxData->aErrText, pAuxData->eErrStyle); // sets bShowError to TRUE + if (!pAuxData->bShowError) + aData.ResetError(); // reset only bShowError + + pTabViewShell->SetValidation( aData ); + pTabViewShell->TestHintWindow(); + xRequest->Done( *pOutSet ); } - if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_BLANK ) ) - bBlank = pItem->GetValue(); - if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_CASESENS ) ) - bCaseSensitive = pItem->GetValue(); - if ( const SfxInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_LISTTYPE ) ) - nListType = pItem->GetValue(); - - if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_SHOWHELP ) ) - bShowHelp = pItem->GetValue(); - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_HELPTITLE ) ) - aHelpTitle = pItem->GetValue(); - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_HELPTEXT ) ) - aHelpText = pItem->GetValue(); - - if ( const SfxBoolItem* pItem = pOutSet->GetItemIfSet( FID_VALID_SHOWERR ) ) - bShowError = pItem->GetValue(); - if ( const SfxUInt16Item* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRSTYLE ) ) - eErrStyle = static_cast<ScValidErrorStyle>(pItem->GetValue()); - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRTITLE ) ) - aErrTitle = pItem->GetValue(); - if ( const SfxStringItem* pItem = pOutSet->GetItemIfSet( FID_VALID_ERRTEXT ) ) - aErrText = pItem->GetValue(); - - ScValidationData aData( eMode, eOper, aExpr1, aExpr2, rDoc, aCursorPos ); - aData.SetIgnoreBlank( bBlank ); - aData.SetCaseSensitive( bCaseSensitive ); - aData.SetListType( nListType ); - - aData.SetInput(aHelpTitle, aHelpText); // sets bShowInput to TRUE - if (!bShowHelp) - aData.ResetInput(); // reset only bShowInput - - aData.SetError(aErrTitle, aErrText, eErrStyle); // sets bShowError to TRUE - if (!bShowError) - aData.ResetError(); // reset only bShowError - - pTabViewShell->SetValidation( aData ); - pTabViewShell->TestHintWindow(); - rReq.Done( *pOutSet ); - } + else + { + pTabViewShell->TestHintWindow(); + } + }); } } break; diff --git a/sc/uiconfig/scalc/ui/duplicaterecordsdlg.ui b/sc/uiconfig/scalc/ui/duplicaterecordsdlg.ui index 0822c3c3d03f..0c3406095a1b 100644 --- a/sc/uiconfig/scalc/ui/duplicaterecordsdlg.ui +++ b/sc/uiconfig/scalc/ui/duplicaterecordsdlg.ui @@ -302,7 +302,7 @@ <property name="can-focus">False</property> <property name="halign">start</property> <property name="valign">start</property> - <property name="label" translatable="no" context="duplicaterecordsdialog|compareby">Compare by:</property> + <property name="label" translatable="yes" context="duplicaterecordsdialog|compareby">Compare by:</property> <property name="mnemonic-widget">allcheckbtn</property> </object> <packing> diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui index f425e7ad3e76..6c466d4a962e 100644 --- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui +++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui @@ -136,10 +136,10 @@ <property name="can_focus">False</property> <items> <item id="0" translatable="yes" context="formulacalculationoptions|comboSyntaxRef">Use formula syntax</item> - <item id="1">Calc A1</item> - <item id="2">Excel A1</item> - <item id="3">Excel R1C1</item> - <item id="4">Calc A1 | Excel A1</item> + <item id="1" translatable="yes" context="formulacalculationoptions|comboSyntaxRef">Calc A1</item> + <item id="2" translatable="yes" context="formulacalculationoptions|comboSyntaxRef">Excel A1</item> + <item id="3" translatable="yes" context="formulacalculationoptions|comboSyntaxRef">Excel R1C1</item> + <item id="4" translatable="yes" context="formulacalculationoptions|comboSyntaxRef">Calc A1 | Excel A1</item> </items> </object> <packing> diff --git a/sc/uiconfig/scalc/ui/functionpanel.ui b/sc/uiconfig/scalc/ui/functionpanel.ui index d9c68d35f4cf..8f1d22ab3292 100644 --- a/sc/uiconfig/scalc/ui/functionpanel.ui +++ b/sc/uiconfig/scalc/ui/functionpanel.ui @@ -222,7 +222,7 @@ </child> <child> <object class="GtkButton" id="help"> - <property name="label">Help</property> + <property name="label" translatable="yes" context="functionpanel|help">Help</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="can-default">True</property> diff --git a/sd/qa/unit/SVGExportTests.cxx b/sd/qa/unit/SVGExportTests.cxx index bcd0b2908f06..68d73bee89db 100644 --- a/sd/qa/unit/SVGExportTests.cxx +++ b/sd/qa/unit/SVGExportTests.cxx @@ -131,20 +131,20 @@ public: xmlDocUniquePtr svgDoc = parseXml(maTempFile); CPPUNIT_ASSERT(svgDoc); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2] ), "class", u"Master_Slide"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2] ), "class", u"BackgroundObjects"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2] ), "class", u"Master_Slide"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2] ), "class", u"BackgroundObjects"); // Current Date Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[4] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[4]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText Date"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[4] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[4]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText Date"); // Current Time Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[5] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[5]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText Time"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[5] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[5]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText Time"); // Slide Name Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[6] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[6]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageName"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[6] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[6]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageName"); // Slide Number Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[7] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[7]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageNumber"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[7] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[7]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageNumber"); } void testSVGExportEmbeddedVideo() @@ -186,10 +186,10 @@ public: xmlDocUniquePtr svgDoc = parseXml(maTempFile); CPPUNIT_ASSERT(svgDoc); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10] ), "class", u"BackgroundBitmaps"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_IMAGE ), 1); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9] ), "class", u"BackgroundBitmaps"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_IMAGE ), 1); - OUString sImageId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_IMAGE ), "id"); + OUString sImageId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_IMAGE ), "id"); CPPUNIT_ASSERT_MESSAGE(OString("The exported bitmap has not a valid id: " + sImageId.toUtf8()).getStr(), isValidBitmapId(sImageId)); BitmapChecksum nChecksum = getBitmapChecksumFromId(sImageId); @@ -216,39 +216,39 @@ public: CPPUNIT_ASSERT(svgDoc); // check the bitmap - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10] ), "class", u"BackgroundBitmaps"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_IMAGE ), 1); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9] ), "class", u"BackgroundBitmaps"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_IMAGE ), 1); // check the pattern and background rectangle - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11] ), "class", u"BackgroundPatterns"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_PATTERN ), 1); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_PATTERN/SVG_USE ), 1); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_G/SVG_RECT ), 1); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10] ), "class", u"BackgroundPatterns"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_PATTERN ), 1); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_PATTERN/SVG_USE ), 1); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G/SVG_RECT ), 1); // check that <pattern><use> is pointing to the correct <image> - OUString sImageId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_IMAGE ), "id"); + OUString sImageId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_IMAGE ), "id"); CPPUNIT_ASSERT_MESSAGE(OString("The exported bitmap has not a valid id: " + sImageId.toUtf8()).getStr(), isValidBitmapId(sImageId)); BitmapChecksum nChecksum = getBitmapChecksumFromId(sImageId); CPPUNIT_ASSERT_MESSAGE(OString("The exported bitmap has not a valid checksum: " + sImageId.toUtf8()).getStr(), nChecksum != 0); - OUString sRef = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_PATTERN/SVG_USE ), "href"); + OUString sRef = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_PATTERN/SVG_USE ), "href"); CPPUNIT_ASSERT_MESSAGE("The <pattern><use> element has not a valid href attribute: starting '#' not present.", sRef.startsWith("#")); sRef = sRef.copy(1); CPPUNIT_ASSERT_EQUAL_MESSAGE("The href attribute for <pattern><use> does not match the <image> id attribute: ", sImageId, sRef); - OUString sPatternId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_PATTERN ), "id"); + OUString sPatternId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_PATTERN ), "id"); CPPUNIT_ASSERT_MESSAGE(OString("The exported pattern has not a valid id: " + sPatternId.toUtf8()).getStr(), isValidBackgroundPatternId(sPatternId)); - OUString sFillUrl = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_G/SVG_RECT ), "fill"); + OUString sFillUrl = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G/SVG_RECT ), "fill"); bool bIsUrlFormat = sFillUrl.startsWith("url(#") && sFillUrl.endsWith(")"); CPPUNIT_ASSERT_MESSAGE("The fill attribute for the <rectangle> element has not a url format .", bIsUrlFormat); // remove "url(#" and ")" sFillUrl = sFillUrl.copy(5, sFillUrl.getLength() - 6); CPPUNIT_ASSERT_EQUAL_MESSAGE("The fill url for <rectangle> does not match the <pattern> id attribute: ", sPatternId, sFillUrl); - OUString sBackgroundId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[11]/SVG_G ), "id"); + OUString sBackgroundId = getXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G ), "id"); CPPUNIT_ASSERT_MESSAGE(OString("The exported tiled background has not a valid id: " + sBackgroundId.toUtf8()).getStr(), isValidTiledBackgroundId(sBackgroundId)); // check <use> element that point to the tiled background @@ -280,15 +280,15 @@ public: xmlDocUniquePtr svgDoc = parseXml(maTempFile); CPPUNIT_ASSERT(svgDoc); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2] ), "class", u"Master_Slide"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2] ), "class", u"BackgroundObjects"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2] ), "class", u"Master_Slide"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2] ), "class", u"BackgroundObjects"); // Slide Name Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[6] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[6]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageName"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[6] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[6]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageName"); // Slide Number Field - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[7] ), "class", u"TextShape"); - assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[10]/SVG_G[2]/SVG_G[2]/SVG_G[7]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageNumber"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[7] ), "class", u"TextShape"); + assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_DEFS[9]/SVG_G[2]/SVG_G[2]/SVG_G[7]/SVG_G/SVG_TEXT/SVG_TSPAN/SVG_TSPAN/SVG_TSPAN ), "class", u"PlaceholderText PageNumber"); } CPPUNIT_TEST_SUITE(SdSVGFilterTest); diff --git a/sd/qa/unit/data/pptx/onemaster-twolayouts.pptx b/sd/qa/unit/data/pptx/onemaster-twolayouts.pptx Binary files differnew file mode 100644 index 000000000000..f27260f2e583 --- /dev/null +++ b/sd/qa/unit/data/pptx/onemaster-twolayouts.pptx diff --git a/sd/qa/unit/data/pptx/tdf164622.pptx b/sd/qa/unit/data/pptx/tdf164622.pptx Binary files differnew file mode 100644 index 000000000000..2f766518cc11 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf164622.pptx diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 892ce86f231a..d84abbd28e79 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -1316,7 +1316,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf106867) "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/" "p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:cmd/" "p:cBhvr/p:tgtEl/p:spTgt", - "spid", u"67"); + "spid", u"59"); } CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf112280) @@ -1695,7 +1695,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testAccentColor) xmlDocUniquePtr pXmlDocTheme1 = parseExport(u"ppt/theme/theme1.xml"_ustr); assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", u"70ad47"); - xmlDocUniquePtr pXmlDocTheme2 = parseExport(u"ppt/theme/theme12.xml"_ustr); + xmlDocUniquePtr pXmlDocTheme2 = parseExport(u"ppt/theme/theme2.xml"_ustr); assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", u"deb340"); @@ -1889,10 +1889,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf59323_slideFooters) } // Test placeholder indexes - xmlDocUniquePtr pXmlDocMaster = parseExport(u"ppt/slideMasters/slideMaster1.xml"_ustr); - assertXPath(pXmlDocMaster, "//p:ph [@type='dt']", "idx", u"1"); - assertXPath(pXmlDocMaster, "//p:ph [@type='ftr']", "idx", u"2"); - assertXPath(pXmlDocMaster, "//p:ph [@type='sldNum']", "idx", u"3"); + xmlDocUniquePtr pXmlDocLayout = parseExport(u"ppt/slideLayouts/slideLayout1.xml"_ustr); + assertXPath(pXmlDocLayout, "//p:ph [@type='dt']", "idx", u"1"); + assertXPath(pXmlDocLayout, "//p:ph [@type='ftr']", "idx", u"2"); + assertXPath(pXmlDocLayout, "//p:ph [@type='sldNum']", "idx", u"3"); xmlDocUniquePtr pXmlDocSlide1 = parseExport(u"ppt/slides/slide1.xml"_ustr); assertXPath(pXmlDocSlide1, "//p:ph [@type='dt']", "idx", u"1"); diff --git a/sd/qa/unit/export-tests-ooxml4.cxx b/sd/qa/unit/export-tests-ooxml4.cxx index 5c8085911303..74862adca919 100644 --- a/sd/qa/unit/export-tests-ooxml4.cxx +++ b/sd/qa/unit/export-tests-ooxml4.cxx @@ -1153,15 +1153,12 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf157740_slideMasters) createSdImpressDoc("pptx/tdf157740.pptx"); saveAndReload(u"Impress Office Open XML"_ustr); - // Test how many slidemaster we have + // The original file has 1 slide master and 7 slide layouts in that master xmlDocUniquePtr pXmlDocContent = parseExport(u"ppt/presentation.xml"_ustr); - assertXPath(pXmlDocContent, "/p:presentation/p:sldMasterIdLst/p:sldMasterId", 7); + assertXPath(pXmlDocContent, "/p:presentation/p:sldMasterIdLst/p:sldMasterId", 1); pXmlDocContent = parseExport(u"ppt/slideMasters/slideMaster1.xml"_ustr); - assertXPath(pXmlDocContent, "/p:sldMaster/p:sldLayoutIdLst/p:sldLayoutId", 1); - - pXmlDocContent = parseExport(u"ppt/slideMasters/slideMaster7.xml"_ustr); - assertXPath(pXmlDocContent, "/p:sldMaster/p:sldLayoutIdLst/p:sldLayoutId", 1); + assertXPath(pXmlDocContent, "/p:sldMaster/p:sldLayoutIdLst/p:sldLayoutId", 7); } CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf159931_slideLayouts) @@ -1277,6 +1274,43 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testPlaceHolderFitHeightToText) CPPUNIT_ASSERT_MESSAGE("PlaceHolder Fit height to text should be true.", bTextAutoGrowHeight); } +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testDeduplicateMasters) +{ + createSdImpressDoc("pptx/onemaster-twolayouts.pptx"); + saveAndReload("Impress Office Open XML"); + + // Check that the document still has one master and two layouts + xmlDocUniquePtr pXmlDocContent = parseExport("ppt/presentation.xml"); + assertXPath(pXmlDocContent, "/p:presentation/p:sldMasterIdLst/p:sldMasterId"_ostr, 1); + pXmlDocContent = parseExport("ppt/slideMasters/slideMaster1.xml"); + assertXPath(pXmlDocContent, "/p:sldMaster/p:sldLayoutIdLst/p:sldLayoutId"_ostr, 2); + + // Check that both background colors have been preserved + uno::Reference<drawing::XMasterPagesSupplier> xDoc(mxComponent, uno::UNO_QUERY); + CPPUNIT_ASSERT(xDoc.is()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xDoc->getMasterPages()->getCount()); + + uno::Reference<drawing::XDrawPage> xPage(xDoc->getMasterPages()->getByIndex(0), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet(xPage, uno::UNO_QUERY); + uno::Any aAny = xPropSet->getPropertyValue("Background"); + CPPUNIT_ASSERT(aAny.hasValue()); + uno::Reference<beans::XPropertySet> aXBackgroundPropSet; + aAny >>= aXBackgroundPropSet; + Color nColor; + CPPUNIT_ASSERT(aXBackgroundPropSet->getPropertyValue("FillColor") >>= nColor); + CPPUNIT_ASSERT_EQUAL(Color(0x0E2841), nColor); + + uno::Reference<drawing::XDrawPage> xPage1(xDoc->getMasterPages()->getByIndex(1), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet1(xPage1, uno::UNO_QUERY); + aAny = xPropSet1->getPropertyValue("Background"); + CPPUNIT_ASSERT(aAny.hasValue()); + aAny >>= aXBackgroundPropSet; + CPPUNIT_ASSERT(aXBackgroundPropSet->getPropertyValue("FillColor") >>= nColor); + CPPUNIT_ASSERT_EQUAL(Color(0x000000), nColor); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/qa/unit/layout-tests.cxx b/sd/qa/unit/layout-tests.cxx index 57baf576c8c5..6fae40d135c7 100644 --- a/sd/qa/unit/layout-tests.cxx +++ b/sd/qa/unit/layout-tests.cxx @@ -424,6 +424,40 @@ CPPUNIT_TEST_FIXTURE(SdLayoutTest, testTdf152906_AdjustToContour) } } +CPPUNIT_TEST_FIXTURE(SdLayoutTest, testTdf164622) +{ + xmlDocUniquePtr pXmlDoc = load("pptx/tdf164622.pptx"); + + // Without the fix, the test fails with: + // - Expected: 8998 + // - Actual : 892 + // - In <>, attribute 'y' of '/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[4]' + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[1]", + "x", u"7556"); + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[1]", + "y", u"892"); + + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[2]", + "x", u"20440"); + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[2]", + "y", u"892"); + + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[3]", + "x", u"20440"); + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[3]", + "y", u"8998"); + + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[4]", + "x", u"7556"); + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[4]", + "y", u"8998"); + + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[5]", + "x", u"7556"); + assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[2]/push[1]/clipregion/polygon/point[5]", + "y", u"892"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/qa/unit/tiledrendering/data/signature.pkcs7 b/sd/qa/unit/tiledrendering/data/signature.pkcs7 new file mode 100644 index 000000000000..08f32ab26381 --- /dev/null +++ b/sd/qa/unit/tiledrendering/data/signature.pkcs7 @@ -0,0 +1 @@ +MIIXHQYJKoZIhvcNAQcCoIIXDjCCFwoCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGgggi6MIIItjCCBp6gAwIBAgIQKT8xXQtrkMJh1ADcWkpJpzANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEXMBUGA1UEYQwOTlRSRUUtMTA3NDcwMTMxHDAaBgNVBAMME1RFU1Qgb2YgRUlELVNLIDIwMTYwHhcNMjIwMTA0MDgxMDA0WhcNMjIwMzA1MDgxMDA0WjB5MQswCQYDVQQGEwJFRTEhMB8GA1UEAwwYVEVTVE5VTUJFUixRVUFMSUZJRUQgT0sxMRMwEQYDVQQEDApURVNUTlVNQkVSMRYwFAYDVQQqDA1RVUFMSUZJRUQgT0sxMRowGAYDVQQFExFQTk9FRS0zMDMwMzAzOTkxNDCCAyIwDQYJKoZIhvcNAQEBBQADggMPADCCAwoCggMBAJMbd5Dk4EBs9LBvYnzgp9PgEIpEoY4VwArRwy4rVyJDNgjpdAIjIx3MvX+nxeHzDuyYSUhCJ5q8Vt66rZEYKAf22O329Ypxoai4zmudkNXPVOFMxNgAvvJa8dBuENG0pwN+SadwpBJoAWMX+RY4QuvIFkeVvAQWxupHoiwZ4YpOn6JdU+w5hxp4+E/VpQuxMlLSvkTewyZYAkemcbezu4qhf8Sute9uDAFancYlkS5eaQJtSI7bbZVw9hSku+iOyOpPIb24cOsKK0bMm5+z/St05MTFPZN6n6PrrOujnipX2FM82JbhJAr9MdW0MJyK8vcLT2wM0Rgy5qosK3o+Fp0OKK4i0+ZCZOVKMGJvwsBfimxmxEZLYWgi69mvn4aZ1OD2PN9sV6VBpRCHAOO270hYlzax2xB8WT20soxMQ4lcrOzODDNtnCXSq9dvALOmKCMVWMtbw51OqzjTsuu7chlq+2qSke508uxREwLGf/dY8yhX8CuAxmNyAfYj0gEyHlEaIR59v+x5XIXAXDgu8dv45k245G92aEAGpmaUxUupPUbIgQKJcC2m9oHpAfVhdDl/eQHW/qKH35+nI6Av/2MUQqeDzWv0GB03kU+GfLwN4TDyDys4RvysooLW3u+mPRKV9LOM3xq7Bv6st1lbctnHPm9LpMg/YFtN8XuXtMCXmiQoJ93QzsQj47JARP3L/ZLanpqiJsBxOG4RwjS86Yh4hbxnpvxPkCVLPxhx55dYKJgeRR4RfCK3tu7vQFGbilkWkFRBFZ2+L2TPMUBod/YczoLq0dwGKprxbwWz6ZIL5NdnPV9G1z2FoRTdRa3Twy2Wi7kJqGfZnLqcUEqac3FyQEicki1OqNa9yHZGIIo/xUOkkwTDgWFzfQIfZe7zlQWIxcJ7abpZqaoPh4UwE2uXRuocCst09LOrHTrkm6hGQ8jXTAbOvXeJmpO1XoIPArVytVedT79w023JS7I/LFhqhY6Q2nesLlenEjc+RITOXzNGFrG79W7kAE2A9MTlBQIDAQABo4ICSTCCAkUwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCBkAwXQYDVR0gBFYwVDBHBgorBgEEAc4fAxECMDkwNwYIKwYBBQUHAgEWK2h0dHBzOi8vc2tpZHNvbHV0aW9ucy5ldS9lbi9yZXBvc2l0b3J5L0NQUy8wCQYHBACL7EABAjAdBgNVHQ4EFgQUrGpIHh5j7ToTPUGGRLCGraHXfwAwga4GCCsGAQUFBwEDBIGhMIGeMAgGBgQAjkYBATAVBggrBgEFBQcLAjAJBgcEAIvsSQEBMBMGBgQAjkYBBjAJBgcEAI5GAQYBMFwGBgQAjkYBBTBSMFAWSmh0dHBzOi8vc2tpZHNvbHV0aW9ucy5ldS9lbi9yZXBvc2l0b3J5L2NvbmRpdGlvbnMtZm9yLXVzZS1vZi1jZXJ0aWZpY2F0ZXMvEwJFTjAIBgYEAI5GAQQwHwYDVR0jBBgwFoAUrrDq4Tb4JqulzAtmVf46HQK/ErQwfAYIKwYBBQUHAQEEcDBuMCkGCCsGAQUFBzABhh1odHRwOi8vYWlhLmRlbW8uc2suZWUvZWlkMjAxNjBBBggrBgEFBQcwAoY1aHR0cDovL3NrLmVlL3VwbG9hZC9maWxlcy9URVNUX29mX0VJRC1TS18yMDE2LmRlci5jcnQwMAYDVR0RBCkwJ6QlMCMxITAfBgNVBAMMGFBOT0VFLTMwMzAzMDM5OTE0LUQ5NjEtUTAoBgNVHQkEITAfMB0GCCsGAQUFBwkBMREYDzE5MDMwMzAzMTIwMDAwWjANBgkqhkiG9w0BAQsFAAOCAgEAm7bRqvofxB+Oqi5wgqCW86WQPH8voXt30BhyWcYb4w0XsEuJ8+wIXTXL0dXXQTGGA7xMuOaMHCoG7LcI1Od50njxJGWa8sN5v68rymL00RINO8zuBfIC2o9EHdIsXwamGh1KejZ4fJrf9uIaq358ilkAKH4I4yeXul4QCfaNOoNPqCGJDTbZuguLCl+6jG2D7+K+qDLAu3wS+h5WM+IHyaX4HBa2fbdsg91Lrzl3nx7lVzyVccERfJGciDOco50+Wdb5emKmpHcBwJEoGvxX4Suyt5nb9iosBO3wSAbI+poZVB/ooXWbPRrs8FSXzOcIuT6NCDKzD8wVgmZXYPEvlWWP2ZW5wYBcU1iSm3KCeyiCKIBz6dnNxGZfNJI513kbogmtDOaCahSmQ8E93e9AXDKZ33BWTQRhgYenzy0UNUglfiv83OzMDL9rOK25/E8l2uCQuVGAAr3nfxCKSI9n8ZC8+eFv6V9ny+ELpANRzDQAb3CD4SSKNEJxpHiziseGc0GZ5rMpxDpmd/8TZe73KfDehRf1Lkj0rcmLjnXER+tmgF2zGVZFVOa5uh6r8GaU1RYyhBoWrLVZHSPt1ft0i/YIF4/1ozE5uv33ctvg8NQSXPLl17ExkmgSppcmawsT5tHxhoQP9gnCskJPVPCBOtGfnLz3xZutVX375Q0BDWMxgg4nMIIOIwIBATB8MGgxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRcwFQYDVQRhDA5OVFJFRS0xMDc0NzAxMzEcMBoGA1UEAwwTVEVTVCBvZiBFSUQtU0sgMjAxNgIQKT8xXQtrkMJh1ADcWkpJpzANBglghkgBZQMEAgEFAKCCAVkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjIwMTI2MTMwMzEzWjAtBgkqhkiG9w0BCTQxIDAeMA0GCWCGSAFlAwQCAQUAoQ0GCSqGSIb3DQEBCwUAMC8GCSqGSIb3DQEJBDEiBCA0CukzCt7KFFW++HYnMoF7T7ZTXF6jh+M8aDZ8sHGPiTCBvgYLKoZIhvcNAQkQAi8xga4wgaswgagwgaUEIDGSdRQe3CaubrgFRhRJ7/g0NkHTlsGjGZE99HGNsOj8MIGAMGykajBoMQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEXMBUGA1UEYQwOTlRSRUUtMTA3NDcwMTMxHDAaBgNVBAMME1RFU1Qgb2YgRUlELVNLIDIwMTYCECk/MV0La5DCYdQA3FpKSacwDQYJKoZIhvcNAQELBQAEggMAElli4hile9eusL3HygsOudCf5Dm/QjTT01xDecGX02VGjxSkGDdFYhLM/MMe4iGGXzJGJOiYtKA1Cif+XOeW4+lxNSrDQSHLsJls5RTQoxr6BRM3wzNwZXpXXYS3/3MAI0GEFawquq7W1YxBQ4485OBhYkE7igKEAnM6NkoKiyuZIAJgAuLPwCaGFf2X7Ddv6x/DnI7k34F6qXdYchxOUX4xUef8NlE027XjOuUxj4rduXqk4ars/XbYBtqINsDKhnfV4NSo0nIZnFY6JM9OsdKgSnrfY4KE2k3shedXUcpFUARLquUUMyEbGElUTGd8VBmguv0cgTIfEmmL6H3GP69INshq7sdIAEWT6KFuijarNs10j2etYvYPJ5Rh8m1iFi3UdCSmK19DVoB8fO7Wx3czR/uZ5UWTCoAGz3JlS+mpbwTil4meA1Cmz//BdyQWPQ3qas4CIDfuZnpyTPavN9aiTE7gt939fcjFtZcbMuElgD9zvnslEBgffDqvesjQNpFY7RaEhDDJXEsm/ORZM9rQBbvO5ey7slSof6k2FpWmXP4ZW5Yq7t/kofDUzdjEJo8ylETh4+nYqwVIuzzzdVdwsMsbPz01kPtkSILbShzNrwdXMU/rHbyPmWo3w6R0pP9M2OIVhw85h2lU8BqpCdJjyukkALOpQtt1apGbhHjkT7S92dyqC4MvPldxa5fAKMX8gU9kD08AmiWi47IFn7Y0NTbMp47qYQU6oAd5AbLcRsGDbNXfVt/0p/u95Z0F7i0XPpojh136HCkY6u0WkTqbGLZ23hBC/RO78xTkjk38CsqKW41Kh1KnNiRaJxbeLbCgk81jlqO4XuRlcye4Vkay1xgzi9ZApMbCtnjUYCMmmveRoTdsK5vcg4XVl8Lvfw25SKQcK3WD9bzaqPcxS4hUhZkWUkq+dlOCh/t9XERK3tNTMiq8u03BZImFelV0Cll2ySdq66yvjzct52xOWzjp3CWESeMPUZs/cZNJlGG6DiuCrAOYbcG0HOLsQ9PgoYIJHzCCCRsGCyqGSIb3DQEJEAIOMYIJCjCCCQYGCSqGSIb3DQEHAqCCCPcwggjzAgEDMQ8wDQYJYIZIAWUDBAIDBQAwgfsGCyqGSIb3DQEJEAEEoIHrBIHoMIHlAgEBBgYEAI9nAQEwMTANBglghkgBZQMEAgEFAAQg+jlLzyIISNNoLI1JRGB4CmWLPJPO87AyvhQaCaSYimgCCFXOBGhLomCpGA8yMDIyMDEyNjEzMDMyNVowAwIBAaCBhKSBgTB/MSwwKgYDVQQDDCNERU1PIFNLIFRJTUVTVEFNUElORyBBVVRIT1JJVFkgMjAyMDEXMBUGA1UEYQwOTlRSRUUtMTA3NDcwMTMxDDAKBgNVBAsMA1RTQTEbMBkGA1UECgwSU0sgSUQgU29sdXRpb25zIEFTMQswCQYDVQQGEwJFRaCCBIcwggSDMIIDa6ADAgECAhBwbMmxhHhAuV+35Lvez9Z9MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMTAwLgYDVQQDDCdURVNUIG9mIEVFIENlcnRpZmljYXRpb24gQ2VudHJlIFJvb3QgQ0ExGDAWBgkqhkiG9w0BCQEWCXBraUBzay5lZTAeFw0yMDExMzAyMTAwMDBaFw0yNTExMzAyMTAwMDBaMH8xLDAqBgNVBAMMI0RFTU8gU0sgVElNRVNUQU1QSU5HIEFVVEhPUklUWSAyMDIwMRcwFQYDVQRhDA5OVFJFRS0xMDc0NzAxMzEMMAoGA1UECwwDVFNBMRswGQYDVQQKDBJTSyBJRCBTb2x1dGlvbnMgQVMxCzAJBgNVBAYTAkVFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzPzJMdDKnyDPI+cq38JCD7Ttz+iAOXhXVKbIUY9P6VBphm9cgo01nImXMgj682eyiTqEhG8Bfl98Nmzx2R412jxA65DzVBsufkklPZW5Kmm+meqkUKIv65ZjT+efA2bKIO54yRQMMlq9tI8KRbCZb5pBkI0Z36StJMv/M0cJ863twBUNAAv0LhR7uiW58hmgMJOpEDTRLxsZtNA/JNLy5QwS7BZzglhmoS7hzbhsgaFsqgI5JHrRasPpwGhlcuWrANtZ2RflIuMn11MLEZb6kumcBbH4qoljceQOJJkJPjolc5qhXOZwXHeXt6pB+paCTNFmz1Mm+pBItD6+BIA5EQIDAQABo4H8MIH5MA4GA1UdDwEB/wQEAwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUny/f+s2zqMrSXcHHJVKLENgQ4kcwHwYDVR0jBBgwFoAUtTQKnaUvEMXnIQ6+xLFlRxsDdv4wgY4GCCsGAQUFBwEBBIGBMH8wIQYIKwYBBQUHMAGGFWh0dHA6Ly9kZW1vLnNrLmVlL2FpYTBaBggrBgEFBQcwAoZOaHR0cHM6Ly93d3cuc2suZWUvdXBsb2FkL2ZpbGVzL1RFU1Rfb2ZfRUVfQ2VydGlmaWNhdGlvbl9DZW50cmVfUm9vdF9DQS5kZXIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBZaRAoBsQBPvufwvjaDDmqXsE7V92ZSBElFHBYv1Wj2XVznSWqJ5HwxROgXjCkXoPQ8lTH0UNwovR9tREVNG4RMKAZ6RiYKMxtVAKK/pbfy8ywh0ksFaOjahPYCO0nZVqTCSvPNLE5IGsXm7SE+wCQ/RWQGGZbUTQMd+bUG2LbGTm306wkwmp9NOXy/UdeS2WfGLpZ1TMsFxJ2ScV48OdJihPfE587PUiUHdNrvb1uCCUCNUEShbKspfiRONk8KHGx4ye1dpb+k34CCbddr2GeJd0rgpqbNfx3wsn6o5vGZz1NeaSxtZlW6nSS18lhYgcLBmOZC6QB53+khfxRXc33MYIDUjCCA04CAQEwgZEwfTELMAkGA1UEBhMCRUUxIjAgBgNVBAoMGUFTIFNlcnRpZml0c2VlcmltaXNrZXNrdXMxMDAuBgNVBAMMJ1RFU1Qgb2YgRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlAhBwbMmxhHhAuV+35Lvez9Z9MA0GCWCGSAFlAwQCAwUAoIIBkTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIyMDEyNjEzMDMyNVowLQYJKoZIhvcNAQk0MSAwHjANBglghkgBZQMEAgMFAKENBgkqhkiG9w0BAQ0FADBPBgkqhkiG9w0BCQQxQgRAuwhbeVt2wwt7rdk3ZpZ97+GUu6IoWzmJbhPR4GxNJxtlympzUsHMCTHoL3ygIW6lptVjMjZQB0kHpv9XXpRngTCB1AYLKoZIhvcNAQkQAi8xgcQwgcEwgb4wgbsEINvpXX3H+UgVZmiIig9uhuNkui/MBODK8ne4sP9TXI0oMIGWMIGBpH8wfTELMAkGA1UEBhMCRUUxIjAgBgNVBAoMGUFTIFNlcnRpZml0c2VlcmltaXNrZXNrdXMxMDAuBgNVBAMMJ1RFU1Qgb2YgRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlAhBwbMmxhHhAuV+35Lvez9Z9MA0GCSqGSIb3DQEBDQUABIIBAJLJ52A9dfTWw1tD6vpSNf6AX6SZliaSIeE63bF2/XvdlosY9/h4MLNj4x+pI0dOqtZhVIGVw9OLnOliivmnVnf3nyuwgqFltp88aMjgYTv5Mufj5A+tPnlz/wU6fQKLh/m7McQRVJiOa11Ul7Cs++hmnmRicf0MtACXeQ+V5PPdbPMRVfrQjZkKGrXdgiqrYgC6fIC45D2Zy47vMeRR3SWfE4QRrCCpZ8wXZrjzBM9Ahczrv012Z5+j7D3M2bT5vOeEkcLS4myJ5K7nlzZZ3m5bINuBjuE9f5xQlYeWPXabSZW0sY8VL57rgR6spRfMiPpnswYZiMt4/uNDSZC6a1s= diff --git a/sd/qa/unit/tiledrendering/tiledrendering2.cxx b/sd/qa/unit/tiledrendering/tiledrendering2.cxx index 53b174a8684e..2ad35487e9b1 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering2.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering2.cxx @@ -13,6 +13,7 @@ #include <vcl/scheduler.hxx> #include <comphelper/propertyvalue.hxx> #include <comphelper/sequenceashashmap.hxx> +#include <svl/cryptosign.hxx> #include <DrawDocShell.hxx> #include <ViewShell.hxx> @@ -61,6 +62,8 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testInsertSignatureLineExternal) // Without the accompanying fix in place, this test would hang here in the certificate chooser // dialog. dispatchCommand(mxComponent, ".uno:InsertSignatureLine", aArgs); + // Signature line is selected right after inserting: + CPPUNIT_ASSERT(pViewShell->GetViewShell()->GetSignPDFCertificate().Is()); // Then make sure the shape is marked as a signature line: std::vector<SdrObject*> aMarkedObjects = pView->GetMarkedObjects(); @@ -91,6 +94,19 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testInsertSignatureLineExternal) bSignature = aProps.get<bool>("isSignature"); } CPPUNIT_ASSERT(bSignature); + + // Make sure there is no leaked selection after signing is finished: + OUString aSigUrl = createFileURL(u"signature.pkcs7"); + SvFileStream aSigStream(aSigUrl, StreamMode::READ); + auto aSigValue + = OUString::fromUtf8(read_uInt8s_ToOString(aSigStream, aSigStream.remainingSize())); + aArgs = { + comphelper::makePropertyValue(u"SignatureTime"_ustr, u"1643201995722"_ustr), + comphelper::makePropertyValue(u"SignatureValue"_ustr, aSigValue), + }; + dispatchCommand(mxComponent, u".uno:Signature"_ustr, aArgs); + // Signature line is not selected after finishing signing: + CPPUNIT_ASSERT(!pViewShell->GetViewShell()->GetSignPDFCertificate().Is()); } CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx index 8ecda5046c51..23a41e8df5cf 100644 --- a/sd/source/core/stlpool.cxx +++ b/sd/source/core/stlpool.cxx @@ -213,18 +213,10 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName, { bCreated = true; - OUString sParentStyleSheetName; - // if we created outline styles, we need to chain them - if (nLevel > 1) - { - OUString aPreviousLevelName( aPrefix + aName + " " + OUString::number( nLevel-1 ) ); - SfxStyleSheetBase* pParent = Find(aPreviousLevelName, SfxStyleFamily::Page); - if (pParent) - sParentStyleSheetName = pParent->GetName(); - } - - pSheet = &Make(aLevelName, SfxStyleFamily::Page, nUsedMask, sParentStyleSheetName); + pSheet = &Make(aLevelName, SfxStyleFamily::Page,nUsedMask); pSheet->SetHelpId( aHelpFile, HID_PSEUDOSHEET_OUTLINE + nLevel ); + pSheet->SetParent( OUString() ); + // attributing for level 1, the others levels inherit if (nLevel == 1) @@ -307,6 +299,24 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName, } } + // if we created outline styles, we need to chain them + if( bCreated ) + { + SfxStyleSheetBase* pParent = nullptr; + for (sal_Int32 nLevel = 1; nLevel < 10; nLevel++) + { + OUString aLevelName( aPrefix + aName + " " + OUString::number( nLevel ) ); + pSheet = Find(aLevelName, SfxStyleFamily::Page); + DBG_ASSERT( pSheet, "missing layout style!"); + if( pSheet ) + { + if (pParent) + pSheet->SetParent(pParent->GetName()); + pParent = pSheet; + } + } + } + /************************************************************************** * Title **************************************************************************/ diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx index 8fcc2cbd1440..c4b5dfe92046 100644 --- a/sd/source/core/stlsheet.cxx +++ b/sd/source/core/stlsheet.cxx @@ -218,14 +218,14 @@ SfxItemSet& SdStyleSheet::GetItemSet() // we create the ItemSet 'on demand' if necessary if (!pSet) { - pSet = new SfxItemSetFixed< - XATTR_LINE_FIRST, XATTR_LINE_LAST, - XATTR_FILL_FIRST, XATTR_FILL_LAST, - SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, - SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, - SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, - SDRATTR_3D_FIRST, SDRATTR_3D_LAST, - EE_PARA_START, EE_CHAR_END>(GetPool()->GetPool()); + pSet = new SfxItemSet(GetPool()->GetPool(), WhichRangesContainer(svl::Items< + XATTR_LINE_FIRST, XATTR_LINE_LAST, + XATTR_FILL_FIRST, XATTR_FILL_LAST, + SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, + SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, + SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, + SDRATTR_3D_FIRST, SDRATTR_3D_LAST, + EE_PARA_START, EE_CHAR_END>)); bMySet = true; } @@ -236,15 +236,14 @@ SfxItemSet& SdStyleSheet::GetItemSet() { if (!pSet) { - pSet = new SfxItemSetFixed< - XATTR_LINE_FIRST, XATTR_LINE_LAST, - XATTR_FILL_FIRST, XATTR_FILL_LAST, - SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, - SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_XMLATTRIBUTES, - SDRATTR_TEXT_WORDWRAP, SDRATTR_TEXT_WORDWRAP, - SDRATTR_TABLE_FIRST, SDRATTR_TABLE_LAST, - EE_PARA_START, EE_CHAR_END>(GetPool()->GetPool()); - + pSet = new SfxItemSet(GetPool()->GetPool(), WhichRangesContainer(svl::Items< + XATTR_LINE_FIRST, XATTR_LINE_LAST, + XATTR_FILL_FIRST, XATTR_FILL_LAST, + SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, + SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_XMLATTRIBUTES, + SDRATTR_TEXT_WORDWRAP, SDRATTR_TEXT_WORDWRAP, + SDRATTR_TABLE_FIRST, SDRATTR_TABLE_LAST, + EE_PARA_START, EE_CHAR_END>)); bMySet = true; } @@ -266,14 +265,14 @@ SfxItemSet& SdStyleSheet::GetItemSet() { if (!pSet) { - pSet = new SfxItemSetFixed< - XATTR_LINE_FIRST, XATTR_LINE_LAST, - XATTR_FILL_FIRST, XATTR_FILL_LAST, - SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, - SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, - SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, - SDRATTR_3D_FIRST, SDRATTR_3D_LAST, - EE_PARA_START, EE_CHAR_END>(GetPool()->GetPool()); + pSet = new SfxItemSet(GetPool()->GetPool(), WhichRangesContainer(svl::Items< + XATTR_LINE_FIRST, XATTR_LINE_LAST, + XATTR_FILL_FIRST, XATTR_FILL_LAST, + SDRATTR_SHADOW_FIRST, SDRATTR_SHADOW_LAST, + SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_WORDWRAP, + SDRATTR_EDGE_FIRST, SDRATTR_MEASURE_LAST, + SDRATTR_3D_FIRST, SDRATTR_3D_LAST, + EE_PARA_START, EE_CHAR_END>)); bMySet = true; } diff --git a/sd/source/filter/eppt/epptooxml.hxx b/sd/source/filter/eppt/epptooxml.hxx index f8e4eea812cf..c44dc8fcfe1e 100644 --- a/sd/source/filter/eppt/epptooxml.hxx +++ b/sd/source/filter/eppt/epptooxml.hxx @@ -90,6 +90,9 @@ private: virtual void ImplWriteNotes( sal_uInt32 nPageNum ) override; virtual void ImplWriteSlideMaster( sal_uInt32 nPageNum, css::uno::Reference< css::beans::XPropertySet > const & aXBackgroundPropSet ) override; void ImplWritePPTXLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum, const OUString& aSlideName ); + void ImplWritePPTXLayoutWithContent( + sal_Int32 nOffset, sal_uInt32 nMasterNum, const OUString& aSlideName, + css::uno::Reference<css::beans::XPropertySet> const& aXBackgroundPropSet); static void WriteDefaultColorSchemes(const FSHelperPtr& pFS); void WriteTheme( sal_Int32 nThemeNum, model::Theme* pTheme ); @@ -131,6 +134,9 @@ private: css::uno::Reference<css::drawing::XShape> GetReferencedPlaceholderXShape(const PlaceholderType eType, PageType ePageType) const; void WritePlaceholderReferenceShapes(PowerPointShapeExport& rDML, PageType ePageType); + void FindEquivalentMasterPages(); + sal_uInt32 GetEquivalentMasterPage(sal_uInt32 nMasterPage); + /// Should we export as .pptm, ie. do we contain macros? bool mbPptm; @@ -140,6 +146,10 @@ private: ::sax_fastparser::FSHelperPtr mPresentationFS; LayoutInfo mLayoutInfo[OOXML_LAYOUT_SIZE]; + // Pairs of masters and layouts as used by Impress + std::vector<std::pair<SdrPage*, sal_Int32>> maMastersLayouts; + // For each Impress master, which master will represent it on the exported file (SAL_MAX_UINT32 if not in an equivalency group) + std::vector<sal_uInt32> maEquivalentMasters; std::unique_ptr<SvtSecurityMapPersonalInfo> mpAuthorIDs; // map authors to remove personal info std::vector< ::sax_fastparser::FSHelperPtr > mpSlidesFSArray; sal_Int32 mnLayoutFileIdMax; @@ -147,6 +157,7 @@ private: sal_uInt32 mnSlideIdMax; sal_uInt32 mnSlideMasterIdMax; sal_uInt32 mnAnimationNodeIdMax; + sal_uInt32 mnThemeIdMax; sal_uInt32 mnDiagramId; diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index 01174b023902..d362ae97167f 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -25,6 +25,8 @@ #include <oox/ole/vbaproject.hxx> #include "epptooxml.hxx" #include <oox/export/shapes.hxx> +#include <svx/svdlayer.hxx> +#include <unokywds.hxx> #include <comphelper/sequenceashashmap.hxx> #include <comphelper/storagehelper.hxx> @@ -41,6 +43,8 @@ #include <com/sun/star/drawing/FillStyle.hpp> #include <com/sun/star/drawing/XDrawPages.hpp> #include <com/sun/star/drawing/XDrawPagesSupplier.hpp> +#include <com/sun/star/drawing/XMasterPageTarget.hpp> +#include <com/sun/star/drawing/XMasterPagesSupplier.hpp> #include <com/sun/star/embed/ElementModes.hpp> #include <com/sun/star/geometry/RealPoint2D.hpp> #include <com/sun/star/office/XAnnotationEnumeration.hpp> @@ -348,6 +352,7 @@ PowerPointExport::PowerPointExport(const Reference< XComponentContext >& rContex , mnSlideIdMax(1 << 8) , mnSlideMasterIdMax(1U << 31) , mnAnimationNodeIdMax(1) + , mnThemeIdMax(0) , mnDiagramId(1) , mbCreateNotes(false) , mnPlaceholderIndexMax(1) @@ -1449,10 +1454,139 @@ void PowerPointExport::AddLayoutIdAndRelation(const FSHelperPtr& pFS, sal_Int32 FSNS(XML_r, XML_id), sRelId); } +static bool lcl_ContainsEquivalentObject(SdrPage* pPage, SdrObject* pObj) +{ + bool bFound = false; + + if (!pPage || !pObj) + return bFound; + + for (size_t nObj = 0; nObj < pPage->GetObjCount(); ++nObj) + { + SdrObject* pObjNext = pPage->GetObj(nObj); + if (pObjNext && pObjNext->GetMergedItemSet().Equals(pObj->GetMergedItemSet(), false)) + { + bFound = true; + break; + } + } + + return bFound; +} + +static bool lcl_ComparePageObjects(SdrPage* pMasterPage, SdrPage* pMasterNext) +{ + if (!pMasterPage || !pMasterNext) + return false; + + SdrObject* pObjNext; + SdrLayerID aLayer = pMasterNext->GetLayerAdmin().GetLayerID(sUNO_LayerName_background_objects); + + for (size_t nObj = 0; nObj < pMasterPage->GetObjCount(); ++nObj) + { + pObjNext = pMasterPage->GetObj(nObj); + if (!pObjNext || pObjNext->GetLayer() == aLayer) + continue; + + if (!lcl_ContainsEquivalentObject(pMasterNext, pObjNext)) + return false; + } + + // No differences found + return true; +} + +static bool lcl_ComparePageProperties(SdrPage* pMasterPage, SdrPage* pMasterNext) +{ + if (!pMasterPage || !pMasterNext) + return false; + + SdrPageProperties& rProperties = pMasterPage->getSdrPageProperties(); + SdrPageProperties& rNextProperties = pMasterNext->getSdrPageProperties(); + + return rProperties.GetItemSet().Equals(rNextProperties.GetItemSet(), false) + && rProperties.getTheme().get() == rNextProperties.getTheme().get(); +} + +void PowerPointExport::FindEquivalentMasterPages() +{ + css::uno::Reference<css::drawing::XDrawPages> xDrawPages( + mXMasterPagesSupplier->getMasterPages()); + maMastersLayouts.resize(mnMasterPages); + maEquivalentMasters.resize(mnMasterPages, SAL_MAX_UINT32); + for (sal_uInt32 i = 0; i < mnMasterPages; i++) + { + css::uno::Reference<css::drawing::XDrawPage> xDrawPage; + uno::Any aAny(xDrawPages->getByIndex(i)); + aAny >>= xDrawPage; + if (!xDrawPage.is()) + continue; + + maMastersLayouts[i] = std::make_pair(SdPage::getImplementation(xDrawPage), -1); + uno::Reference<beans::XPropertySet> xPagePropSet(xDrawPage, uno::UNO_QUERY_THROW); + if (xPagePropSet.is()) + { + uno::Any aLayout = xPagePropSet->getPropertyValue("SlideLayout"); + if (aLayout.hasValue()) + { + aLayout >>= maMastersLayouts[i].second; + } + } + } + + for (sal_uInt32 i = 0; i < mnMasterPages; i++) + { + if (!maMastersLayouts[i].first || maEquivalentMasters[i] != SAL_MAX_UINT32) + continue; + for (sal_uInt32 j = i + 1; j < mnMasterPages; j++) + { + if (!maMastersLayouts[j].first || maEquivalentMasters[j] != SAL_MAX_UINT32) + continue; + + if (lcl_ComparePageProperties(maMastersLayouts[i].first, maMastersLayouts[j].first) + && lcl_ComparePageObjects(maMastersLayouts[i].first, maMastersLayouts[j].first)) + { + // If both masters have the same properties and objects, + // we assume they are the same and only export the first one + maEquivalentMasters[j] = i; + maEquivalentMasters[i] = i; + } + } + } +} + +sal_uInt32 PowerPointExport::GetEquivalentMasterPage(sal_uInt32 nMasterPage) +{ + if (maEquivalentMasters.size() == 0) + FindEquivalentMasterPages(); + return maEquivalentMasters[nMasterPage]; +} + void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPropertySet > const& aXBackgroundPropSet) { SAL_INFO("sd.eppt", "write master slide: " << nPageNum << "\n--------------"); + if (nPageNum != GetEquivalentMasterPage(nPageNum) + && GetEquivalentMasterPage(nPageNum) != SAL_MAX_UINT32) + { + // It's equivalent to an already written master, write only the layout file + if (maMastersLayouts[nPageNum].second != -1) + { + OUString aSlideName; + Reference<XNamed> xNamed(mXDrawPage, UNO_QUERY); + if (xNamed.is()) + aSlideName = xNamed->getName(); + ImplWritePPTXLayoutWithContent(maMastersLayouts[nPageNum].second, nPageNum, aSlideName, + aXBackgroundPropSet); + } + + // Close the list tag if it was the last one + if (nPageNum == mnMasterPages - 1) + mPresentationFS->endElementNS(XML_p, XML_sldMasterIdLst); + + return; + } + // slides list if (nPageNum == 0) mPresentationFS->startElementNS(XML_p, XML_sldMasterIdLst); @@ -1481,20 +1615,29 @@ void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPro } // write theme per master - WriteTheme(nPageNum, pTheme); + WriteTheme(mnThemeIdMax, pTheme); // add implicit relation to the presentation theme - addRelation(pFS->getOutputStream(), - oox::getRelationship(Relationship::THEME), - Concat2View("../theme/theme" + OUString::number(nPageNum + 1) + ".xml")); + addRelation(pFS->getOutputStream(), oox::getRelationship(Relationship::THEME), + Concat2View("../theme/theme" + OUString::number(++mnThemeIdMax) + ".xml")); pFS->startElementNS(XML_p, XML_sldMaster, PNMSS); pFS->startElementNS(XML_p, XML_cSld); - if (aXBackgroundPropSet) - ImplWriteBackground(pFS, aXBackgroundPropSet); - WriteShapeTree(pFS, MASTER, true); + if (GetEquivalentMasterPage(nPageNum) != nPageNum) + { + if (aXBackgroundPropSet) + ImplWriteBackground(pFS, aXBackgroundPropSet); + WriteShapeTree(pFS, MASTER, true); + } + else + { + // Minimal shape tree, the actual one will be written in the layout file. + pFS->startElementNS(XML_p, XML_spTree); + pFS->write(MAIN_GROUP); + pFS->endElementNS(XML_p, XML_spTree); + } pFS->endElementNS(XML_p, XML_cSld); @@ -1611,10 +1754,28 @@ void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPro for (auto nLayout : aLayouts) { - ImplWritePPTXLayout(nLayout, nPageNum, aSlideName); + if (GetEquivalentMasterPage(nPageNum) == nPageNum) + ImplWritePPTXLayoutWithContent(nLayout, nPageNum, aSlideName, aXBackgroundPropSet); + else + ImplWritePPTXLayout(nLayout, nPageNum, aSlideName); AddLayoutIdAndRelation(pFS, GetLayoutFileId(nLayout, nPageNum)); } + // Add layouts of other Impress masters that came from a single pptx master with multiple layouts + for (sal_uInt32 i = 0; i < mnMasterPages; i++) + { + if (i != nPageNum && maEquivalentMasters[i] == nPageNum && maMastersLayouts[i].second != -1) + { + // Reserve layout file Id to be written later + if (mLayoutInfo[maMastersLayouts[i].second].mnFileIdArray.size() < mnMasterPages) + mLayoutInfo[maMastersLayouts[i].second].mnFileIdArray.resize(mnMasterPages); + mLayoutInfo[maMastersLayouts[i].second].mnFileIdArray[i] = mnLayoutFileIdMax; + mnLayoutFileIdMax++; + + AddLayoutIdAndRelation(pFS, GetLayoutFileId(maMastersLayouts[i].second, i)); + } + } + pFS->endElementNS(XML_p, XML_sldLayoutIdLst); pFS->endElementNS(XML_p, XML_sldMaster); @@ -1668,9 +1829,9 @@ void PowerPointExport::ImplWritePPTXLayout(sal_Int32 nOffset, sal_uInt32 nMaster u"application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"_ustr); // add implicit relation of slide layout to slide master - addRelation(pFS->getOutputStream(), - oox::getRelationship(Relationship::SLIDEMASTER), - Concat2View("../slideMasters/slideMaster" + OUString::number(nMasterNum + 1) + ".xml")); + addRelation( + pFS->getOutputStream(), oox::getRelationship(Relationship::SLIDEMASTER), + Concat2View("../slideMasters/slideMaster" + OUString::number(nMasterNum + 1) + ".xml")); pFS->startElementNS(XML_p, XML_sldLayout, PNMSS, @@ -1703,6 +1864,57 @@ void PowerPointExport::ImplWritePPTXLayout(sal_Int32 nOffset, sal_uInt32 nMaster pFS->endDocument(); } +void PowerPointExport::ImplWritePPTXLayoutWithContent( + sal_Int32 nOffset, sal_uInt32 nMasterNum, const OUString& aSlideName, + Reference<XPropertySet> const& aXBackgroundPropSet) +{ + SAL_INFO("sd.eppt", "write layout: " << nOffset); + + if (mLayoutInfo[nOffset].mnFileIdArray.size() < mnMasterPages) + { + mLayoutInfo[nOffset].mnFileIdArray.resize(mnMasterPages); + } + + if (mLayoutInfo[nOffset].mnFileIdArray[nMasterNum] == 0) + { + mLayoutInfo[nOffset].mnFileIdArray[nMasterNum] = mnLayoutFileIdMax; + mnLayoutFileIdMax++; + } + sal_Int32 nLayoutFileId = mLayoutInfo[nOffset].mnFileIdArray[nMasterNum]; + + FSHelperPtr pFS = openFragmentStreamWithSerializer( + "ppt/slideLayouts/slideLayout" + OUString::number(nLayoutFileId) + ".xml", + "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"); + + // add implicit relation of slide layout to slide master + addRelation(pFS->getOutputStream(), oox::getRelationship(Relationship::SLIDEMASTER), + Concat2View("../slideMasters/slideMaster" + + OUString::number(GetEquivalentMasterPage(nMasterNum) + 1) + ".xml")); + + pFS->startElementNS(XML_p, XML_sldLayout, PNMSS, XML_type, aLayoutInfo[nOffset].sType, + XML_preserve, "1"); + + if (!aSlideName.isEmpty()) + { + pFS->startElementNS(XML_p, XML_cSld, XML_name, aSlideName); + } + else + { + pFS->startElementNS(XML_p, XML_cSld, XML_name, aLayoutInfo[nOffset].sName); + } + + if (aXBackgroundPropSet) + ImplWriteBackground(pFS, aXBackgroundPropSet); + + WriteShapeTree(pFS, MASTER, true); + + pFS->endElementNS(XML_p, XML_cSld); + + pFS->endElementNS(XML_p, XML_sldLayout); + + pFS->endDocument(); +} + void PowerPointExport::WriteShapeTree(const FSHelperPtr& pFS, PageType ePageType, bool bMaster) { PowerPointShapeExport aDML(pFS, &maShapeMap, this); @@ -2325,17 +2537,28 @@ Reference<XShape> PowerPointExport::GetReferencedPlaceholderXShape(const Placeho } if (ePresObjKind != PresObjKind::NONE) { - SdPage* pMasterPage; + SdrPage* pPage; if (ePageType == LAYOUT) { // since Layout pages do not have drawpages themselves - mXDrawPage is still the master they reference to.. - pMasterPage = SdPage::getImplementation(mXDrawPage); + pPage = SdPage::getImplementation(mXDrawPage); } else { - pMasterPage = &static_cast<SdPage&>(SdPage::getImplementation(mXDrawPage)->TRG_GetMasterPage()); + pPage = &SdPage::getImplementation(mXDrawPage)->TRG_GetMasterPage(); + } + for (sal_uInt32 i = 0; i < mnMasterPages; i++) + { + if (maMastersLayouts[i].first == pPage) + { + if (maEquivalentMasters[i] < mnMasterPages) + pPage = maMastersLayouts[maEquivalentMasters[i]].first; + break; + } } - if (SdrObject* pMasterFooter = pMasterPage->GetPresObj(ePresObjKind)) + SdPage* pMasterPage = dynamic_cast<SdPage*>(pPage); + if (SdrObject* pMasterFooter + = (pMasterPage ? pMasterPage->GetPresObj(ePresObjKind) : nullptr)) return GetXShapeForSdrObject(pMasterFooter); } return nullptr; diff --git a/sd/source/ui/app/sdmod2.cxx b/sd/source/ui/app/sdmod2.cxx index 52b3f7780844..338b134f2277 100644 --- a/sd/source/ui/app/sdmod2.cxx +++ b/sd/source/ui/app/sdmod2.cxx @@ -456,11 +456,11 @@ std::optional<SfxItemSet> SdModule::CreateItemSet( sal_uInt16 nSlot ) SfxItemPool& rPool = GetPool(); rPool.SetDefaultMetric( MapUnit::Map100thMM ); - SfxItemSetFixed< - SID_ATTR_GRID_OPTIONS, SID_ATTR_GRID_OPTIONS, - SID_ATTR_METRIC, SID_ATTR_METRIC, - SID_ATTR_DEFTABSTOP, SID_ATTR_DEFTABSTOP, - ATTR_OPTIONS_LAYOUT, ATTR_OPTIONS_SCALE_END> aRet(rPool); + SfxItemSet aRet(SfxItemSet::makeFixedSfxItemSet< + SID_ATTR_GRID_OPTIONS, SID_ATTR_GRID_OPTIONS, + SID_ATTR_METRIC, SID_ATTR_METRIC, + SID_ATTR_DEFTABSTOP, SID_ATTR_DEFTABSTOP, + ATTR_OPTIONS_LAYOUT, ATTR_OPTIONS_SCALE_END>(rPool)); sal_uInt16 nDefTab = 0; SvtSysLocale aSysLocale; @@ -674,9 +674,10 @@ void SdModule::ApplyItemSet( sal_uInt16 nSlot, const SfxItemSet& rSet ) bMiscOptions = true; } - SfxItemSetFixed<SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, - SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, - ATTR_OPTIONS_PRINT, ATTR_OPTIONS_PRINT> aPrintSet( GetPool() ); + SfxItemSet aPrintSet(SfxItemSet::makeFixedSfxItemSet< + SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, + SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, + ATTR_OPTIONS_PRINT, ATTR_OPTIONS_PRINT>(GetPool())); // Print const SdOptionsPrintItem* pPrintItem = rSet.GetItemIfSet( ATTR_OPTIONS_PRINT, false); diff --git a/sd/source/ui/dlg/diactrl.cxx b/sd/source/ui/dlg/diactrl.cxx index d0e0a408a1f8..5e1351657eb1 100644 --- a/sd/source/ui/dlg/diactrl.cxx +++ b/sd/source/ui/dlg/diactrl.cxx @@ -30,6 +30,7 @@ #include <strings.hrc> #include <diactrl.hxx> +#include <SlideSorter.hxx> #include <sdresid.hxx> #include <app.hrc> @@ -61,7 +62,7 @@ SdPagesField::SdPagesField( vcl::Window* pParent, // set parameter of MetricFields m_xWidget->set_digits(0); - m_xWidget->set_range(1, 15); + m_xWidget->set_range(1, MAX_PAGES_PER_ROW); m_xWidget->set_increments(1, 5); m_xWidget->connect_value_changed(LINK(this, SdPagesField, ModifyHdl)); m_xWidget->connect_output(LINK(this, SdPagesField, OutputHdl)); diff --git a/sd/source/ui/func/fuconcs.cxx b/sd/source/ui/func/fuconcs.cxx index 4ec87e53cf86..3c8b2344148e 100644 --- a/sd/source/ui/func/fuconcs.cxx +++ b/sd/source/ui/func/fuconcs.cxx @@ -187,18 +187,14 @@ void FuConstructCustomShape::SetAttributes( SdrObject* pObj ) if( pSourceObj ) { const SfxItemSet& rSource = pSourceObj->GetMergedItemSet(); - SfxItemSetFixed< - // Ranges from SdrAttrObj: - SDRATTR_START, SDRATTR_SHADOW_LAST, - SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST, - SDRATTR_TEXTDIRECTION, - SDRATTR_TEXTDIRECTION, - // Graphic attributes, 3D properties, - // CustomShape properties: - SDRATTR_GRAF_FIRST, - SDRATTR_CUSTOMSHAPE_LAST, - // Range from SdrTextObj: - EE_ITEMS_START, EE_ITEMS_END> aDest(pObj->getSdrModelFromSdrObject().GetItemPool()); + SfxItemSet aDest(SfxItemSet::makeFixedSfxItemSet< + // Ranges from SdrAttrObj: + SDRATTR_START, SDRATTR_SHADOW_LAST, SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST, SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION, + // Graphic attributes, 3D properties, + // CustomShape properties: + SDRATTR_GRAF_FIRST, SDRATTR_CUSTOMSHAPE_LAST, + // Range from SdrTextObj: + EE_ITEMS_START, EE_ITEMS_END>(pObj->getSdrModelFromSdrObject().GetItemPool())); aDest.Set( rSource ); pObj->SetMergedItemSet( aDest ); // Enables Word-wrap by default (tdf#134369) diff --git a/sd/source/ui/func/fuconrec.cxx b/sd/source/ui/func/fuconrec.cxx index 2e4e7a9cfcb2..af031550258f 100644 --- a/sd/source/ui/func/fuconrec.cxx +++ b/sd/source/ui/func/fuconrec.cxx @@ -512,7 +512,8 @@ void FuConstructRectangle::Deactivate() return; } - svl::crypto::CertificateOrName aCertificateOrName = mpViewShell->GetViewShell()->GetSigningCertificate(); + SfxViewShell* pViewShell = mpViewShell->GetViewShell(); + svl::crypto::CertificateOrName aCertificateOrName = pViewShell->GetSigningCertificate(); if (aCertificateOrName.m_aName.isEmpty()) { aCertificateOrName.m_xCertificate = svx::SignatureLineHelper::getSignatureCertificate( @@ -524,7 +525,7 @@ void FuConstructRectangle::Deactivate() } } - svx::SignatureLineHelper::setShapeCertificate(mpView, aCertificateOrName); + svx::SignatureLineHelper::setShapeCertificate(pViewShell, aCertificateOrName); // Update infobar to offer "finish signing". SfxViewFrame* pFrame = mpViewShell->GetViewFrame(); diff --git a/sd/source/ui/func/fuhhconv.cxx b/sd/source/ui/func/fuhhconv.cxx index 95908e2e72b0..be40d46eea63 100644 --- a/sd/source/ui/func/fuhhconv.cxx +++ b/sd/source/ui/func/fuhhconv.cxx @@ -24,8 +24,8 @@ #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/awt/XWindow.hpp> #include <com/sun/star/beans/XPropertySet.hpp> +#include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> -#include <cppuhelper/bootstrap.hxx> #include <svl/style.hxx> #include <editeng/eeitem.hxx> #include <editeng/langitem.hxx> @@ -187,8 +187,7 @@ void FuHangulHanjaConversion::ConvertStyles( LanguageType nTargetLanguage, const void FuHangulHanjaConversion::StartChineseConversion() { //open ChineseTranslationDialog - Reference< XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if(!xContext.is()) return; diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx index dc3d4ea66faa..bfffe9f0be36 100644 --- a/sd/source/ui/func/fupage.cxx +++ b/sd/source/ui/func/fupage.cxx @@ -199,14 +199,11 @@ void FuPage::ExecuteAsyncDialog(weld::Window* pParent, const SfxRequest& rReq) return; } - std::shared_ptr<SfxItemSet> aNewAttr = std::make_shared< - SfxItemSetFixed<XATTR_FILL_FIRST, XATTR_FILL_LAST, - EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR, - SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER, - SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW, - SID_ATTR_PAGE, SID_ATTR_PAGE_SHARED, - SID_ATTR_CHAR_GRABBAG, SID_ATTR_CHAR_GRABBAG, - SID_ATTR_PAGE_COLOR, SID_ATTR_PAGE_FILLSTYLE>>(mpDoc->GetPool()); + std::shared_ptr<SfxItemSet> aNewAttr = std::make_shared<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + XATTR_FILL_FIRST, XATTR_FILL_LAST, EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR, + SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_SHADOW, + SID_ATTR_BORDER_SHADOW, SID_ATTR_PAGE, SID_ATTR_PAGE_SHARED, SID_ATTR_CHAR_GRABBAG, + SID_ATTR_CHAR_GRABBAG, SID_ATTR_PAGE_COLOR, SID_ATTR_PAGE_FILLSTYLE>(mpDoc->GetPool())); // Keep it sorted aNewAttr->MergeRange(mpDoc->GetPool().GetWhichIDFromSlotID(SID_ATTR_LRSPACE), mpDoc->GetPool().GetWhichIDFromSlotID(SID_ATTR_ULSPACE)); @@ -335,7 +332,7 @@ void FuPage::ExecuteAsyncDialog(weld::Window* pParent, const SfxRequest& rReq) tempSet.Put( XFillStyleItem( drawing::FillStyle_BITMAP ) ); // MigrateItemSet makes sure the XFillBitmapItem will have a unique name - SfxItemSetFixed<XATTR_FILLBITMAP, XATTR_FILLBITMAP> aMigrateSet( mpDoc->GetPool() ); + SfxItemSet aMigrateSet(SfxItemSet::makeFixedSfxItemSet<XATTR_FILLBITMAP, XATTR_FILLBITMAP>(mpDoc->GetPool())); aMigrateSet.Put(XFillBitmapItem(u"background"_ustr, std::move(aGraphic))); SdrModel::MigrateItemSet( &aMigrateSet, &tempSet, *mpDoc ); @@ -408,7 +405,7 @@ void FuPage::ApplyItemSet(SdStyleSheet& styleSheet, const std::shared_ptr<SfxIte if (pTempGradItem && pTempGradItem->GetName().isEmpty()) { // MigrateItemSet guarantees unique gradient names - SfxItemSetFixed<XATTR_FILLGRADIENT, XATTR_FILLGRADIENT> aMigrateSet( mpDoc->GetPool() ); + SfxItemSet aMigrateSet(SfxItemSet::makeFixedSfxItemSet<XATTR_FILLGRADIENT, XATTR_FILLGRADIENT>(mpDoc->GetPool())); aMigrateSet.Put( XFillGradientItem(u"gradient"_ustr, pTempGradItem->GetGradientValue()) ); SdrModel::MigrateItemSet( &aMigrateSet, &tempSet, *mpDoc); } @@ -417,7 +414,7 @@ void FuPage::ApplyItemSet(SdStyleSheet& styleSheet, const std::shared_ptr<SfxIte if (pTempHatchItem && pTempHatchItem->GetName().isEmpty()) { // MigrateItemSet guarantees unique hatch names - SfxItemSetFixed<XATTR_FILLHATCH, XATTR_FILLHATCH> aMigrateSet( mpDoc->GetPool() ); + SfxItemSet aMigrateSet(SfxItemSet::makeFixedSfxItemSet<XATTR_FILLHATCH, XATTR_FILLHATCH>(mpDoc->GetPool())); aMigrateSet.Put( XFillHatchItem(u"hatch"_ustr, pTempHatchItem->GetHatchValue()) ); SdrModel::MigrateItemSet( &aMigrateSet, &tempSet, *mpDoc); } diff --git a/sd/source/ui/func/fuparagr.cxx b/sd/source/ui/func/fuparagr.cxx index ee50cc05d304..b13d9fbffe58 100644 --- a/sd/source/ui/func/fuparagr.cxx +++ b/sd/source/ui/func/fuparagr.cxx @@ -67,9 +67,10 @@ void FuParagraph::DoExecute( SfxRequest& rReq ) SfxItemSet aEditAttr( mpDoc->GetPool() ); mpView->GetAttributes( aEditAttr ); SfxItemPool *pPool = aEditAttr.GetPool(); - SfxItemSetFixed<EE_ITEMS_START, EE_ITEMS_END, - SID_ATTR_TABSTOP_OFFSET, SID_ATTR_TABSTOP_OFFSET, - ATTR_PARANUMBERING_START, ATTR_PARANUMBERING_END> aNewAttr( *pPool ); + SfxItemSet aNewAttr(SfxItemSet::makeFixedSfxItemSet< + EE_ITEMS_START, EE_ITEMS_END, + SID_ATTR_TABSTOP_OFFSET, SID_ATTR_TABSTOP_OFFSET, + ATTR_PARANUMBERING_START, ATTR_PARANUMBERING_END>(*pPool)); aNewAttr.Put( aEditAttr ); diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx index 8624c784fca5..bb6abf7dd8a3 100644 --- a/sd/source/ui/func/fusel.cxx +++ b/sd/source/ui/func/fusel.cxx @@ -205,7 +205,8 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt) bTextEdit = true; bool bPreventModify = mpDocSh->IsReadOnly(); - if (bPreventModify && mpDocSh->GetSignPDFCertificate().Is()) + SfxViewShell* pViewShell = mpViewShell->GetViewShell(); + if (bPreventModify && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // If the just added signature line shape is selected, allow moving / resizing it. bPreventModify = false; diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 799dc51c42aa..59f7558e7aa8 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -126,6 +126,7 @@ const sal_uInt16 SidArray[] = { SID_PARASPACE_INCREASE, // 11145 SID_PARASPACE_DECREASE, // 11146 FN_NUM_BULLET_ON, // 20138 + FN_NUM_NUMBERING_ON, // 20144 0 }; diff --git a/sd/source/ui/func/futhes.cxx b/sd/source/ui/func/futhes.cxx index 4c5cfedca69c..b77921830b51 100644 --- a/sd/source/ui/func/futhes.cxx +++ b/sd/source/ui/func/futhes.cxx @@ -21,6 +21,7 @@ #include <editeng/outliner.hxx> #include <sfx2/request.hxx> +#include <svx/ehdl.hxx> #include <svx/svdobj.hxx> #include <svx/svdotext.hxx> #include <editeng/eeitem.hxx> @@ -62,8 +63,7 @@ rtl::Reference<FuPoor> FuThesaurus::Create( ViewShell* pViewSh, ::sd::Window* pW void FuThesaurus::DoExecute(SfxRequest& rReq) { - SfxErrorContext aContext(ERRCTX_SVX_LINGU_THESAURUS, OUString(), - mpWindow->GetFrameWeld(), RID_SVXERRCTX, SvxResLocale()); + SvxErrorContext aContext(ERRCTX_SVX_LINGU_THESAURUS, OUString(), mpWindow->GetFrameWeld()); if (dynamic_cast< DrawViewShell *>( mpViewShell )) { diff --git a/sd/source/ui/inc/SlideSorter.hxx b/sd/source/ui/inc/SlideSorter.hxx index cbd15bd6ac11..8049be043899 100644 --- a/sd/source/ui/inc/SlideSorter.hxx +++ b/sd/source/ui/inc/SlideSorter.hxx @@ -28,6 +28,8 @@ namespace vcl { class Window; } namespace com::sun::star::frame { class XController; } namespace rtl { template <class reference_type> class Reference; } +#define MAX_PAGES_PER_ROW 15 + namespace sd { class ViewShell; class ViewShellBase; diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx index 1589488dd6f8..ff048fa0bc1f 100644 --- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx +++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx @@ -379,8 +379,19 @@ bool SlideSorterController::Command ( return false; if (pData->IsMod1()) { - // We do not support zooming with control+mouse wheel. - return false; + sal_Int32 nColumnCount = mrSlideSorter.GetView().GetLayouter().GetColumnCount(); + if (0L > pData->GetDelta()) + { + if (nColumnCount < MAX_PAGES_PER_ROW) + ++nColumnCount; + } + else if (nColumnCount > 1) + --nColumnCount; + mrSlideSorter.GetView().GetLayouter().SetColumnCount ( + nColumnCount, nColumnCount); + Rearrange(true); + mrSlideSorter.GetViewShell()->GetViewFrame()->GetBindings().Invalidate(SID_PAGES_PER_ROW); + bEventHasBeenHandled = true; } // tdf#119745: ScrollLines gives accurate distance scrolled on touchpad. NotchDelta sign // gives direction. Default is 3 lines at a time, so factor that out. diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx index a5899460e754..64ae86dbe4ae 100644 --- a/sd/source/ui/unoidl/unopage.cxx +++ b/sd/source/ui/unoidl/unopage.cxx @@ -2481,7 +2481,7 @@ void SdDrawPage::setBackground( const Any& rValue ) // is it our own implementation? SdUnoPageBackground* pBack = dynamic_cast<SdUnoPageBackground*>( xSet.get() ); - SfxItemSetFixed<XATTR_FILL_FIRST, XATTR_FILL_LAST> aSet( GetModel()->GetDoc()->GetPool() ); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<XATTR_FILL_FIRST, XATTR_FILL_LAST>(GetModel()->GetDoc()->GetPool())); if( pBack ) { @@ -2850,7 +2850,7 @@ void SdMasterPage::setBackground( const Any& rValue ) // is it our own implementation? SdUnoPageBackground* pBack = dynamic_cast<SdUnoPageBackground*>( xInputSet.get() ); - SfxItemSetFixed<XATTR_FILL_FIRST, XATTR_FILL_LAST> aSet( GetModel()->GetDoc()->GetPool() ); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<XATTR_FILL_FIRST, XATTR_FILL_LAST>(GetModel()->GetDoc()->GetPool())); if( pBack ) { diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx index 3e800881960b..92c0d8a62b52 100644 --- a/sd/source/ui/view/drtxtob.cxx +++ b/sd/source/ui/view/drtxtob.cxx @@ -53,6 +53,7 @@ #include <sfx2/objface.hxx> #include <drawdoc.hxx> +#include <drawview.hxx> #include <DrawDocShell.hxx> #include <DrawViewShell.hxx> #include <OutlineViewShell.hxx> @@ -444,6 +445,49 @@ void TextObjectBar::GetAttrStateImpl(ViewShell* mpViewShell, ::sd::View* mpView, } break; + case FN_NUM_BULLET_ON: + case FN_NUM_NUMBERING_ON: + { + bool bEnable = false; + const DrawViewShell* pDrawViewShell = dynamic_cast< DrawViewShell* >(mpViewShell); + if (pDrawViewShell) + { + SdrView* pDrawView = pDrawViewShell->GetDrawView(); + //TODO: is pDrawView always available? + const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); + for (size_t nIndex = 0; nIndex < nMarkCount; ++nIndex) + { + SdrTextObj* pTextObj = DynCastSdrTextObj(rMarkList.GetMark(nIndex)->GetMarkedSdrObj()); + if (pTextObj && pTextObj->GetObjInventor() == SdrInventor::Default) + { + if (pTextObj->GetObjIdentifier() != SdrObjKind::OLE2) + { + bEnable = true; + break; + } + } + } + if (bEnable) + { + bool bIsBullet = false; + bool bIsNumbering = false; + OutlinerView* pOlView = pDrawView->GetTextEditOutlinerView(); + if (pOlView) + { + pOlView->IsBulletOrNumbering(bIsBullet, bIsNumbering); + } + rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, bIsBullet)); + rSet.Put(SfxBoolItem(FN_NUM_NUMBERING_ON, bIsNumbering)); + } + else + { + rSet.DisableItem(FN_NUM_BULLET_ON); + rSet.DisableItem(FN_NUM_NUMBERING_ON); + } + } + } + break; default: break; } diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx index 9058f7ad30a0..370fa9dffb06 100644 --- a/sd/source/ui/view/drtxtob1.cxx +++ b/sd/source/ui/view/drtxtob1.cxx @@ -328,7 +328,7 @@ void TextObjectBar::ExecuteImpl(ViewShell* mpViewShell, ::sd::View* mpView, SfxR SvxLRSpaceItem aLRSpace = static_cast<const SvxLRSpaceItem&>(pArgs->Get( SID_ATTR_PARA_LRSPACE)); - SfxItemSetFixed<EE_PARA_LRSPACE, EE_PARA_LRSPACE> aEditAttr(mpView->GetDoc().GetPool()); + SfxItemSet aEditAttr(SfxItemSet::makeFixedSfxItemSet<EE_PARA_LRSPACE, EE_PARA_LRSPACE>(mpView->GetDoc().GetPool())); aLRSpace.SetWhich( EE_PARA_LRSPACE ); aEditAttr.Put( aLRSpace ); @@ -341,7 +341,7 @@ void TextObjectBar::ExecuteImpl(ViewShell* mpViewShell, ::sd::View* mpView, SfxR case SID_HANGING_INDENT: { - SfxItemSetFixed<EE_PARA_LRSPACE, EE_PARA_LRSPACE> aLRSpaceSet(mpView->GetDoc().GetPool()); + SfxItemSet aLRSpaceSet(SfxItemSet::makeFixedSfxItemSet<EE_PARA_LRSPACE, EE_PARA_LRSPACE>(mpView->GetDoc().GetPool())); mpView->GetAttributes( aLRSpaceSet ); SvxLRSpaceItem aParaMargin( aLRSpaceSet.Get( EE_PARA_LRSPACE ) ); @@ -398,7 +398,7 @@ void TextObjectBar::ExecuteImpl(ViewShell* mpViewShell, ::sd::View* mpView, SfxR // tdf#131571: SdrEndTextEdit invalidates pTextEditOutlinerView, the pointer retrieved for pOLV // so reinitialize pOLV pOLV=mpView->GetTextEditOutlinerView(); - SfxItemSetFixed<SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION> aAttr( mpView->GetDoc().GetPool() ); + SfxItemSet aAttr(SfxItemSet::makeFixedSfxItemSet<SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION>(mpView->GetDoc().GetPool())); aAttr.Put( SvxWritingModeItem( nSlot == SID_TEXTDIRECTION_LEFT_TO_RIGHT ? css::text::WritingMode_LR_TB : css::text::WritingMode_TB_RL, @@ -476,6 +476,9 @@ void TextObjectBar::ExecuteImpl(ViewShell* mpViewShell, ::sd::View* mpView, SfxR } } } + SfxBindings& rBindings = mpViewShell->GetViewFrame()->GetBindings(); + rBindings.Invalidate( FN_NUM_BULLET_ON ); + rBindings.Invalidate( FN_NUM_NUMBERING_ON ); } break; } @@ -613,14 +616,17 @@ SET_ADJUST: { aNewAttr.Put(SvxAdjustItem(eAdjst, EE_PARA_JUST)); // set anchor - ESelection aSel = pOLV->GetSelection(); - aSel.Adjust(); - sal_Int32 nStartPara = aSel.start.nPara; - if (!aSel.HasRange()) - nStartPara = 0; - - if (nStartPara == 0) - aNewAttr.Put(SdrTextHorzAdjustItem(eAnchor)); + if (pOLV) + { + ESelection aSel = pOLV->GetSelection(); + aSel.Adjust(); + sal_Int32 nStartPara = aSel.start.nPara; + if (!aSel.HasRange()) + nStartPara = 0; + + if (nStartPara == 0) + aNewAttr.Put(SdrTextHorzAdjustItem(eAnchor)); + } } break; diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index ce9359fbebc3..fc011865e7fa 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1521,6 +1521,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) { SetCurrentFunction( FuBulletAndPosition::Create( this, GetActiveWindow(), mpDrawView.get(), GetDoc(), rReq ) ); Cancel(); + SfxBindings& rBindings = GetViewFrame()->GetBindings(); + rBindings.Invalidate( FN_NUM_BULLET_ON ); + rBindings.Invalidate( FN_NUM_NUMBERING_ON ); } break; diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index f9466b51a3d1..b815cf0818f3 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -669,6 +669,13 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) SdOptions* pOptions = SdModule::get()->GetSdOptions(GetDoc()->GetDocumentType()); sal_uInt32 nDefaultObjectSizeWidth(pOptions->GetDefaultObjectSizeWidth()); sal_uInt32 nDefaultObjectSizeHeight(pOptions->GetDefaultObjectSizeHeight()); + if (nSId == SID_INSERT_SIGNATURELINE) + { + // Half of the default to better match the space available for signatures in many real-world + // documents. + nDefaultObjectSizeWidth *= 0.5; + nDefaultObjectSizeHeight *= 0.5; + } // calc position and size ::tools::Rectangle aVisArea = GetActiveWindow()->PixelToLogic(::tools::Rectangle(Point(0,0), GetActiveWindow()->GetOutputSizePixel())); diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index 8444d9129b57..d864a3c1ecd0 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -704,8 +704,15 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) } if (bEnable) { - rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, false)); - rSet.Put(SfxBoolItem(FN_NUM_NUMBERING_ON, false)); + bool bIsBullet = false; + bool bIsNumbering = false; + OutlinerView* pOlView = mpDrawView->GetTextEditOutlinerView(); + if (pOlView) + { + pOlView->IsBulletOrNumbering(bIsBullet, bIsNumbering); + } + rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, bIsBullet)); + rSet.Put(SfxBoolItem(FN_NUM_NUMBERING_ON, bIsNumbering)); } else { diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index f55ad226fa4e..d2ee997ad100 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -818,7 +818,7 @@ void OutlineViewShell::GetMenuState( SfxItemSet &rSet ) // does the selection provide a unique presentation layout? // if not, the templates must not be edited - SfxItemSetFixed<SID_STATUS_LAYOUT, SID_STATUS_LAYOUT> aSet(*rSet.GetPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<SID_STATUS_LAYOUT, SID_STATUS_LAYOUT>(*rSet.GetPool())); GetStatusBarState(aSet); OUString aTest = aSet.Get(SID_STATUS_LAYOUT).GetValue(); if (aTest.isEmpty()) @@ -1466,7 +1466,7 @@ void OutlineViewShell::GetAttrState( SfxItemSet& rSet ) GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem && static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) { - SfxItemSetFixed<SID_STATUS_LAYOUT, SID_STATUS_LAYOUT> aSet(*rSet.GetPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<SID_STATUS_LAYOUT, SID_STATUS_LAYOUT>(*rSet.GetPool())); GetStatusBarState(aSet); OUString aRealStyle = aSet.Get(SID_STATUS_LAYOUT).GetValue(); if (aRealStyle.isEmpty()) diff --git a/sdext/source/pdfimport/README.md b/sdext/source/pdfimport/README.md new file mode 100644 index 000000000000..83850833f54c --- /dev/null +++ b/sdext/source/pdfimport/README.md @@ -0,0 +1,106 @@ +# PDF import + +## Introduction + +The code in this directory parses a PDF file and builds a LibreOffice +document contain similar elements, which can then be edited. +It is invoked when opening a PDF file, but **not** when inserting +a PDF into a document. Inserting a PDF file renders it and inserts +a non-editable, rendered version. + +The parsing is done by the library [Poppler](https://poppler.freedesktop.org/) +which then calls back into one layer of this code which is built as a +Poppler output device implementation. + +The PDF format is specified by [this document](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf). + +Note that PDF is a language that describes how to **render** a page, not +a language for describing an editable document, thus some of the conversion +is a heuristic that doesn't always give good results. + +Indeed, PDF is Turing complete, and can embed Javascript, which is also +Turing complete, so it's a wonder that PDFs ever manage to display anything. + +## Current limitations + +- Not all elements have clipping implemented. + +- LibreOffice's clipping routines all use Even-odd winding rules, where +as PDF can (and usually does) use non-zero winding rules, making some +clipping operations incorrect. + +- In PDF, there's no concept of lines of text or paragraphs, each +character can be entirely separate. The code has very simple heuristics +for reassembling characters back into lines of text. +Other programs, like *pdftotext* have more complex heuristics that might be worth a try. + +- Some cheap PDF operations, like the more advanced fills, generate many +hundreds of objects in LibreOffice, which can make the document painfully +slow to open. At least some of these are possible to improve by adding +more Poppler API implementations. Some may require expanding LibreOffice's +set of fill types. + +- There can be differences between distributions Poppler library builds +and the builds LibreOffice builds when it doesn't have a distro build +to use, e.g. in LibreOffice's own distributed builds or the bibisect +builds. In particular the distro builds may include another library +(supporting another embedded image type) than LibreOffice's build. + +## Fundamental limitations + +- The ordering of fonts embedded in PDF are often ASCII, but not always. +Sometimes they're arbitrary. They may then include a *ToUnicode* map allowing +programs to map the arbitrary index back to Unicode. Alas not all PDFs +include it, and some even use a bogus map to make it harder to copy/edit. +If the same PDF renders correctly in other readers but fails to copy-and-paste +then this is probably the issue. + +- PDF can use complex programming in many places, for example a simple fill +could be composed of a complex program to generate the fill tiles instead +of an obvious simple item that can be encoded as LibreOffice shading type. +Rendering these down to image tiles works OK but can sometimes end up +with a fuzzy image rather than a nice sharp vector representation. + +- Poppler's device interface API is not meant to be stable. The code +thus has lots of ifdef's to deal with different Poppler versions. + +## Structure + +Note that the structure is dictated by Poppler being GPL licensed, where +as LibreOffice isn't. + +- *xpdfwrapper/* contains the GPL code that's linked with Poppler +and forms the *xpdfimport* binary. That binary outputs a stream +representing the PDF as simpler operations (lines, clipping operations, +images etc). These form a series of commands on stdout, and binary +data (mostly images) on stderr. This does make adding debugging tricky. + +- *wrapper/* contains the LibreOffice glue that execs the *xpdfimport* +binary and parses the stream. It also sets up password entry for +protected PDFs. After parsing the keyword and then any data that +should be with the keyword, this layer than calls into the following +tree layer. + +- *tree/*' forms internal tree objects for each of the calls from the +wrapper layer. The tree is then 'visited' by optimisation layers +(that do things like assemble individual characters into lines of text) +and then by backend specific XML generators (e.g. for Draw and Writer) +that then generate an XML stream to be parsed by the core of LibreOffice. + +## Bug handling + +- Please tag bugs with *filter:pdf* in component *filters and storage*. + +- The *pdfseparate* utility which is part of poppler is useful for splitting +a PDF into individual pages to figure out which page is causing a crash +or hang or shrinking the problem down. + +- [qpdf](https://github.com/qpdf/qpdf) is useful for editing raw PDF +files to really cut down the number of primitives, but takes some +getting used to. + +- The xpdfimport binary can be run independently of the rest of LibreOffice +to allow the translated stream to be examined: + + ./instdir/program/xpdfimport problem.pdf < /dev/null > stream 2> binarystream + diff --git a/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx b/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx index 10c817169a27..9d44cfc6b72e 100644 --- a/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx +++ b/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx @@ -20,6 +20,7 @@ #include "shlxtmsi.hxx" #include <algorithm> #include <sstream> +#include <systools/win32/extended_max_path.hxx> #include <systools/win32/uwinapi.h> extern "C" __declspec(dllexport) UINT __stdcall MigrateInstallPath(MSIHANDLE handle) @@ -30,7 +31,7 @@ extern "C" __declspec(dllexport) UINT __stdcall MigrateInstallPath(MSIHANDLE han auto RegValue = [](HKEY hRoot, const WCHAR* sKey, const WCHAR* sVal) { std::wstring sResult; - WCHAR buf[32767]; // max longpath + WCHAR buf[EXTENDED_MAX_PATH]; // max longpath DWORD bufsize = sizeof(buf); // yes, it is the number of bytes if (RegGetValueW(hRoot, sKey, sVal, RRF_RT_REG_SZ, nullptr, buf, &bufsize) == ERROR_SUCCESS) sResult = buf; // RegGetValueW null-terminates strings diff --git a/sfx2/inc/guisaveas.hxx b/sfx2/inc/guisaveas.hxx index a1f85bbc2248..d6a037f4ed26 100644 --- a/sfx2/inc/guisaveas.hxx +++ b/sfx2/inc/guisaveas.hxx @@ -101,6 +101,7 @@ public: static bool WarnUnacceptableFormat( const css::uno::Reference< css::frame::XModel >& xModel, std::u16string_view aOldUIName, + std::u16string_view aExtension, const OUString& aDefExtension, bool rDefaultIsAlien ); diff --git a/sfx2/qa/cppunit/doc.cxx b/sfx2/qa/cppunit/doc.cxx index 22545fd42501..138e10d3a2bf 100644 --- a/sfx2/qa/cppunit/doc.cxx +++ b/sfx2/qa/cppunit/doc.cxx @@ -22,6 +22,7 @@ #include <comphelper/propertysequence.hxx> #include <comphelper/sequence.hxx> #include <svl/cryptosign.hxx> +#include <sfx2/viewsh.hxx> using namespace com::sun::star; @@ -53,14 +54,14 @@ CPPUNIT_TEST_FIXTURE(Test, testNoGrabBagShape) xController->select(aShape); // See if it has a signing certificate associated. - auto pBaseModel = dynamic_cast<SfxBaseModel*>(xModel.get()); - CPPUNIT_ASSERT(pBaseModel); - SfxObjectShell* pObjectShell = pBaseModel->GetObjectShell(); + SfxViewShell* pViewShell + = SfxViewShell::Get(uno::Reference<frame::XController>(xController, uno::UNO_QUERY)); + CPPUNIT_ASSERT(pViewShell); // Without the accompanying fix in place, this test would have failed with: // An uncaught exception of type com.sun.star.beans.UnknownPropertyException // which was not caught later, resulting in a crash. - pObjectShell->GetSignPDFCertificate(); + pViewShell->GetSignPDFCertificate(); } CPPUNIT_TEST_FIXTURE(Test, testTempFilePath) diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx index 8a54ac946945..6d9bb0476e17 100644 --- a/sfx2/source/appl/linkmgr2.cxx +++ b/sfx2/source/appl/linkmgr2.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <comphelper/lok.hxx> #include <comphelper/string.hxx> #include <sfx2/linkmgr.hxx> #include <sfx2/sfxsids.hrc> @@ -278,6 +281,12 @@ bool LinkManager::GetDisplayNames( const SvBaseLink * pLink, return bRet; } +static void disallowAllLinksUpdate(SvBaseLink* pShellProvider) +{ + if (SfxObjectShell* pShell = pShellProvider->GetLinkManager()->GetPersist()) + pShell->getEmbeddedObjectContainer().setUserAllowsLinkUpdate(false); +} + void LinkManager::UpdateAllLinks( bool bAskUpdate, bool bUpdateGrfLinks, @@ -325,6 +334,13 @@ void LinkManager::UpdateAllLinks( if( bAskUpdate ) { + if (comphelper::LibreOfficeKit::isActive()) + { + // only one document in jail, no update possible + disallowAllLinksUpdate(pLink); + return; + } + OUString aMsg = SfxResId(STR_QUERY_UPDATE_LINKS); INetURLObject aURL(pPersist->getDocumentBaseURL()); aMsg = aMsg.replaceFirst("%{filename}", aURL.GetLastName()); @@ -336,14 +352,7 @@ void LinkManager::UpdateAllLinks( int nRet = xQueryBox->run(); if( RET_YES != nRet ) { - SfxObjectShell* pShell = pLink->GetLinkManager()->GetPersist(); - - if(pShell) - { - comphelper::EmbeddedObjectContainer& rEmbeddedObjectContainer = pShell->getEmbeddedObjectContainer(); - rEmbeddedObjectContainer.setUserAllowsLinkUpdate(false); - } - + disallowAllLinksUpdate(pLink); return ; // nothing should be updated } bAskUpdate = false; // once is enough diff --git a/sfx2/source/appl/shutdowniconw32.cxx b/sfx2/source/appl/shutdowniconw32.cxx index 409ba80bbf2c..9bbbac69c094 100644 --- a/sfx2/source/appl/shutdowniconw32.cxx +++ b/sfx2/source/appl/shutdowniconw32.cxx @@ -32,6 +32,8 @@ #include <objidl.h> #include <osl/diagnose.h> #include <osl/thread.h> +#include <systools/win32/comtools.hxx> +#include <systools/win32/extended_max_path.hxx> #include <systools/win32/qswin32.h> #include <comphelper/sequenceashashmap.hxx> #include <comphelper/windowserrorstring.hxx> @@ -700,36 +702,22 @@ static HRESULT WINAPI SHCoCreateInstance( LPVOID lpszReserved, REFCLSID clsid, L static bool CreateShortcut( const OUString& rAbsObject, const OUString& rAbsObjectPath, const OUString& rAbsShortcut, const OUString& rDescription, const OUString& rParameter ) { - HRESULT hres; - IShellLinkW* psl; - CLSID clsid_ShellLink = CLSID_ShellLink; - CLSID clsid_IShellLink = IID_IShellLinkW; - - hres = CoCreateInstance( clsid_ShellLink, nullptr, CLSCTX_INPROC_SERVER, - clsid_IShellLink, reinterpret_cast<void**>(&psl) ); - if( FAILED(hres) ) - hres = SHCoCreateInstance( nullptr, clsid_ShellLink, nullptr, clsid_IShellLink, reinterpret_cast<void**>(&psl) ); - - if( SUCCEEDED(hres) ) + try { - IPersistFile* ppf; + sal::systools::COMReference<IShellLinkW> psl(CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER); psl->SetPath( o3tl::toW(rAbsObject.getStr()) ); psl->SetWorkingDirectory( o3tl::toW(rAbsObjectPath.getStr()) ); psl->SetDescription( o3tl::toW(rDescription.getStr()) ); - if( rParameter.getLength() ) + if (!rParameter.isEmpty()) psl->SetArguments( o3tl::toW(rParameter.getStr()) ); - CLSID clsid_IPersistFile = IID_IPersistFile; - hres = psl->QueryInterface( clsid_IPersistFile, reinterpret_cast<void**>(&ppf) ); - - if( SUCCEEDED(hres) ) - { - hres = ppf->Save( o3tl::toW(rAbsShortcut.getStr()), TRUE ); - ppf->Release(); - } else return false; - psl->Release(); - } else return false; - return true; + sal::systools::COMReference<IPersistFile> ppf(psl, sal::systools::COM_QUERY_THROW); + return SUCCEEDED(ppf->Save(o3tl::toW(rAbsShortcut.getStr()), TRUE)); + } + catch (const sal::systools::ComError&) + { + return false; + } } @@ -753,23 +741,23 @@ static bool FileExistsW( LPCWSTR lpPath ) bool ShutdownIcon::IsQuickstarterInstalled() { - wchar_t aPath[_MAX_PATH]; - GetModuleFileNameW( nullptr, aPath, _MAX_PATH-1); + wchar_t aPath[EXTENDED_MAX_PATH]; + GetModuleFileNameW(nullptr, aPath, std::size(aPath)); - OUString aOfficepath( o3tl::toU(aPath) ); - int i = aOfficepath.lastIndexOf('\\'); - if( i != -1 ) - aOfficepath = aOfficepath.copy(0, i); + std::u16string_view aOfficepath(o3tl::toU(aPath)); + auto i = aOfficepath.find_last_of('\\'); + if (i != std::u16string_view::npos) + aOfficepath = aOfficepath.substr(0, i); - OUString quickstartExe(aOfficepath + "\\quickstart.exe"); + OUString quickstartExe(OUString::Concat(aOfficepath) + "\\quickstart.exe"); return FileExistsW( o3tl::toW(quickstartExe.getStr()) ); } void ShutdownIcon::EnableAutostartW32( const OUString &aShortcut ) { - wchar_t aPath[_MAX_PATH]; - GetModuleFileNameW( nullptr, aPath, _MAX_PATH-1); + wchar_t aPath[EXTENDED_MAX_PATH]; + GetModuleFileNameW(nullptr, aPath, std::size(aPath)); OUString aOfficepath( o3tl::toU(aPath) ); int i = aOfficepath.lastIndexOf('\\'); diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx index f87fbb7d8282..f5899ecccc36 100644 --- a/sfx2/source/control/shell.cxx +++ b/sfx2/source/control/shell.cxx @@ -429,7 +429,7 @@ void SfxShell::ExecuteSlot( SfxRequest& rReq, bool bAsync ) { if( !pImpl->pExecuter ) pImpl->pExecuter.reset( new svtools::AsynchronLink( - Link<void*,void>( this, ShellCall_Impl ) ) ); + LINK_NONMEMBER( this, ShellCall_Impl ) ) ); pImpl->pExecuter->Call( new SfxRequest( rReq ) ); } } @@ -672,7 +672,7 @@ void SfxShell::UIFeatureChanged() // something may get stuck in the bunkered tools. Asynchronous call to // prevent recursion. if ( !pImpl->pUpdater ) - pImpl->pUpdater.reset( new svtools::AsynchronLink( Link<void*,void>( this, DispatcherUpdate_Impl ) ) ); + pImpl->pUpdater.reset( new svtools::AsynchronLink( LINK_NONMEMBER( this, DispatcherUpdate_Impl ) ) ); // Multiple views allowed pImpl->pUpdater->Call( pFrame->GetDispatcher(), true ); diff --git a/sfx2/source/dialog/StyleList.cxx b/sfx2/source/dialog/StyleList.cxx index b63059e14ee9..1fd863181d02 100644 --- a/sfx2/source/dialog/StyleList.cxx +++ b/sfx2/source/dialog/StyleList.cxx @@ -34,6 +34,7 @@ #include <svl/intitem.hxx> #include <svl/style.hxx> #include <svl/itemset.hxx> +#include <comphelper/lok.hxx> #include <comphelper/processfactory.hxx> #include <officecfg/Office/Common.hxx> @@ -95,8 +96,6 @@ public: } }; -namespace -{ Color ColorHash(std::u16string_view rString) { static constexpr auto aSaturationArray = std::to_array<sal_uInt16>({ 90, 75, 60 }); @@ -129,6 +128,8 @@ Color ColorHash(std::u16string_view rString) return aColor; } +namespace +{ // used to disallow the default character style in the styles highlighter character styles color map std::optional<OUString> sDefaultCharStyleUIName; } @@ -630,20 +631,23 @@ class StyleTree_Impl private: OUString aName; OUString aParent; + sal_Int32 nSpotlightId; StyleTreeArr_Impl pChildren; public: bool HasParent() const { return !aParent.isEmpty(); } - StyleTree_Impl(OUString _aName, OUString _aParent) + StyleTree_Impl(OUString _aName, OUString _aParent, sal_Int32 _nSpotlightId) : aName(std::move(_aName)) , aParent(std::move(_aParent)) + , nSpotlightId(_nSpotlightId) , pChildren(0) { } const OUString& getName() const { return aName; } const OUString& getParent() const { return aParent; } + sal_Int32 getSpotlightId() const { return nSpotlightId; } StyleTreeArr_Impl& getChildren() { return pChildren; } }; } @@ -707,25 +711,30 @@ static bool IsExpanded_Impl(const std::vector<OUString>& rEntries, std::u16strin return false; } -static void lcl_Update(weld::TreeView& rTreeView, weld::TreeIter& rIter, const OUString& rName, - SfxStyleFamily eFam, SfxViewShell* pViewSh) +static void lcl_Update(weld::TreeView& rTreeView, weld::TreeIter& rIter, + const StyleTree_Impl& rEntry, SfxStyleFamily eFam, SfxViewShell* pViewSh) { + const OUString& rName = rEntry.getName(); + Color aColor = ColorHash(rName); - int nColor; - if (eFam == SfxStyleFamily::Para) + // For kit keep the id used for spotlight/number-image for a style stable + // regardless of the selection mode of the style panel, so multiple views + // on a document all share the same id for a style. + sal_Int32 nSpotlightId; + if (comphelper::LibreOfficeKit::isActive()) + nSpotlightId = rEntry.getSpotlightId(); + else { - StylesHighlighterColorMap& rParaStylesColorMap - = pViewSh->GetStylesHighlighterParaColorMap(); - nColor = rParaStylesColorMap.size(); - rParaStylesColorMap[rName] = std::pair(aColor, nColor); + StylesHighlighterColorMap& rColorMap = (eFam == SfxStyleFamily::Para) + ? pViewSh->GetStylesHighlighterParaColorMap() + : pViewSh->GetStylesHighlighterCharColorMap(); + nSpotlightId = rColorMap.size(); + rColorMap[rName] = std::pair(aColor, nSpotlightId); } - else + + if (eFam == SfxStyleFamily::Char) { - StylesHighlighterColorMap& rCharStylesColorMap - = pViewSh->GetStylesHighlighterCharColorMap(); - nColor = rCharStylesColorMap.size(); - rCharStylesColorMap[rName] = std::pair(aColor, nColor); // don't show a color or number for default character style 'No Character Style' entry if (rName == sDefaultCharStyleUIName.value() /*"No Character Style"*/) { @@ -743,9 +752,13 @@ static void lcl_Update(weld::TreeView& rTreeView, weld::TreeIter& rIter, const O xDevice->SetFillColor(aColor); const tools::Rectangle aRect(Point(0, 0), aImageSize); xDevice->DrawRect(aRect); - xDevice->SetTextColor(COL_BLACK); - xDevice->DrawText(aRect, OUString::number(nColor), - DrawTextFlags::Center | DrawTextFlags::VCenter); + // In kit mode, unused styles are -1, so we can just skip the number image for those + if (nSpotlightId != -1) + { + xDevice->SetTextColor(COL_BLACK); + xDevice->DrawText(aRect, OUString::number(nSpotlightId), + DrawTextFlags::Center | DrawTextFlags::VCenter); + } rTreeView.set_id(rIter, rName); rTreeView.set_text(rIter, rName); @@ -770,7 +783,7 @@ static void FillBox_Impl(weld::TreeView& rBox, StyleTreeArr_Impl& rTreeArray, if (pStyleSheetPool) pStyle = pStyleSheetPool->Find(rChildName, eStyleFamily); if (pStyle && pStyle->IsUsed()) - lcl_Update(rBox, rIter, rChildName, eStyleFamily, + lcl_Update(rBox, rIter, *pChildEntry, eStyleFamily, pViewShell); else { @@ -1075,7 +1088,8 @@ void StyleList::FillTreeBox(SfxStyleFamily eFam) ; else { - StyleTree_Impl* pNew = new StyleTree_Impl(pStyle->GetName(), pStyle->GetParent()); + StyleTree_Impl* pNew = new StyleTree_Impl(pStyle->GetName(), pStyle->GetParent(), + pStyle->GetSpotlightId()); aArr.emplace_back(pNew); } pStyle = m_pStyleSheetPool->Next(); @@ -1255,7 +1269,7 @@ void StyleList::UpdateStyles(StyleFlags nFlags) SfxStyleSheetBase* pStyle = m_pStyleSheetPool->First(eFam, nFilter); std::unique_ptr<weld::TreeIter> xEntry = m_xFmtLb->make_iterator(); - std::vector<OUString> aStrings; + std::vector<StyleTree_Impl> aStyles; comphelper::string::NaturalStringSorter aSorter( ::comphelper::getProcessComponentContext(), @@ -1263,7 +1277,7 @@ void StyleList::UpdateStyles(StyleFlags nFlags) while (pStyle) { - aStrings.push_back(pStyle->GetName()); + aStyles.emplace_back(pStyle->GetName(), pStyle->GetParent(), pStyle->GetSpotlightId()); pStyle = m_pStyleSheetPool->Next(); } OUString aUIName = getDefaultStyleName(eFam); @@ -1272,9 +1286,14 @@ void StyleList::UpdateStyles(StyleFlags nFlags) // sorting twice is faster than sorting once. // The first sort has a cheap comparator, and gets the list into mostly-sorted order. // Then the second sort needs to call its (much more expensive) comparator less often. - std::sort(aStrings.begin(), aStrings.end()); - std::sort(aStrings.begin(), aStrings.end(), - [&aSorter, &aUIName](const OUString& rLHS, const OUString& rRHS) { + std::sort(aStyles.begin(), aStyles.end(), + [](const StyleTree_Impl& rLHS, const StyleTree_Impl& rRHS) { + return rLHS.getName() < rRHS.getName(); + }); + std::sort(aStyles.begin(), aStyles.end(), + [&aSorter, &aUIName](const StyleTree_Impl& rLHSS, const StyleTree_Impl& rRHSS) { + const OUString& rLHS = rLHSS.getName(); + const OUString& rRHS = rRHSS.getName(); if (rRHS == aUIName) return false; if (rLHS == aUIName) @@ -1303,7 +1322,7 @@ void StyleList::UpdateStyles(StyleFlags nFlags) pHighlighterColorMap->clear(); } - size_t nCount = aStrings.size(); + size_t nCount = aStyles.size(); if (pViewShell && m_bModuleHasStylesHighlighterFeature && ((eFam == SfxStyleFamily::Para && m_bHighlightParaStyles) @@ -1311,14 +1330,15 @@ void StyleList::UpdateStyles(StyleFlags nFlags) { m_xFmtLb->bulk_insert_for_each( nCount, - [this, &aStrings, eFam, pViewShell](weld::TreeIter& rIter, int nIdx) { - auto pChildStyle = m_pStyleSheetPool->Find(aStrings[nIdx], eFam); + [this, &aStyles, eFam, pViewShell](weld::TreeIter& rIter, int nIdx) { + const OUString& rName = aStyles[nIdx].getName(); + auto pChildStyle = m_pStyleSheetPool->Find(rName, eFam); if (pChildStyle && pChildStyle->IsUsed()) - lcl_Update(*m_xFmtLb, rIter, aStrings[nIdx], eFam, pViewShell); + lcl_Update(*m_xFmtLb, rIter, aStyles[nIdx], eFam, pViewShell); else { - m_xFmtLb->set_id(rIter, aStrings[nIdx]); - m_xFmtLb->set_text(rIter, aStrings[nIdx]); + m_xFmtLb->set_id(rIter, rName); + m_xFmtLb->set_text(rIter, rName); } }, nullptr, nullptr, /*bGoingToSetText*/ true); @@ -1326,9 +1346,10 @@ void StyleList::UpdateStyles(StyleFlags nFlags) else { m_xFmtLb->bulk_insert_for_each(nCount, - [this, &aStrings](weld::TreeIter& rIter, int nIdx) { - m_xFmtLb->set_id(rIter, aStrings[nIdx]); - m_xFmtLb->set_text(rIter, aStrings[nIdx]); + [this, &aStyles](weld::TreeIter& rIter, int nIdx) { + const OUString& rName = aStyles[nIdx].getName(); + m_xFmtLb->set_id(rIter, rName); + m_xFmtLb->set_text(rIter, rName); }, nullptr, nullptr, /*bGoingToSetText*/ true); } diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx index 9d96dfa77268..3e9be6970de8 100644 --- a/sfx2/source/dialog/alienwarn.cxx +++ b/sfx2/source/dialog/alienwarn.cxx @@ -22,6 +22,7 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(weld::Window* pParent, std::u16string_view _rFormatName, + std::u16string_view _rExtension, const OUString& _rDefaultExtension, bool rDefaultIsAlien) : MessageDialogController(pParent, u"sfx/ui/alienwarndialog.ui"_ustr, u"AlienWarnDialog"_ustr, @@ -32,9 +33,10 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(weld::Window* pParent, { OUString aExtension = u"ODF"_ustr; - // replace formatname (text) + // replace formatname and extension (text) OUString sInfoText = m_xDialog->get_primary_text(); sInfoText = sInfoText.replaceAll("%FORMATNAME", _rFormatName); + sInfoText = sInfoText.replaceAll("%EXTENSION", _rExtension); m_xDialog->set_primary_text(sInfoText); // replace formatname (button) @@ -49,6 +51,13 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(weld::Window* pParent, m_xDialog->set_secondary_text(OUString()); aExtension = _rDefaultExtension.toAsciiUpperCase(); } + else + { + // replace extension (secondary-text) + sInfoText = m_xDialog->get_secondary_text(); + sInfoText = sInfoText.replaceAll("%EXTENSION", _rDefaultExtension); + m_xDialog->set_secondary_text(sInfoText); + } // replace defaultextension (button) sInfoText = m_xUseDefaultFormatBtn->get_label(); diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index d351a79beec2..32a3c4c5f0ee 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -801,7 +801,7 @@ void BackingWindow::dispatchURL( const OUString& i_rURL, if ( xDispatch.is() ) { std::unique_ptr<ImplDelayedDispatch> pDisp(new ImplDelayedDispatch( xDispatch, std::move(aDispatchURL), i_rArgs )); - if( Application::PostUserEvent( Link<void*,void>( nullptr, implDispatchDelayed ), pDisp.get() ) ) + if( Application::PostUserEvent( LINK_NONMEMBER( nullptr, implDispatchDelayed ), pDisp.get() ) ) pDisp.release(); } } diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx index adfc6c8345fa..7e6be3b5ebab 100644 --- a/sfx2/source/doc/guisaveas.cxx +++ b/sfx2/source/doc/guisaveas.cxx @@ -845,14 +845,16 @@ sal_Int8 ModelData_Impl::CheckFilter( const OUString& aFilterName ) // the default filter is acceptable and the old filter is alien one // so ask to make a saveAs operation const OUString aUIName = aFiltPropsHM.getUnpackedValueOrDefault(u"UIName"_ustr, OUString() ); - const OUString aDefUIName = aDefFiltPropsHM.getUnpackedValueOrDefault(u"UIName"_ustr, OUString() ); + const OUString aType = aFiltPropsHM.getUnpackedValueOrDefault( u"Type"_ustr, OUString() ); + const OUString aExtension = GetRecommendedExtension(aType); const OUString aPreusedFilterName = GetDocProps().getUnpackedValueOrDefault(u"PreusedFilterName"_ustr, OUString() ); + const OUString aDefUIName = aDefFiltPropsHM.getUnpackedValueOrDefault(u"UIName"_ustr, OUString() ); const OUString aDefType = aDefFiltPropsHM.getUnpackedValueOrDefault( u"Type"_ustr, OUString() ); const OUString aDefExtension = GetRecommendedExtension( aDefType ); if ( aPreusedFilterName != aFilterName && aUIName != aDefUIName ) { - if ( !SfxStoringHelper::WarnUnacceptableFormat( GetModel(), aUIName, aDefExtension, + if ( !SfxStoringHelper::WarnUnacceptableFormat( GetModel(), aUIName,aExtension, aDefExtension, static_cast<bool>( nDefFiltFlags & SfxFilterFlags::ALIEN ) ) ) return STATUS_SAVEAS_STANDARDNAME; } @@ -2090,6 +2092,7 @@ void SfxStoringHelper::SetDocInfoState( // static bool SfxStoringHelper::WarnUnacceptableFormat( const uno::Reference< frame::XModel >& xModel, std::u16string_view aOldUIName, + std::u16string_view aExtension, const OUString& aDefExtension, bool bDefIsAlien ) { @@ -2097,7 +2100,7 @@ bool SfxStoringHelper::WarnUnacceptableFormat( const uno::Reference< frame::XMod return true; weld::Window* pWin = SfxStoringHelper::GetModelWindow(xModel); - SfxAlienWarningDialog aDlg(pWin, aOldUIName, aDefExtension, bDefIsAlien); + SfxAlienWarningDialog aDlg(pWin, aOldUIName,aExtension, aDefExtension, bDefIsAlien); return aDlg.run() == RET_OK; } diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx index a8005cab97e0..a0296194e807 100644 --- a/sfx2/source/doc/objmisc.cxx +++ b/sfx2/source/doc/objmisc.cxx @@ -865,9 +865,14 @@ void SfxObjectShell::InvalidateName() { pImpl->aTitle.clear(); - SetName( GetTitle( SFX_TITLE_APINAME ) ); - Broadcast( SfxHint(SfxHintId::TitleChanged) ); + OUString sOldName = GetName(); + OUString sNewName = GetTitle(SFX_TITLE_APINAME); + if (sOldName != sNewName) + { + SetName(sNewName); + Broadcast(SfxHint(SfxHintId::TitleChanged)); + } } @@ -2019,7 +2024,15 @@ bool SfxObjectShell::isEditDocLocked() const if (officecfg::Office::Common::Misc::ViewerAppMode::get() || !officecfg::Office::Common::Misc::AllowEditReadonlyDocs::get()) return true; - return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockEditDoc"_ustr } ), u"LockEditDoc", false); + try + { + return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockEditDoc"_ustr } ), u"LockEditDoc", false); + } + catch (const uno::RuntimeException&) + { + TOOLS_WARN_EXCEPTION("sfx.appl", "unexpected RuntimeException"); + } + return false; } bool SfxObjectShell::isContentExtractionLocked() const @@ -2027,7 +2040,15 @@ bool SfxObjectShell::isContentExtractionLocked() const Reference<XModel3> xModel = GetModel(); if (!xModel.is()) return false; - return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockContentExtraction"_ustr } ), u"LockContentExtraction", false); + try + { + return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockContentExtraction"_ustr } ), u"LockContentExtraction", false); + } + catch (const uno::RuntimeException&) + { + TOOLS_WARN_EXCEPTION("sfx.appl", "unexpected RuntimeException"); + } + return false; } bool SfxObjectShell::isExportLocked() const @@ -2035,7 +2056,15 @@ bool SfxObjectShell::isExportLocked() const Reference<XModel3> xModel = GetModel(); if (!xModel.is()) return false; - return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockExport"_ustr } ), u"LockExport", false); + try + { + return comphelper::NamedValueCollection::getOrDefault(xModel->getArgs2( { u"LockExport"_ustr } ), u"LockExport", false); + } + catch (const uno::RuntimeException&) + { + TOOLS_WARN_EXCEPTION("sfx.appl", "unexpected RuntimeException"); + } + return false; } bool SfxObjectShell::isPrintLocked() const diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 0aee136c7ea9..1e3a0d9a4972 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -92,6 +92,7 @@ #include <sfx2/sfxuno.hxx> #include <sfx2/sfxsids.hrc> #include <sfx2/lokhelper.hxx> +#include <comphelper/dispatchcommand.hxx> #include <SfxRedactionHelper.hxx> #include <com/sun/star/util/XCloseable.hpp> @@ -430,74 +431,6 @@ bool SfxObjectShell::IsSignPDF() const return false; } -namespace -{ -uno::Reference<beans::XPropertySet> GetSelectedShapeOfModel(const uno::Reference<frame::XModel>& xModel) -{ - if (!xModel.is()) - { - return uno::Reference<beans::XPropertySet>(); - } - - uno::Reference<drawing::XShapes> xShapes(xModel->getCurrentSelection(), uno::UNO_QUERY); - if (!xShapes.is() || xShapes->getCount() < 1) - { - return uno::Reference<beans::XPropertySet>(); - } - - uno::Reference<beans::XPropertySet> xShapeProps(xShapes->getByIndex(0), uno::UNO_QUERY); - return xShapeProps; -} -} - -svl::crypto::CertificateOrName SfxObjectShell::GetSignPDFCertificate() const -{ - uno::Reference<beans::XPropertySet> xShapeProps = GetSelectedShapeOfModel(GetBaseModel()); - if (!xShapeProps.is() || !xShapeProps->getPropertySetInfo()->hasPropertyByName(u"InteropGrabBag"_ustr)) - { - return {}; - } - - comphelper::SequenceAsHashMap aMap(xShapeProps->getPropertyValue(u"InteropGrabBag"_ustr)); - auto it = aMap.find(u"SignatureCertificate"_ustr); - if (it == aMap.end()) - { - return {}; - } - - svl::crypto::CertificateOrName aCertificateOrName; - if (it->second.has<uno::Reference<security::XCertificate>>()) - { - it->second >>= aCertificateOrName.m_xCertificate; - } - else - { - it->second >>= aCertificateOrName.m_aName; - } - return aCertificateOrName; -} - -void SfxObjectShell::ResetSignPDFCertificate() -{ - uno::Reference<beans::XPropertySet> xShapeProps = GetSelectedShapeOfModel(GetBaseModel()); - if (!xShapeProps->getPropertySetInfo()->hasPropertyByName("InteropGrabBag")) - { - return; - } - - comphelper::SequenceAsHashMap aMap(xShapeProps->getPropertyValue("InteropGrabBag")); - auto it = aMap.find("SignatureCertificate"); - if (it == aMap.end()) - { - return; - } - - aMap.erase(it); - xShapeProps->setPropertyValue("InteropGrabBag", uno::Any(aMap.getAsConstPropertyValueList())); - // The shape's property is now reset, so the doc model is no longer modified. - SetModified(false); -} - static void sendErrorToLOK(const ErrCodeMsg& error) { if (error.GetCode().GetClass() == ErrCodeClass::NONE) @@ -588,29 +521,48 @@ void SfxObjectShell::AfterSignContent(bool bHaveWeSigned, weld::Window* pDialogP } } -void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) +namespace +{ +/// Updates the UI so it doesn't try to modify an already finalized signature line shape. +void ResetSignatureSelection(SfxObjectShell& rObjectShell, SfxViewShell& rViewShell) +{ + rViewShell.SetSignPDFCertificate({}); + comphelper::dispatchCommand(".uno:DeSelect", {}); + rObjectShell.RecheckSignature(false); +} +} + +static weld::Window* GetReqDialogParent(SfxRequest &rReq, SfxObjectShell& rShell) { weld::Window* pDialogParent = rReq.GetFrameWeld(); if (!pDialogParent) { - SfxViewFrame* pFrame = GetFrame(); + SfxViewFrame* pFrame = rShell.GetFrame(); if (!pFrame) - pFrame = SfxViewFrame::GetFirst(this); + pFrame = SfxViewFrame::GetFirst(&rShell); if (pFrame) pDialogParent = pFrame->GetFrameWeld(); } + return pDialogParent; +} +void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) +{ sal_uInt16 nId = rReq.GetSlot(); bool bHaveWeSigned = false; if( SID_SIGNATURE == nId || SID_MACRO_SIGNATURE == nId ) { + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); + QueryHiddenInformation(HiddenWarningFact::WhenSigning); if (SID_SIGNATURE == nId) { - uno::Reference<security::XCertificate> xCertificate = GetSignPDFCertificate().m_xCertificate; + SfxViewFrame* pFrame = GetFrame(); + SfxViewShell* pViewShell = pFrame ? pFrame->GetViewShell() : nullptr; + uno::Reference<security::XCertificate> xCertificate = pViewShell ? pViewShell->GetSignPDFCertificate().m_xCertificate : nullptr; if (xCertificate.is()) { @@ -621,10 +573,9 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) // Reset the picked certificate for PDF signing, then recheck signatures to show how // the PDF actually looks like after signing. Also change the "finish signing" on // the infobar back to "sign document". - if (SfxViewFrame* pFrame = GetFrame()) + if (pViewShell) { - ResetSignPDFCertificate(); - RecheckSignature(false); + ResetSignatureSelection(*this, *pViewShell); pFrame->RemoveInfoBar(u"readonly"); pFrame->AppendReadOnlyInfobar(); } @@ -666,12 +617,14 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) if (!aSigningContext.m_aSignatureValue.empty()) { SignDocumentContentUsingCertificate(aSigningContext); + if (pViewShell) + { + ResetSignatureSelection(*this, *pViewShell); + } rReq.Done(); return; } - SfxViewFrame* pFrame = GetFrame(); - SfxViewShell* pViewShell = pFrame ? pFrame->GetViewShell() : nullptr; if (pViewShell) { svl::crypto::CertificateOrName aCertificateOrName; @@ -730,6 +683,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) if ( !IsOwnStorageFormat( *GetMedium() ) ) return; + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); SfxVersionDialog aDlg(pDialogParent, pFrame, IsSaveVersionOnClose()); aDlg.run(); SetSaveVersionOnClose(aDlg.IsSaveVersionOnClose()); @@ -838,6 +792,8 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) case SID_AUTOREDACTDOC: { + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); + // Actual redaction takes place on a newly generated Draw document if (!SvtModuleOptions().IsDrawInstalled()) { @@ -877,6 +833,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) // Actual redaction takes place on a newly generated Draw document if (!SvtModuleOptions().IsDrawInstalled()) { + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog( pDialogParent, VclMessageType::Warning, VclButtonsType::Ok, SfxResId(STR_REDACTION_NO_DRAW_WARNING))); @@ -1253,6 +1210,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) else { SfxErrorContext aEc(ERRCTX_SFX_SAVEASDOC,GetTitle()); + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); ErrorHandler::HandleError(lErr, pDialogParent); } } @@ -1426,7 +1384,10 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) if (comphelper::LibreOfficeKit::isActive()) sendErrorToLOK(lErr); else + { + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); ErrorHandler::HandleError(lErr, pDialogParent); + } rReq.SetReturnValue( SfxBoolItem(0, true) ); rReq.Done(); @@ -1439,6 +1400,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) case SID_DOCTEMPLATE: { // save as document templates + weld::Window* pDialogParent = GetReqDialogParent(rReq, *this); SfxSaveAsTemplateDialog aDlg(pDialogParent, GetModel()); (void)aDlg.run(); break; diff --git a/sfx2/source/inc/alienwarn.hxx b/sfx2/source/inc/alienwarn.hxx index 7c4f8cb364ee..29fab4f53892 100644 --- a/sfx2/source/inc/alienwarn.hxx +++ b/sfx2/source/inc/alienwarn.hxx @@ -30,7 +30,8 @@ private: public: SfxAlienWarningDialog(weld::Window* pParent, std::u16string_view _rFormatName, - const OUString& _rDefaultExtension, bool rDefaultIsAlien); + std::u16string_view _rExtension, const OUString& _rDefaultExtension, + bool rDefaultIsAlien); virtual ~SfxAlienWarningDialog() override; }; diff --git a/sfx2/source/inc/openflag.hxx b/sfx2/source/inc/openflag.hxx index 11421d8cfca4..e35d4191d86a 100644 --- a/sfx2/source/inc/openflag.hxx +++ b/sfx2/source/inc/openflag.hxx @@ -24,10 +24,6 @@ // I work on the original, not a copy // -> file then can not be opened for editing #define SFX_STREAM_READONLY (StreamMode::READ | StreamMode::SHARE_DENYWRITE) // + !bDirect -// Someone else is editing the file, a copy it created -// -> the file can then be opened for editing -#define SFX_STREAM_READONLY_MAKECOPY (StreamMode::READ | StreamMode::SHARE_DENYNONE) - #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx index 0ea04c16238f..f025e2598411 100644 --- a/sfx2/source/view/lokhelper.cxx +++ b/sfx2/source/view/lokhelper.cxx @@ -1231,7 +1231,7 @@ namespace LOKPostAsyncEvent(pEvent, nullptr); } else - Application::PostUserEvent(Link<void*, void>(pEvent, LOKPostAsyncEvent)); + Application::PostUserEvent(LINK_NONMEMBER(pEvent, LOKPostAsyncEvent)); } } diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index fd90f150f0c6..791996653298 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -944,7 +944,8 @@ void SfxViewFrame::StateReload_Impl( SfxItemSet& rSet ) rSet.DisableItem( nWhich ); else { - const SfxBoolItem* pItem = pSh->GetMedium()->GetItemSet().GetItem(SID_EDITDOC, false); + SfxMedium* pMedium = pSh->GetMedium(); + const SfxBoolItem* pItem = pMedium ? pMedium->GetItemSet().GetItem(SID_EDITDOC, false) : nullptr; if ( pItem && !pItem->GetValue() ) rSet.DisableItem( nWhich ); else @@ -1274,8 +1275,8 @@ void SfxViewFrame::AppendReadOnlyInfobar() bool bSignWithCert = false; if (bSignPDF) { - SfxObjectShell* pObjectShell = GetObjectShell(); - uno::Reference<security::XCertificate> xCertificate = pObjectShell->GetSignPDFCertificate().m_xCertificate; + SfxViewShell* pViewShell = GetViewShell(); + uno::Reference<security::XCertificate> xCertificate = pViewShell->GetSignPDFCertificate().m_xCertificate; bSignWithCert = xCertificate.is(); } diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index e42a69ea27aa..10dcb366eefc 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -47,6 +47,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/datatransfer/clipboard/XClipboardListener.hpp> #include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp> +#include <com/sun/star/drawing/XShapes.hpp> #include <com/sun/star/view/XRenderable.hpp> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> @@ -2817,6 +2818,83 @@ svl::crypto::CertificateOrName SfxViewShell::GetSigningCertificate() const return pImpl->m_aSigningCertificate; } +namespace +{ +uno::Reference<beans::XPropertySet> +GetSelectedShapeOfView(const uno::Reference<frame::XController>& xController) +{ + uno::Reference<view::XSelectionSupplier> xSelectionSupplier(xController, uno::UNO_QUERY); + uno::Reference<drawing::XShapes> xShapes(xSelectionSupplier->getSelection(), uno::UNO_QUERY); + if (!xShapes.is() || xShapes->getCount() != 1) + { + return {}; + } + + return uno::Reference<beans::XPropertySet>(xShapes->getByIndex(0), uno::UNO_QUERY); +} +} + +void SfxViewShell::SetSignPDFCertificate(const svl::crypto::CertificateOrName& rCertificateOrName) +{ + uno::Reference<beans::XPropertySet> xShape = GetSelectedShapeOfView(GetController()); + if (!xShape.is() || !xShape->getPropertySetInfo()->hasPropertyByName("InteropGrabBag")) + { + return; + } + + comphelper::SequenceAsHashMap aMap(xShape->getPropertyValue("InteropGrabBag")); + + auto it = aMap.find("SignatureCertificate"); + if (rCertificateOrName.Is()) + { + if (rCertificateOrName.m_xCertificate.is()) + { + aMap["SignatureCertificate"] <<= rCertificateOrName.m_xCertificate; + } + else + { + aMap["SignatureCertificate"] <<= rCertificateOrName.m_aName; + } + } + else if (it != aMap.end()) + { + aMap.erase(it); + } + xShape->setPropertyValue("InteropGrabBag", uno::Any(aMap.getAsConstPropertyValueList())); + if (!rCertificateOrName.Is()) + { + // The shape's property is now reset, so the doc model is no longer modified. + GetObjectShell()->SetModified(false); + } +} + +svl::crypto::CertificateOrName SfxViewShell::GetSignPDFCertificate() const +{ + uno::Reference<beans::XPropertySet> xShape = GetSelectedShapeOfView(GetController()); + if (!xShape.is() || !xShape->getPropertySetInfo()->hasPropertyByName("InteropGrabBag")) + { + return {}; + } + + comphelper::SequenceAsHashMap aMap(xShape->getPropertyValue("InteropGrabBag")); + auto it = aMap.find("SignatureCertificate"); + if (it == aMap.end()) + { + return {}; + } + + svl::crypto::CertificateOrName aCertificateOrName; + if (it->second.has<uno::Reference<security::XCertificate>>()) + { + it->second >>= aCertificateOrName.m_xCertificate; + } + else + { + it->second >>= aCertificateOrName.m_aName; + } + return aCertificateOrName; +} + bool SfxViewShell::PrepareClose ( bool bUI // TRUE: Allow Dialog and so on, FALSE: silent-mode diff --git a/sfx2/uiconfig/ui/alienwarndialog.ui b/sfx2/uiconfig/ui/alienwarndialog.ui index 02570dfd1ed4..c0c913977b00 100644 --- a/sfx2/uiconfig/ui/alienwarndialog.ui +++ b/sfx2/uiconfig/ui/alienwarndialog.ui @@ -10,8 +10,8 @@ <property name="type-hint">dialog</property> <property name="skip-taskbar-hint">True</property> <property name="message-type">question</property> - <property name="text" translatable="yes" context="alienwarndialog|AlienWarnDialog">This document may contain formatting or content that cannot be saved in the currently selected file format “%FORMATNAME”.</property> - <property name="secondary-text" translatable="yes" context="alienwarndialog|AlienWarnDialog">Use the default ODF file format to be sure that the document is saved correctly.</property> + <property name="text" translatable="yes" context="alienwarndialog|AlienWarnDialog">This document may contain formatting or content that cannot be saved in the currently selected file format “%FORMATNAME (*.%EXTENSION)”.</property> + <property name="secondary-text" translatable="yes" context="alienwarndialog|AlienWarnDialog">Use the default ODF file format (*.%EXTENSION) to be sure that the document is saved correctly.</property> <child internal-child="vbox"> <object class="GtkBox" id="messagedialog-vbox"> <property name="can-focus">False</property> diff --git a/sfx2/uiconfig/ui/templatedlg.ui b/sfx2/uiconfig/ui/templatedlg.ui index 7f7fe31d6371..23d8cc8d8720 100644 --- a/sfx2/uiconfig/ui/templatedlg.ui +++ b/sfx2/uiconfig/ui/templatedlg.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.38.2 --> +<!-- Generated with glade 3.40.0 --> <interface domain="sfx"> <requires lib="gtk+" version="3.20"/> <object class="GtkMenu" id="contextmenu"> @@ -158,40 +158,14 @@ <property name="can-focus">False</property> <property name="spacing">12</property> <child> - <object class="GtkBox" id="box7"> + <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can-focus">False</property> - <child> - <object class="GtkMenuButton" id="action_menu"> - <property name="label" translatable="yes" context="templatedlg|action_menu|label">_Manage</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="use-underline">True</property> - <property name="always-show-image">True</property> - <property name="draw-indicator">True</property> - <property name="popup">menu1</property> - <property name="use-popover">False</property> - <child> - <placeholder/> - </child> - <child internal-child="accessible"> - <object class="AtkObject" id="action_menu-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="templatedlg|extended_tip|action_menu">Provides commands to create, rename and delete categories, reset default templates, and refresh the template manager.</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> + <property name="label" translatable="yes" context="templatedlg|label1">Filter</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack-type">end</property> <property name="position">0</property> </packing> </child> @@ -239,20 +213,43 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack-type">end</property> <property name="position">1</property> </packing> </child> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkBox" id="box7"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" translatable="yes" context="templatedlg|label1">Filter</property> + <child> + <object class="GtkMenuButton" id="action_menu"> + <property name="label" translatable="yes" context="templatedlg|action_menu|label">_Manage</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="use-underline">True</property> + <property name="always-show-image">True</property> + <property name="draw-indicator">True</property> + <property name="popup">menu1</property> + <property name="use-popover">False</property> + <child> + <placeholder/> + </child> + <child internal-child="accessible"> + <object class="AtkObject" id="action_menu-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="templatedlg|extended_tip|action_menu">Provides commands to create, rename and delete categories, reset default templates, and refresh the template manager.</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack-type">end</property> <property name="position">2</property> </packing> </child> @@ -260,7 +257,6 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack-type">end</property> <property name="position">1</property> </packing> </child> diff --git a/shell/source/win32/SysShExec.cxx b/shell/source/win32/SysShExec.cxx index 79310d131e72..5e56b39692ce 100644 --- a/shell/source/win32/SysShExec.cxx +++ b/shell/source/win32/SysShExec.cxx @@ -43,6 +43,7 @@ #include <prewin.h> #include <Shlobj.h> #include <systools/win32/comtools.hxx> +#include <systools/win32/extended_max_path.hxx> #include <postwin.h> using namespace ::com::sun::star::system::SystemShellExecuteFlags; @@ -210,13 +211,12 @@ BOOL CALLBACK FindAndActivateProcWnd(HWND hwnd, LPARAM lParam) OUString checkFile(const OUString& pathname, const OUString& aCommand) { - const int MAX_LONG_PATH = 32767; // max longpath on WinNT - if (pathname.getLength() >= MAX_LONG_PATH) + if (pathname.getLength() >= EXTENDED_MAX_PATH) { throw css::lang::IllegalArgumentException( "XSystemShellExecute.execute, path <" + pathname + "> too long", {}, 0); } - wchar_t path[MAX_LONG_PATH]; + wchar_t path[EXTENDED_MAX_PATH]; wcscpy_s(path, o3tl::toW(pathname.getStr())); for (int i = 0;; ++i) { // tdf#130216: normalize c:\path\to\something\..\else into c:\path\to\else diff --git a/solenv/bin/macosx-codesign-app-bundle b/solenv/bin/macosx-codesign-app-bundle index bc5d312e1c4e..54f534cccb1c 100755 --- a/solenv/bin/macosx-codesign-app-bundle +++ b/solenv/bin/macosx-codesign-app-bundle @@ -128,7 +128,7 @@ done # Quick Look plugins will only load if with sandbox entitlements find "$APP_BUNDLE" -name 'QuickLook*.appex' -type d | while read appex; do - codesign --force --prefix=$MACOSX_BUNDLE_IDENTIFIER. --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements_quicklookappex "$appex" || exit 1 + codesign --force --timestamp --options=runtime --prefix=$MACOSX_BUNDLE_IDENTIFIER. --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements_quicklookappex "$appex"|| exit 1 done # Sign executables diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist index 2c341f8254ee..b327cdbcb79c 100644 --- a/solenv/clang-format/excludelist +++ b/solenv/clang-format/excludelist @@ -3538,6 +3538,7 @@ extensions/source/logging/logrecord.cxx extensions/source/logging/logrecord.hxx extensions/source/logging/methodguard.hxx extensions/source/logging/plaintextformatter.cxx +extensions/source/macosx/spotlight/GetMetadataForFile.h extensions/source/ole/comifaces.hxx extensions/source/ole/jscriptclasses.cxx extensions/source/ole/jscriptclasses.hxx @@ -6123,7 +6124,6 @@ include/vcl/Scanline.hxx include/vcl/abstdlg.hxx include/vcl/accessibility/vclxaccessiblecomponent.hxx include/vcl/accessiblefactory.hxx -include/vcl/accessibletable.hxx include/vcl/accessibletableprovider.hxx include/vcl/alpha.hxx include/vcl/bitmap.hxx @@ -13412,11 +13412,17 @@ toolkit/inc/controls/roadmapentry.hxx toolkit/inc/controls/stdtabcontroller.hxx toolkit/inc/controls/stdtabcontrollermodel.hxx toolkit/inc/controls/svmedit.hxx +toolkit/inc/controls/table/AccessibleGridControl.hxx +toolkit/inc/controls/table/AccessibleGridControlBase.hxx +toolkit/inc/controls/table/AccessibleGridControlHeader.hxx +toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx +toolkit/inc/controls/table/AccessibleGridControlTable.hxx +toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx +toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx toolkit/inc/controls/table/defaultinputhandler.hxx toolkit/inc/controls/table/gridtablerenderer.hxx toolkit/inc/controls/table/tablecontrol.hxx toolkit/inc/controls/table/tablecontrolinterface.hxx -toolkit/inc/controls/table/tableinputhandler.hxx toolkit/inc/controls/table/tablemodel.hxx toolkit/inc/controls/table/tablerenderer.hxx toolkit/inc/controls/table/tablesort.hxx @@ -13478,6 +13484,13 @@ toolkit/source/controls/spinningprogress.cxx toolkit/source/controls/stdtabcontroller.cxx toolkit/source/controls/stdtabcontrollermodel.cxx toolkit/source/controls/svtxgridcontrol.cxx +toolkit/source/controls/table/AccessibleGridControl.cxx +toolkit/source/controls/table/AccessibleGridControlBase.cxx +toolkit/source/controls/table/AccessibleGridControlHeader.cxx +toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx +toolkit/source/controls/table/AccessibleGridControlTable.cxx +toolkit/source/controls/table/AccessibleGridControlTableBase.cxx +toolkit/source/controls/table/AccessibleGridControlTableCell.cxx toolkit/source/controls/table/cellvalueconversion.cxx toolkit/source/controls/table/cellvalueconversion.hxx toolkit/source/controls/table/defaultinputhandler.cxx @@ -14067,13 +14080,6 @@ vcl/inc/accessibility/AccessibleBrowseBoxHeaderCell.hxx vcl/inc/accessibility/AccessibleBrowseBoxTable.hxx vcl/inc/accessibility/AccessibleBrowseBoxTableBase.hxx vcl/inc/accessibility/AccessibleBrowseBoxTableCell.hxx -vcl/inc/accessibility/AccessibleGridControl.hxx -vcl/inc/accessibility/AccessibleGridControlBase.hxx -vcl/inc/accessibility/AccessibleGridControlHeader.hxx -vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx -vcl/inc/accessibility/AccessibleGridControlTable.hxx -vcl/inc/accessibility/AccessibleGridControlTableBase.hxx -vcl/inc/accessibility/AccessibleGridControlTableCell.hxx vcl/inc/accessibility/IComboListBoxHelper.hxx vcl/inc/accessibility/accessiblebrowseboxcell.hxx vcl/inc/accessibility/accessibleeditbrowseboxcell.hxx @@ -14117,13 +14123,6 @@ vcl/source/accessibility/AccessibleBrowseBoxHeaderCell.cxx vcl/source/accessibility/AccessibleBrowseBoxTable.cxx vcl/source/accessibility/AccessibleBrowseBoxTableBase.cxx vcl/source/accessibility/AccessibleBrowseBoxTableCell.cxx -vcl/source/accessibility/AccessibleGridControl.cxx -vcl/source/accessibility/AccessibleGridControlBase.cxx -vcl/source/accessibility/AccessibleGridControlHeader.cxx -vcl/source/accessibility/AccessibleGridControlHeaderCell.cxx -vcl/source/accessibility/AccessibleGridControlTable.cxx -vcl/source/accessibility/AccessibleGridControlTableBase.cxx -vcl/source/accessibility/AccessibleGridControlTableCell.cxx vcl/source/accessibility/acc_factory.cxx vcl/source/accessibility/accessiblebrowseboxcell.cxx vcl/source/accessibility/accessibleeditbrowseboxcell.cxx diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 1c289b193d4e..2bc51aa28799 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -185,7 +185,7 @@ $(if $(filter TRUE,$(ENABLE_QT5)), \ sed -e 's/@APPNAME@/$(subst $(gb_Executable_EXT),,$(notdir $(1)))/' $(QT5_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \ cp $(QT5_PLATFORMS_SRCDIR)/qtlogo.svg $(QT5_PLATFORMS_SRCDIR)/qtloader.js $(dir $(1)) && \ ,$(if $(filter TRUE,$(ENABLE_QT6)), \ - sed -e 's/@APPNAME@/$(basename $(notdir $(1)))/g' -e 's/@APPEXPORTNAME@/$(basename $(notdir $(1)))_entry/g' -e 's/@PRELOAD@//g' -e 's/}$(CLOSE_PAREN);$$/}$(CLOSE_PAREN); window.Module = instance;/' $(QT6_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \ + sed -z -e 's/@APPNAME@/$(basename $(notdir $(1)))/g' -e 's/@APPEXPORTNAME@/$(basename $(notdir $(1)))_entry/g' -e 's/@PRELOAD@\n }/}$(COMMA)$(subst ','\'',$(EMSCRIPTEN_EXTRA_QTLOADER_CONFIG))/' -e 's/}$(CLOSE_PAREN);$$/}$(CLOSE_PAREN); window.Module = instance;/' $(QT6_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \ cp $(QT6_PLATFORMS_SRCDIR)/qtlogo.svg $(QT6_PLATFORMS_SRCDIR)/qtloader.js $(dir $(1)) && \ )) \ cp $(gb_CustomTarget_workdir)/static/emscripten_fs_image/soffice.data $(dir $(1))/soffice.data && \ diff --git a/solenv/sanitizers/ui/cui.false b/solenv/sanitizers/ui/cui.false index f779cafe8ce0..fcd145e35547 100644 --- a/solenv/sanitizers/ui/cui.false +++ b/solenv/sanitizers/ui/cui.false @@ -2,4 +2,3 @@ cui/uiconfig/ui/aboutdialog.ui://GtkImage[@id='imAbout'] no-labelled-by cui/uiconfig/ui/aboutdialog.ui://GtkImage[@id='imBrand'] no-labelled-by cui/uiconfig/ui/aboutdialog.ui://GtkLabel[@id='lbAbout'] orphan-label cui/uiconfig/ui/aboutdialog.ui://GtkLabel[@id='lbCopyright'] orphan-label -cui/uiconfig/ui/querysetinsmodedialog.ui://GtkImage[@id='imSetInsMode'] no-labelled-by diff --git a/soltools/cpp/cpp.h b/soltools/cpp/cpp.h index 000327561d52..b72188472212 100644 --- a/soltools/cpp/cpp.h +++ b/soltools/cpp/cpp.h @@ -68,8 +68,6 @@ extern void setup_kwtab(void); #define EOB 0xFE /* sentinel for end of input buffer */ #define EOFC 0xFD /* sentinel for end of input file */ -#define XPWS 1 /* token flag: white space to assure token sep. */ -#define XTWS 2 typedef struct token { diff --git a/stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx b/stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx index 03fab8b59e04..ebfadcc4b4c9 100644 --- a/stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx +++ b/stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx @@ -34,6 +34,7 @@ #include <rtl/ustring.hxx> #include <sal/types.h> #include <o3tl/safeint.hxx> +#include <o3tl/numeric.hxx> #include <string_view> @@ -43,19 +44,12 @@ namespace com::sun::star::uri { class XUriReference; } namespace { -int getHexWeight(sal_Unicode c) { - return c >= '0' && c <= '9' ? static_cast< int >(c - '0') - : c >= 'A' && c <= 'F' ? static_cast< int >(c - 'A' + 10) - : c >= 'a' && c <= 'f' ? static_cast< int >(c - 'a' + 10) - : -1; -} - int parseEscaped(std::u16string_view part, sal_Int32 * index) { if (part.size() - *index < 3 || part[*index] != '%') { return -1; } - int n1 = getHexWeight(part[*index + 1]); - int n2 = getHexWeight(part[*index + 2]); + int n1 = o3tl::convertToHex<int>(part[*index + 1]); + int n2 = o3tl::convertToHex<int>(part[*index + 2]); if (n1 < 0 || n2 < 0) { return -1; } diff --git a/svl/source/config/ctloptions.cxx b/svl/source/config/ctloptions.cxx index 9f151bcb01cb..21418e80072c 100644 --- a/svl/source/config/ctloptions.cxx +++ b/svl/source/config/ctloptions.cxx @@ -38,6 +38,7 @@ class SvtCTLOptions_Impl : public utl::ConfigItem private: bool m_bIsLoaded; bool m_bCTLFontEnabled; + bool m_bCTLVerticalText; bool m_bCTLSequenceChecking; bool m_bCTLRestricted; bool m_bCTLTypeAndReplace; @@ -45,6 +46,7 @@ private: SvtCTLOptions::TextNumerals m_eCTLTextNumerals; bool m_bROCTLFontEnabled; + bool m_bROCTLVerticalText; bool m_bROCTLSequenceChecking; bool m_bROCTLRestricted; bool m_bROCTLTypeAndReplace; @@ -63,6 +65,8 @@ public: bool IsLoaded() const { return m_bIsLoaded; } void SetCTLFontEnabled( bool _bEnabled ); + void SetCTLVerticalText(bool bVertical); + void SetCTLSequenceChecking( bool _bEnabled ); void SetCTLSequenceCheckingRestricted( bool _bEnable ); @@ -94,6 +98,7 @@ bool SvtCTLOptions_Impl::IsReadOnly(SvtCTLOptions::EOption eOption) const case SvtCTLOptions::E_CTLTEXTNUMERALS : bReadOnly = m_bROCTLTextNumerals ; break; case SvtCTLOptions::E_CTLSEQUENCECHECKINGRESTRICTED: bReadOnly = m_bROCTLRestricted ; break; case SvtCTLOptions::E_CTLSEQUENCECHECKINGTYPEANDREPLACE: bReadOnly = m_bROCTLTypeAndReplace; break; + case SvtCTLOptions::E_CTLVERTICALTEXT : bReadOnly = m_bROCTLVerticalText ; break; default: assert(false); } return bReadOnly; @@ -104,6 +109,7 @@ SvtCTLOptions_Impl::SvtCTLOptions_Impl() : m_bIsLoaded ( false ), m_bCTLFontEnabled ( true ), + m_bCTLVerticalText ( true ), m_bCTLSequenceChecking ( false ), m_bCTLRestricted ( false ), m_bCTLTypeAndReplace ( false ), @@ -111,6 +117,7 @@ SvtCTLOptions_Impl::SvtCTLOptions_Impl() : m_eCTLTextNumerals ( SvtCTLOptions::NUMERALS_ARABIC ), m_bROCTLFontEnabled ( CFG_READONLY_DEFAULT ), + m_bROCTLVerticalText ( CFG_READONLY_DEFAULT ), m_bROCTLSequenceChecking( CFG_READONLY_DEFAULT ), m_bROCTLRestricted ( CFG_READONLY_DEFAULT ), m_bROCTLTypeAndReplace ( CFG_READONLY_DEFAULT ), @@ -210,6 +217,16 @@ void SvtCTLOptions_Impl::ImplCommit() } } break; + case 6: + { + if (!m_bROCTLVerticalText) + { + pNames[nRealCount] = pOrgNames[nProp]; + pValues[nRealCount] <<= m_bCTLVerticalText; + ++nRealCount; + } + } + break; } } aNames.realloc(nRealCount); @@ -230,7 +247,8 @@ void SvtCTLOptions_Impl::Load() u"CTLCursorMovement"_ustr, u"CTLTextNumerals"_ustr, u"CTLSequenceCheckingRestricted"_ustr, - u"CTLSequenceCheckingTypeAndReplace"_ustr }; + u"CTLSequenceCheckingTypeAndReplace"_ustr, + u"CTLVerticalText"_ustr}; EnableNotification( rPropertyNames ); } Sequence< Any > aValues = GetProperties( rPropertyNames ); @@ -256,6 +274,7 @@ void SvtCTLOptions_Impl::Load() case 1: { m_bCTLSequenceChecking = bValue; m_bROCTLSequenceChecking = pROStates[nProp]; } break; case 4: { m_bCTLRestricted = bValue; m_bROCTLRestricted = pROStates[nProp]; } break; case 5: { m_bCTLTypeAndReplace = bValue; m_bROCTLTypeAndReplace = pROStates[nProp]; } break; + case 6: { m_bCTLVerticalText = bValue; m_bROCTLVerticalText = pROStates[nProp]; } break; } } else if ( pValues[nProp] >>= nValue ) @@ -281,6 +300,15 @@ void SvtCTLOptions_Impl::SetCTLFontEnabled( bool _bEnabled ) NotifyListeners(ConfigurationHints::NONE); } } +void SvtCTLOptions_Impl::SetCTLVerticalText(bool bVertical) +{ + if (!m_bROCTLVerticalText && m_bCTLVerticalText != bVertical) + { + m_bCTLVerticalText = bVertical; + SetModified(); + NotifyListeners(ConfigurationHints::NONE); + } +} void SvtCTLOptions_Impl::SetCTLSequenceChecking( bool _bEnabled ) { if(!m_bROCTLSequenceChecking && m_bCTLSequenceChecking != _bEnabled) @@ -379,6 +407,17 @@ bool SvtCTLOptions::IsCTLFontEnabled() return officecfg::Office::Common::I18N::CTL::CTLFont::get(); } +void SvtCTLOptions::SetCTLVerticalText(bool bVertical) +{ + assert(m_pImpl->IsLoaded()); + m_pImpl->SetCTLVerticalText(bVertical); +} + +bool SvtCTLOptions::IsCTLVerticalText() +{ + return officecfg::Office::Common::I18N::CTL::CTLVerticalText::get(); +} + void SvtCTLOptions::SetCTLSequenceChecking( bool _bEnabled ) { assert(m_pImpl->IsLoaded()); diff --git a/svl/source/crypto/cryptosign.cxx b/svl/source/crypto/cryptosign.cxx index 90664e03caaf..c1f18f647962 100644 --- a/svl/source/crypto/cryptosign.cxx +++ b/svl/source/crypto/cryptosign.cxx @@ -14,6 +14,7 @@ #include <svl/cryptosign.hxx> #include <svl/sigstruct.hxx> #include <config_crypto.h> +#include <o3tl/numeric.hxx> #if USE_CRYPTO_NSS #include <systools/curlinit.hxx> @@ -884,24 +885,6 @@ bool CreateSigningCertificateAttribute(void const * pDerEncoded, int nDerEncoded namespace svl::crypto { -static int AsHex(char ch) -{ - int nRet = 0; - if (rtl::isAsciiDigit(static_cast<unsigned char>(ch))) - nRet = ch - '0'; - else - { - if (ch >= 'a' && ch <= 'f') - nRet = ch - 'a'; - else if (ch >= 'A' && ch <= 'F') - nRet = ch - 'A'; - else - return -1; - nRet += 10; - } - return nRet; -} - std::vector<unsigned char> DecodeHexString(std::string_view rHex) { std::vector<unsigned char> aRet; @@ -912,7 +895,7 @@ std::vector<unsigned char> DecodeHexString(std::string_view rHex) for (size_t i = 0; i < nHexLen; ++i) { nByte = nByte << 4; - sal_Int8 nParsed = AsHex(rHex[i]); + sal_Int8 nParsed = o3tl::convertToHex<int>(rHex[i]); if (nParsed == -1) { SAL_WARN("svl.crypto", "DecodeHexString: invalid hex value"); @@ -2405,7 +2388,7 @@ void Signing::appendHex(sal_Int8 nInt, OStringBuffer& rBuffer) rBuffer.append( pHexDigits[ nInt & 15 ] ); } -bool CertificateOrName::Is() +bool CertificateOrName::Is() const { return m_xCertificate.is() || !m_aName.isEmpty(); } diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx index 54b9e227ebce..a5144962632e 100644 --- a/svl/source/items/style.cxx +++ b/svl/source/items/style.cxx @@ -284,6 +284,11 @@ void SfxStyleSheetBase::SetHelpId( const OUString& rFile, sal_uInt32 nId ) nHelpId = nId; } +sal_Int32 SfxStyleSheetBase::GetSpotlightId() +{ + return -1; +} + /** * Next style possible? * Default: Yes diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index eda77fc62859..d72d7202dfe0 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -21,6 +21,7 @@ #include <o3tl/sprintf.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <comphelper/string.hxx> #include <sal/log.hxx> #include <tools/debug.hxx> @@ -1610,25 +1611,15 @@ SvNumberformat::LocaleType SvNumberformat::ImpGetLocaleType(std::u16string_view cToken = rString[nPos]; if (cToken == ']') break; - if ( '0' <= cToken && cToken <= '9' ) - { - nNum *= 16; - nNum += cToken - '0'; - } - else if ( 'a' <= cToken && cToken <= 'f' ) - { - nNum *= 16; - nNum += cToken - 'a' + 10; - } - else if ( 'A' <= cToken && cToken <= 'F' ) - { - nNum *= 16; - nNum += cToken - 'A' + 10; - } - else - { + + int nValue = o3tl::convertToHex<int>(cToken); + + if (nValue == -1) return LocaleType(); // LANGUAGE_DONTKNOW; - } + + nNum *= 16; + nNum += nValue; + ++nPos; } diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx index 2ec5abf16d28..0271c4972173 100644 --- a/svtools/source/config/colorcfg.cxx +++ b/svtools/source/config/colorcfg.cxx @@ -423,7 +423,9 @@ IMPL_LINK( ColorConfig_Impl, DataChangedEventListener, VclSimpleEvent&, rEvent, } } -// Loads the ThemeColors (ExpertConfig Colors) into static ThemeColors::maThemeColors +// caches registry colors into the static ThemeColors::m_aThemeColors object. if the color +// value is set to COL_AUTO, the ColorConfig::GetColorValue function calls ColorConfig::GetDefaultColor() +// which returns some hard coded colors for the document, and StyleSettings colors for the UI (lcl_GetDefaultUIColor). void ColorConfig::LoadThemeColorsFromRegistry() { ThemeColors& rThemeColors = ThemeColors::GetThemeColors(); @@ -472,13 +474,25 @@ void ColorConfig::LoadThemeColorsFromRegistry() void ColorConfig::SetupTheme() { - if (ThemeColors::IsThemeDisabled() - || ThemeColors::IsAutomaticTheme(GetCurrentSchemeName())) + if (ThemeColors::IsThemeDisabled()) { ThemeColors::SetThemeCached(false); return; } + // When the theme is set to RESET, the IsThemeReset conditional doesn't let the theme to be loaded + // as explained above, and returns if the StyleSettings doesn't have system colors loaded. IsThemeReset + // is also used in VclPluginCanUseThemeColors where it prevents the VCL_PLUGINs from using theme colors. + if (ThemeColors::IsThemeReset()) + { + if (!Application::GetSettings().GetStyleSettings().GetSystemColorsLoaded()) + return; + ThemeColors::SetThemeState(ThemeState::ENABLED); + } + + // When the application is started for the first time, themes is set to ENABLED. + // that would skip the first two checks for IsThemeDisabled and IsThemeReset in the + // ColorConfig::SetupTheme function and call LoadThemeColorsFromRegistry(); if (!ThemeColors::IsThemeCached()) { // registry to ColorConfig::m_pImpl diff --git a/svtools/source/misc/ehdl.cxx b/svtools/source/misc/ehdl.cxx index e740055a65df..f84ae9dfcc37 100644 --- a/svtools/source/misc/ehdl.cxx +++ b/svtools/source/misc/ehdl.cxx @@ -230,8 +230,8 @@ bool SfxErrorHandler::GetErrorString(ErrCode lErrId, OUString &rStr) const } SfxErrorContext::SfxErrorContext( - sal_uInt16 nCtxIdP, weld::Window *pWindow, const ErrMsgCode* pIdsP, const std::locale& rResLocaleP) -: ErrorContext(pWindow), nCtxId(nCtxIdP), pIds(pIdsP), aResLocale(rResLocaleP) + sal_uInt16 nCtxIdP, weld::Window *pWindow, const ErrMsgCode* pIdsP) +: ErrorContext(pWindow), nCtxId(nCtxIdP), pIds(pIdsP) { if (!pIds) pIds = RID_ERRCTX; @@ -240,14 +240,19 @@ SfxErrorContext::SfxErrorContext( SfxErrorContext::SfxErrorContext( sal_uInt16 nCtxIdP, OUString aArg1P, weld::Window *pWindow, - const ErrMsgCode* pIdsP, const std::locale& rResLocaleP) -: ErrorContext(pWindow), nCtxId(nCtxIdP), pIds(pIdsP), aResLocale(rResLocaleP), + const ErrMsgCode* pIdsP) +: ErrorContext(pWindow), nCtxId(nCtxIdP), pIds(pIdsP), aArg1(std::move(aArg1P)) { if (!pIds) pIds = RID_ERRCTX; } +OUString SfxErrorContext::Translate(TranslateId aId) const +{ + return SvtResId(aId); +} + bool SfxErrorContext::GetString(const ErrCodeMsg& nErr, OUString &rStr) /* [Description] @@ -261,7 +266,7 @@ bool SfxErrorContext::GetString(const ErrCodeMsg& nErr, OUString &rStr) { if (sal_uInt32(pItem->second) == nCtxId) { - rStr = Translate::get(pItem->first, aResLocale); + rStr = Translate(pItem->first); rStr = rStr.replaceAll("$(ARG1)", aArg1); bRet = true; break; @@ -277,7 +282,7 @@ bool SfxErrorContext::GetString(const ErrCodeMsg& nErr, OUString &rStr) { if (sal_uInt32(pItem->second) == nId) { - rStr = rStr.replaceAll("$(ERR)", Translate::get(pItem->first, aResLocale)); + rStr = rStr.replaceAll("$(ERR)", Translate(pItem->first)); break; } } diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk index cddde28842eb..4dd372c5bda4 100644 --- a/svx/Library_svx.mk +++ b/svx/Library_svx.mk @@ -197,6 +197,7 @@ $(eval $(call gb_Library_add_exception_objects,svx,\ svx/source/form/tbxform \ svx/source/items/algitem \ svx/source/items/autoformathelper \ + svx/source/items/ehdl \ svx/source/items/hlnkitem \ svx/source/items/numfmtsh \ svx/source/items/legacyitem \ diff --git a/svx/Module_svx.mk b/svx/Module_svx.mk index ddf824cdf4bc..d89aaad42994 100644 --- a/svx/Module_svx.mk +++ b/svx/Module_svx.mk @@ -22,6 +22,7 @@ $(eval $(call gb_Module_Module,svx)) $(eval $(call gb_Module_add_targets,svx,\ Library_svx \ Library_svxcore \ + Package_document_themes \ )) ifeq ($(gb_Side),host) diff --git a/svx/Package_document_themes.mk b/svx/Package_document_themes.mk new file mode 100644 index 000000000000..0664f1f9f0ae --- /dev/null +++ b/svx/Package_document_themes.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# 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/. +# + +$(eval $(call gb_Package_Package,svx_document_themes,$(SRCDIR)/svx/uiconfig/themes)) + +$(eval $(call gb_Package_add_files_with_dir,svx_document_themes,$(LIBO_SHARE_FOLDER)/themes,\ + Beach.theme \ + Breeze.theme \ + Forest.theme \ + Libreoffice.theme \ + Ocean.theme \ + Rainbow.theme \ + Sunset.theme \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/svx/qa/unit/svdraw.cxx b/svx/qa/unit/svdraw.cxx index e2c6b58a9dac..b3262e588e94 100644 --- a/svx/qa/unit/svdraw.cxx +++ b/svx/qa/unit/svdraw.cxx @@ -862,10 +862,11 @@ CPPUNIT_TEST_FIXTURE(SvdrawTest, testVisualSignResize) { return; } - SdrView* pView = SfxViewShell::Current()->GetDrawView(); + SfxViewShell* pViewShell + = SfxViewShell::Get(uno::Reference<frame::XController>(xController, uno::UNO_QUERY)); svl::crypto::CertificateOrName aCertificateOrName; aCertificateOrName.m_xCertificate = xCert; - svx::SignatureLineHelper::setShapeCertificate(pView, aCertificateOrName); + svx::SignatureLineHelper::setShapeCertificate(pViewShell, aCertificateOrName); pObjectShell->SetModified(false); // When resizing the shape by moving the bottom right (last) handle towards top right: diff --git a/svx/source/dialog/signaturelinehelper.cxx b/svx/source/dialog/signaturelinehelper.cxx index d8a41e8d3cc7..d4f286995f2b 100644 --- a/svx/source/dialog/signaturelinehelper.cxx +++ b/svx/source/dialog/signaturelinehelper.cxx @@ -34,6 +34,7 @@ #include <unotools/syslocale.hxx> #include <vcl/weld.hxx> #include <sfx2/digitalsignatures.hxx> +#include <sfx2/viewsh.hxx> using namespace com::sun::star; @@ -135,9 +136,10 @@ uno::Reference<graphic::XGraphic> importSVG(std::u16string_view rSVG) return xGraphic; } -void setShapeCertificate(const SdrView* pView, +void setShapeCertificate(SfxViewShell* pViewShell, const svl::crypto::CertificateOrName& rCertificateOrName) { + const SdrView* pView = pViewShell->GetDrawView(); const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() < 1) { @@ -154,16 +156,7 @@ void setShapeCertificate(const SdrView* pView, // Remember the selected certificate. uno::Reference<drawing::XShape> xShape = pSignatureLine->getUnoShape(); uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY); - comphelper::SequenceAsHashMap aMap(xShapeProps->getPropertyValue(u"InteropGrabBag"_ustr)); - if (rCertificateOrName.m_xCertificate.is()) - { - aMap[u"SignatureCertificate"_ustr] <<= rCertificateOrName.m_xCertificate; - } - else - { - aMap[u"SignatureCertificate"_ustr] <<= rCertificateOrName.m_aName; - } - xShapeProps->setPropertyValue("InteropGrabBag", uno::Any(aMap.getAsConstPropertyValueList())); + pViewShell->SetSignPDFCertificate(rCertificateOrName); // Read svg and replace placeholder texts. OUString aSvgImage( diff --git a/svx/source/items/clipfmtitem.cxx b/svx/source/items/clipfmtitem.cxx index caae609f6204..57e0342fba97 100644 --- a/svx/source/items/clipfmtitem.cxx +++ b/svx/source/items/clipfmtitem.cxx @@ -35,13 +35,13 @@ struct SvxClipboardFormatItem_Impl SfxPoolItem* SvxClipboardFormatItem::CreateDefault() { return new SvxClipboardFormatItem(TypedWhichId<SvxClipboardFormatItem>(0)); }; SvxClipboardFormatItem::SvxClipboardFormatItem( TypedWhichId<SvxClipboardFormatItem> nId ) - : SfxPoolItem( nId ), pImpl( new SvxClipboardFormatItem_Impl ) + : SfxPoolItem( nId ), m_pImpl( new SvxClipboardFormatItem_Impl ) { } SvxClipboardFormatItem::SvxClipboardFormatItem( const SvxClipboardFormatItem& rCpy ) : SfxPoolItem( rCpy ), - pImpl( new SvxClipboardFormatItem_Impl( *rCpy.pImpl ) ) + m_pImpl( new SvxClipboardFormatItem_Impl( *rCpy.m_pImpl ) ) { } @@ -76,8 +76,8 @@ bool SvxClipboardFormatItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM { sal_uInt16 nCount = sal_uInt16( aClipFormats.Identifiers.getLength() ); - pImpl->aFmtIds.clear(); - pImpl->aFmtNms.clear(); + m_pImpl->aFmtIds.clear(); + m_pImpl->aFmtNms.clear(); for ( sal_uInt16 n=0; n < nCount; ++n ) AddClipbrdFormat( static_cast<SotClipboardFormatId>(aClipFormats.Identifiers[n]), aClipFormats.Names[n], n ); @@ -92,14 +92,14 @@ bool SvxClipboardFormatItem::operator==( const SfxPoolItem& rComp ) const if (!SfxPoolItem::operator==(rComp)) return false; const SvxClipboardFormatItem& rCmp = static_cast<const SvxClipboardFormatItem&>(rComp); - if(rCmp.pImpl->aFmtNms.size() != pImpl->aFmtNms.size()) + if(rCmp.m_pImpl->aFmtNms.size() != m_pImpl->aFmtNms.size()) return false; int nRet = 1; - for( sal_uInt16 n = 0, nEnd = rCmp.pImpl->aFmtNms.size(); n < nEnd; ++n ) + for( sal_uInt16 n = 0, nEnd = rCmp.m_pImpl->aFmtNms.size(); n < nEnd; ++n ) { - if( pImpl->aFmtIds[ n ] != rCmp.pImpl->aFmtIds[ n ] || - pImpl->aFmtNms[n] != rCmp.pImpl->aFmtNms[n] ) + if( m_pImpl->aFmtIds[ n ] != rCmp.m_pImpl->aFmtIds[ n ] || + m_pImpl->aFmtNms[n] != rCmp.m_pImpl->aFmtNms[n] ) { nRet = 0; break; @@ -116,35 +116,35 @@ SvxClipboardFormatItem* SvxClipboardFormatItem::Clone( SfxItemPool * /*pPool*/ ) void SvxClipboardFormatItem::AddClipbrdFormat( SotClipboardFormatId nId ) { - sal_uInt16 nPos = pImpl->aFmtNms.size(); + sal_uInt16 nPos = m_pImpl->aFmtNms.size(); - pImpl->aFmtNms.insert( pImpl->aFmtNms.begin() + nPos, OUString()); - pImpl->aFmtIds.insert( pImpl->aFmtIds.begin() + nPos, nId ); + m_pImpl->aFmtNms.insert( m_pImpl->aFmtNms.begin() + nPos, OUString()); + m_pImpl->aFmtIds.insert( m_pImpl->aFmtIds.begin() + nPos, nId ); } void SvxClipboardFormatItem::AddClipbrdFormat( SotClipboardFormatId nId, const OUString& rName, sal_uInt16 nPos ) { - if( nPos > pImpl->aFmtNms.size() ) - nPos = pImpl->aFmtNms.size(); + if( nPos > m_pImpl->aFmtNms.size() ) + nPos = m_pImpl->aFmtNms.size(); - pImpl->aFmtNms.insert(pImpl->aFmtNms.begin() + nPos, rName); - pImpl->aFmtIds.insert( pImpl->aFmtIds.begin()+nPos, nId ); + m_pImpl->aFmtNms.insert(m_pImpl->aFmtNms.begin() + nPos, rName); + m_pImpl->aFmtIds.insert( m_pImpl->aFmtIds.begin()+nPos, nId ); } sal_uInt16 SvxClipboardFormatItem::Count() const { - return pImpl->aFmtIds.size(); + return m_pImpl->aFmtIds.size(); } SotClipboardFormatId SvxClipboardFormatItem::GetClipbrdFormatId( sal_uInt16 nPos ) const { - return pImpl->aFmtIds[ nPos ]; + return m_pImpl->aFmtIds[ nPos ]; } OUString const & SvxClipboardFormatItem::GetClipbrdFormatName( sal_uInt16 nPos ) const { - return pImpl->aFmtNms[nPos]; + return m_pImpl->aFmtNms[nPos]; } diff --git a/svx/source/items/ehdl.cxx b/svx/source/items/ehdl.cxx new file mode 100644 index 000000000000..1dbb53e58735 --- /dev/null +++ b/svx/source/items/ehdl.cxx @@ -0,0 +1,21 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 <svx/dialmgr.hxx> +#include <svx/ehdl.hxx> +#include <svx/svxerr.hxx> + +SvxErrorContext::SvxErrorContext(sal_uInt16 nCtxIdP, OUString aArgOne, weld::Window* pWin) + : SfxErrorContext(nCtxIdP, std::move(aArgOne), pWin, RID_SVXERRCTX) +{ +} + +OUString SvxErrorContext::Translate(TranslateId aId) const { return SvxResId(aId); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/svx/source/styles/ColorSets.cxx b/svx/source/styles/ColorSets.cxx index 92b4973cbcca..30268c913720 100644 --- a/svx/source/styles/ColorSets.cxx +++ b/svx/source/styles/ColorSets.cxx @@ -12,12 +12,130 @@ #include <optional> #include <unordered_set> +#include <vector> + +#include <comphelper/configuration.hxx> #include <docmodel/theme/ColorSet.hxx> +#include <docmodel/theme/ThemeColorType.hxx> +#include <o3tl/numeric.hxx> +#include <tools/stream.hxx> +#include <tools/XmlWalker.hxx> +#include <tools/XmlWriter.hxx> +#include <vcl/UserResourceScanner.hxx> +#include <unotools/pathoptions.hxx> +#include <o3tl/enumrange.hxx> +#include <frozen/bits/defines.h> +#include <frozen/bits/elsa_std.h> +#include <frozen/unordered_map.h> using namespace com::sun::star; namespace svx { +namespace +{ + +class DocumentThemeScanner : public vcl::UserResourceScanner +{ +private: + std::vector<model::ColorSet>& mrColorSets; + +public: + DocumentThemeScanner(std::vector<model::ColorSet>& rColorSets) + : mrColorSets(rColorSets) + {} + +private: + static model::ThemeColorType getThemeColor(std::string_view sColorName) + { + model::ThemeColorType eTheme = model::ThemeColorType::Unknown; + + static constexpr auto constThemeColorTypeMapping = frozen::make_unordered_map<std::string_view, model::ThemeColorType>({ + { "dark1", model::ThemeColorType::Dark1 }, + { "light1", model::ThemeColorType::Light1 }, + { "dark2", model::ThemeColorType::Dark2 }, + { "light2", model::ThemeColorType::Light2 }, + { "accent1", model::ThemeColorType::Accent1 }, + { "accent2", model::ThemeColorType::Accent2 }, + { "accent3", model::ThemeColorType::Accent3 }, + { "accent4", model::ThemeColorType::Accent4 }, + { "accent5", model::ThemeColorType::Accent5 }, + { "accent6", model::ThemeColorType::Accent6 }, + { "hyperlink", model::ThemeColorType::Hyperlink }, + { "followed-hyperlink", model::ThemeColorType::FollowedHyperlink }, + }); + auto iterator = constThemeColorTypeMapping.find(sColorName); + if (iterator != constThemeColorTypeMapping.end()) + eTheme = iterator->second; + return eTheme; + } + + bool addResource(const OUString& rPath) override + { + SvFileStream aFileStream(rPath, StreamMode::READ); + + tools::XmlWalker aWalker; + if (!aWalker.open(&aFileStream)) + return false; + + if (aWalker.name() != "theme") + return false; + + OString aThemeNameUTF8 = aWalker.attribute("name"_ostr); + OUString aThemeName = OStringToOUString(aThemeNameUTF8, RTL_TEXTENCODING_UTF8); + + model::ColorSet aColorSet(aThemeName); + + aWalker.children(); + while (aWalker.isValid()) + { + if (aWalker.name() == "theme-colors") + { + aWalker.children(); + while (aWalker.isValid()) + { + if (aWalker.name() == "color") + { + OString aName = aWalker.attribute("name"_ostr); + auto eThemeColor = getThemeColor(aName); + OString aColorString = aWalker.attribute("color"_ostr); + Color aColor; + if (eThemeColor != model::ThemeColorType::Unknown && color::createFromString(aColorString, aColor)) + aColorSet.add(eThemeColor, aColor); + } + aWalker.next(); + } + aWalker.parent(); + } + aWalker.next(); + } + aWalker.parent(); + + mrColorSets.push_back(aColorSet); + + return true; + } + + bool isValidResource(const OUString& rFilename) override + { + if (rFilename.isEmpty()) + return false; + + if (!rFilename.endsWithIgnoreAsciiCase(u".theme")) + return false; + + osl::FileStatus aFileStatus(osl_FileStatus_Mask_Type); + if (!vcl::file::readFileStatus(aFileStatus, rFilename)) + return false; + + if (!aFileStatus.isRegular()) + return false; + + return true; + } +}; + +} // end anonymous namespace ColorSets::ColorSets() { @@ -32,120 +150,19 @@ ColorSets& ColorSets::get() return *sColorSet; } - void ColorSets::init() { + DocumentThemeScanner aScanner(maColorSets); + + if (!comphelper::IsFuzzing()) { - model::ColorSet aColorSet(u"LibreOffice"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0x000000); - aColorSet.add(model::ThemeColorType::Light2, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Accent1, 0x18A303); - aColorSet.add(model::ThemeColorType::Accent2, 0x0369A3); - aColorSet.add(model::ThemeColorType::Accent3, 0xA33E03); - aColorSet.add(model::ThemeColorType::Accent4, 0x8E03A3); - aColorSet.add(model::ThemeColorType::Accent5, 0xC99C00); - aColorSet.add(model::ThemeColorType::Accent6, 0xC9211E); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Rainbow"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0x1C1C1C); - aColorSet.add(model::ThemeColorType::Light2, 0xDDDDDD); - aColorSet.add(model::ThemeColorType::Accent1, 0xFF0000); - aColorSet.add(model::ThemeColorType::Accent2, 0xFF8000); - aColorSet.add(model::ThemeColorType::Accent3, 0xFFFF00); - aColorSet.add(model::ThemeColorType::Accent4, 0x00A933); - aColorSet.add(model::ThemeColorType::Accent5, 0x2A6099); - aColorSet.add(model::ThemeColorType::Accent6, 0x800080); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Beach"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0xFFBF00); - aColorSet.add(model::ThemeColorType::Light2, 0x333333); - aColorSet.add(model::ThemeColorType::Accent1, 0xFFF5CE); - aColorSet.add(model::ThemeColorType::Accent2, 0xDEE6EF); - aColorSet.add(model::ThemeColorType::Accent3, 0xE8F2A1); - aColorSet.add(model::ThemeColorType::Accent4, 0xFFD7D7); - aColorSet.add(model::ThemeColorType::Accent5, 0xDEE7E5); - aColorSet.add(model::ThemeColorType::Accent6, 0xDDDBB6); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x7777EE); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0xEE77D7); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Sunset"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0x492300); - aColorSet.add(model::ThemeColorType::Light2, 0xF6F9D4); - aColorSet.add(model::ThemeColorType::Accent1, 0xFFFF00); - aColorSet.add(model::ThemeColorType::Accent2, 0xFFBF00); - aColorSet.add(model::ThemeColorType::Accent3, 0xFF8000); - aColorSet.add(model::ThemeColorType::Accent4, 0xFF4000); - aColorSet.add(model::ThemeColorType::Accent5, 0xBF0041); - aColorSet.add(model::ThemeColorType::Accent6, 0x800080); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Ocean"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0x2A6099); - aColorSet.add(model::ThemeColorType::Light2, 0xCCCCCC); - aColorSet.add(model::ThemeColorType::Accent1, 0x800080); - aColorSet.add(model::ThemeColorType::Accent2, 0x55308D); - aColorSet.add(model::ThemeColorType::Accent3, 0x2A6099); - aColorSet.add(model::ThemeColorType::Accent4, 0x158466); - aColorSet.add(model::ThemeColorType::Accent5, 0x00A933); - aColorSet.add(model::ThemeColorType::Accent6, 0x81D41A); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Forest"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x000000); - aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Dark2, 0x000000); - aColorSet.add(model::ThemeColorType::Light2, 0xFFFFFF); - aColorSet.add(model::ThemeColorType::Accent1, 0x813709); - aColorSet.add(model::ThemeColorType::Accent2, 0x224B12); - aColorSet.add(model::ThemeColorType::Accent3, 0x706E0C); - aColorSet.add(model::ThemeColorType::Accent4, 0x355269); - aColorSet.add(model::ThemeColorType::Accent5, 0xBE480A); - aColorSet.add(model::ThemeColorType::Accent6, 0xBE480A); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x2A6099); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x800080); - maColorSets.push_back(aColorSet); - } - { - model::ColorSet aColorSet(u"Breeze"_ustr); - aColorSet.add(model::ThemeColorType::Dark1, 0x232629); - aColorSet.add(model::ThemeColorType::Light1, 0xFCFCFC); - aColorSet.add(model::ThemeColorType::Dark2, 0x31363B); - aColorSet.add(model::ThemeColorType::Light2, 0xEFF0F1); - aColorSet.add(model::ThemeColorType::Accent1, 0xDA4453); - aColorSet.add(model::ThemeColorType::Accent2, 0xF47750); - aColorSet.add(model::ThemeColorType::Accent3, 0xFDBC4B); - aColorSet.add(model::ThemeColorType::Accent4, 0xC9CE3B); - aColorSet.add(model::ThemeColorType::Accent5, 0x1CDC9A); - aColorSet.add(model::ThemeColorType::Accent6, 0x2ECC71); - aColorSet.add(model::ThemeColorType::Hyperlink, 0x1D99F3); - aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x3DAEE9); - maColorSets.push_back(aColorSet); + OUString aURLString = SvtPathOptions().GetDocumentThemePath(); + aScanner.addPaths(aURLString); + + std::deque<OUString> aURLs; + vcl::file::splitPathString(aURLString, aURLs); + if (aURLs.size() > 0) + maUserFolder = aURLs[0]; } } @@ -195,6 +212,7 @@ void ColorSets::insert(model::ColorSet const& rNewColorSet, IdenticalNameAction } // color set not found, so insert it maColorSets.push_back(rNewColorSet); + writeToUserFolder(rNewColorSet); } else if (eAction == IdenticalNameAction::AutoRename) { @@ -206,10 +224,58 @@ void ColorSets::insert(model::ColorSet const& rNewColorSet, IdenticalNameAction model::ColorSet aNewColorSet = rNewColorSet; aNewColorSet.setName(aName); + maColorSets.push_back(aNewColorSet); + writeToUserFolder(aNewColorSet); } } +void ColorSets::writeToUserFolder(model::ColorSet const& rNewColorSet) +{ + static constexpr auto constThemeColorTypeToName = frozen::make_unordered_map<model::ThemeColorType, std::string_view>({ + { model::ThemeColorType::Dark1, "dark1" }, + { model::ThemeColorType::Light1, "light1" }, + { model::ThemeColorType::Dark2, "dark2" }, + { model::ThemeColorType::Light2, "light2" }, + { model::ThemeColorType::Accent1, "accent1" }, + { model::ThemeColorType::Accent2, "accent2" }, + { model::ThemeColorType::Accent3, "accent3" }, + { model::ThemeColorType::Accent4, "accent4" }, + { model::ThemeColorType::Accent5, "accent5" }, + { model::ThemeColorType::Accent6, "accent6" }, + { model::ThemeColorType::Hyperlink, "hyperlink" }, + { model::ThemeColorType::FollowedHyperlink, "followed-hyperlink" } + }); + + SvFileStream aFileStream(maUserFolder + "/" + rNewColorSet.getName() + ".theme", StreamMode::WRITE | StreamMode::TRUNC); + + tools::XmlWriter aWriter(&aFileStream); + aWriter.startDocument(); + aWriter.startElement("theme"); + aWriter.attribute("name", rNewColorSet.getName()); + + aWriter.startElement("theme-colors"); + aWriter.attribute("name", rNewColorSet.getName()); + + for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>()) + { + auto iterator = constThemeColorTypeToName.find(eThemeColorType); + if (iterator != constThemeColorTypeToName.end()) + { + Color aColor = rNewColorSet.getColor(eThemeColorType); + aWriter.startElement("color"); + aWriter.attribute("name", OString(iterator->second)); + aWriter.attribute("color", "#"_ostr + aColor.AsRGBHexString().toUtf8()); + aWriter.endElement(); + } + } + + aWriter.endElement(); + + aWriter.endElement(); + aWriter.endDocument(); +} + } // end of namespace svx /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx index 02cfc5ee38c8..645cb8fd2bef 100644 --- a/svx/source/svdraw/svddrgv.cxx +++ b/svx/source/svdraw/svddrgv.cxx @@ -415,8 +415,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl { bool bResizeAllowed = IsResizeAllowed(true); SfxViewShell* pViewShell = GetSfxViewShell(); - SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (!bResizeAllowed && pObjectShell && pObjectShell->GetSignPDFCertificate().Is()) + if (!bResizeAllowed && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // If the just added signature line shape is selected, allow resizing it. bResizeAllowed = true; diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx index d8b5162c70f6..693d5f3c0f7c 100644 --- a/svx/source/svdraw/svdedtv1.cxx +++ b/svx/source/svdraw/svdedtv1.cxx @@ -1829,8 +1829,7 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr, bool addPageMargin // change position bool bMoveAllowed = m_bMoveAllowed; SfxViewShell* pViewShell = GetSfxViewShell(); - SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (!bMoveAllowed && pObjectShell && pObjectShell->GetSignPDFCertificate().Is()) + if (!bMoveAllowed && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // If the just added signature line shape is selected, allow moving it. bMoveAllowed = true; diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 374c38baf00e..cd7cb89b2e05 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -2830,10 +2830,13 @@ sal_uInt16 SdrObjEditView::GetSelectionLevel() const for (sal_Int32 nPara = nStartPara; nPara <= nEndPara; nPara++) { sal_Int16 nDepth = mpTextEditOutliner->GetDepth(nPara); - assert(nDepth >= 0 && nDepth <= 15); - sal_uInt16 nParaDepth = 1 << static_cast<sal_uInt16>(nDepth); - if (!(nLevel & nParaDepth)) - nLevel += nParaDepth; + assert(nDepth <= 15); + if (nDepth >= 0) + { + sal_uInt16 nParaDepth = 1 << static_cast<sal_uInt16>(nDepth); + if (!(nLevel & nParaDepth)) + nLevel += nParaDepth; + } } //reduce one level for Outliner Object //if( nLevel > 0 && GetTextEditObject()->GetObjIdentifier() == OBJ_OUTLINETEXT ) diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index c4f096dd04a8..0e24fe898e3f 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -1116,7 +1116,7 @@ void SdrMarkView::SetMarkHandlesForLOKit(tools::Rectangle const & rRect, const S else { SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (pObjectShell && pObjectShell->IsSignPDF() && pObjectShell->GetSignPDFCertificate().Is()) + if (pObjectShell && pObjectShell->IsSignPDF() && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // Expose the info that this is the special signature widget that is OK to // move/resize. diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx index 84ef3909c7b5..f4a3cd80e458 100644 --- a/svx/source/svdraw/svdopath.cxx +++ b/svx/source/svdraw/svdopath.cxx @@ -2900,7 +2900,7 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings // in X and Y which equal a 180 degree rotation. Recognize it and react accordingly - if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0)) + if(aScale.getX() < 0.0 && aScale.getY() < 0.0) { aScale.setX(fabs(aScale.getX())); aScale.setY(fabs(aScale.getY())); @@ -2931,8 +2931,8 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i75086# // Given polygon is already scaled (for historical reasons), but not mirrored yet. // Thus, when scale is negative in X or Y, apply the needed mirroring accordingly. - double fScaleX(basegfx::fTools::less(aScale.getX(), 0.0) ? -1.0 : 1.0); - double fScaleY(basegfx::fTools::less(aScale.getY(), 0.0) ? -1.0 : 1.0); + double fScaleX(aScale.getX() < 0.0 ? -1.0 : 1.0); + double fScaleY(aScale.getY() < 0.0 ? -1.0 : 1.0); // tdf#98565, tdf#98584. While loading a shape, svg:width and svg:height is used to scale // the polygon. But draw:transform might introduce additional scaling factors, which need to diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index adcdb6a578a1..32fb9111a47e 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -95,7 +95,7 @@ bool SdrTextObj::BegTextEdit(SdrOutliner& rOutl) // at SetParaAttribs(), all attributes contained in the parent become // attributed hard to the paragraph. const SfxItemSet& rSet = GetObjectItemSet(); - SfxItemSetFixed<EE_ITEMS_START, EE_ITEMS_END> aFilteredSet(*rSet.GetPool()); + SfxItemSet aFilteredSet(SfxItemSet::makeFixedSfxItemSet<EE_ITEMS_START, EE_ITEMS_END>(*rSet.GetPool())); aFilteredSet.Put(rSet); rOutl.SetParaAttribs(0, aFilteredSet); } diff --git a/svx/source/svdraw/svdovirt.cxx b/svx/source/svdraw/svdovirt.cxx index 2a4bc1e68c4d..89ef01f54a51 100644 --- a/svx/source/svdraw/svdovirt.cxx +++ b/svx/source/svdraw/svdovirt.cxx @@ -64,7 +64,7 @@ SdrVirtObj::SdrVirtObj( mxRefObj->AddReference(*this); - aSnapRect = rSource.aSnapRect; + maSnapRect = rSource.maSnapRect; m_aAnchor = rSource.m_aAnchor; } @@ -433,15 +433,15 @@ void SdrVirtObj::Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVSh void SdrVirtObj::RecalcSnapRect() { - aSnapRect=mxRefObj->GetSnapRect(); - aSnapRect+=m_aAnchor; + maSnapRect=mxRefObj->GetSnapRect(); + maSnapRect+=m_aAnchor; } const tools::Rectangle& SdrVirtObj::GetSnapRect() const { - const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetSnapRect(); - const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; - return aSnapRect; + const_cast<SdrVirtObj*>(this)->maSnapRect=mxRefObj->GetSnapRect(); + const_cast<SdrVirtObj*>(this)->maSnapRect+=m_aAnchor; + return maSnapRect; } void SdrVirtObj::SetSnapRect(const tools::Rectangle& rRect) @@ -465,9 +465,9 @@ void SdrVirtObj::NbcSetSnapRect(const tools::Rectangle& rRect) const tools::Rectangle& SdrVirtObj::GetLogicRect() const { - const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect! - const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap). - return aSnapRect; + const_cast<SdrVirtObj*>(this)->maSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect! + const_cast<SdrVirtObj*>(this)->maSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap). + return maSnapRect; } void SdrVirtObj::SetLogicRect(const tools::Rectangle& rRect) diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx index d2abde7d9675..4f3be7e3cd5e 100644 --- a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx +++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx @@ -19,7 +19,6 @@ #include "chinese_dictionarydialog.hxx" -#include <cppuhelper/bootstrap.hxx> #include <com/sun/star/i18n/TextConversionOption.hpp> #include <com/sun/star/linguistic2/ConversionDictionaryType.hpp> #include <com/sun/star/linguistic2/ConversionPropertyType.hpp> @@ -27,6 +26,7 @@ #include <com/sun/star/linguistic2/XConversionPropertyType.hpp> #include <com/sun/star/util/XFlushable.hpp> #include <com/sun/star/lang/Locale.hpp> +#include <comphelper/processfactory.hxx> #include <o3tl/safeint.hxx> #include <unotools/lingucfg.hxx> #include <unotools/linguprops.hxx> @@ -326,11 +326,10 @@ ChineseDictionaryDialog::ChineseDictionaryDialog(weld::Window* pParent) Reference< linguistic2::XConversionDictionary > xDictionary_To_Traditional; //get dictionaries { - if(!m_xContext.is()) - m_xContext.set( ::cppu::defaultBootstrap_InitialComponentContext() ); - if(m_xContext.is()) + css::uno::Reference<css::uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext(); + if (xContext.is()) { - Reference< linguistic2::XConversionDictionaryList > xDictionaryList = linguistic2::ConversionDictionaryList::create(m_xContext); + Reference< linguistic2::XConversionDictionaryList > xDictionaryList = linguistic2::ConversionDictionaryList::create(xContext); Reference< container::XNameContainer > xContainer( xDictionaryList->getDictionaryContainer() ); if(xContainer.is()) { diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx index 87aae3dc4543..626dc1f1f971 100644 --- a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx +++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx @@ -141,8 +141,6 @@ private: private: sal_Int32 m_nTextConversionOptions; //i18n::TextConversionOption - css::uno::Reference<css::uno::XComponentContext> m_xContext; - std::unique_ptr<weld::RadioButton> m_xRB_To_Simplified; std::unique_ptr<weld::RadioButton> m_xRB_To_Traditional; diff --git a/svx/uiconfig/themes/Beach.theme b/svx/uiconfig/themes/Beach.theme new file mode 100644 index 000000000000..1c006dcf9a53 --- /dev/null +++ b/svx/uiconfig/themes/Beach.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Beach"> + <theme-colors name="Beach"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#FFFFFF" /> + <color name="dark2" color="#FFBF00" /> + <color name="light2" color="#333333" /> + <color name="accent1" color="#FFF5CE" /> + <color name="accent2" color="#DEE6EF" /> + <color name="accent3" color="#E8F2A1" /> + <color name="accent4" color="#FFD7D7" /> + <color name="accent5" color="#DEE7E5" /> + <color name="accent6" color="#DDDBB6" /> + <color name="hyperlink" color="#7777EE" /> + <color name="followed-hyperlink" color="#EE77D7" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Breeze.theme b/svx/uiconfig/themes/Breeze.theme new file mode 100644 index 000000000000..efae704f506c --- /dev/null +++ b/svx/uiconfig/themes/Breeze.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Breeze"> + <theme-colors name="Breeze"> + <color name="dark1" color="#232629" /> + <color name="light1" color="#FCFCFC" /> + <color name="dark2" color="#31363B" /> + <color name="light2" color="#EFF0F1" /> + <color name="accent1" color="#DA4453" /> + <color name="accent2" color="#F47750" /> + <color name="accent3" color="#FDBC4B" /> + <color name="accent4" color="#C9CE3B" /> + <color name="accent5" color="#1CDC9A" /> + <color name="accent6" color="#2ECC71" /> + <color name="hyperlink" color="#1D99F3" /> + <color name="followed-hyperlink" color="#3DAEE9" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Forest.theme b/svx/uiconfig/themes/Forest.theme new file mode 100644 index 000000000000..89527577d4e4 --- /dev/null +++ b/svx/uiconfig/themes/Forest.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Forest"> + <theme-colors name="Forest"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#FFFFFF" /> + <color name="dark2" color="#000000" /> + <color name="light2" color="#FFFFFF" /> + <color name="accent1" color="#813709" /> + <color name="accent2" color="#224B12" /> + <color name="accent3" color="#706E0C" /> + <color name="accent4" color="#355269" /> + <color name="accent5" color="#BE480A" /> + <color name="accent6" color="#BE480A" /> + <color name="hyperlink" color="#2A6099" /> + <color name="followed-hyperlink" color="#800080" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Libreoffice.theme b/svx/uiconfig/themes/Libreoffice.theme new file mode 100644 index 000000000000..79bafcb486f6 --- /dev/null +++ b/svx/uiconfig/themes/Libreoffice.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="LibreOffice"> + <theme-colors name="LibreOffice"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#ffffff" /> + <color name="dark2" color="#000000" /> + <color name="light2" color="#ffffff" /> + <color name="accent1" color="#18a303" /> + <color name="accent2" color="#0369a3" /> + <color name="accent3" color="#a33e03" /> + <color name="accent4" color="#8e03a3" /> + <color name="accent5" color="#c99c00" /> + <color name="accent6" color="#c9211e" /> + <color name="hyperlink" color="#0000ee" /> + <color name="followed-hyperlink" color="#551a8b" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Ocean.theme b/svx/uiconfig/themes/Ocean.theme new file mode 100644 index 000000000000..5e7dc337b798 --- /dev/null +++ b/svx/uiconfig/themes/Ocean.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Ocean"> + <theme-colors name="Ocean"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#FFFFFF" /> + <color name="dark2" color="#2A6099" /> + <color name="light2" color="#CCCCCC" /> + <color name="accent1" color="#800080" /> + <color name="accent2" color="#55308D" /> + <color name="accent3" color="#2A6099" /> + <color name="accent4" color="#158466" /> + <color name="accent5" color="#00A933" /> + <color name="accent6" color="#81D41A" /> + <color name="hyperlink" color="#0000EE" /> + <color name="followed-hyperlink" color="#551A8B" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Rainbow.theme b/svx/uiconfig/themes/Rainbow.theme new file mode 100644 index 000000000000..4a372d80f8a7 --- /dev/null +++ b/svx/uiconfig/themes/Rainbow.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Rainbow"> + <theme-colors name="Rainbow"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#FFFFFF" /> + <color name="dark2" color="#1C1C1C" /> + <color name="light2" color="#DDDDDD" /> + <color name="accent1" color="#FF0000" /> + <color name="accent2" color="#FF8000" /> + <color name="accent3" color="#FFFF00" /> + <color name="accent4" color="#00A933" /> + <color name="accent5" color="#2A6099" /> + <color name="accent6" color="#800080" /> + <color name="hyperlink" color="#0000EE" /> + <color name="followed-hyperlink" color="#551A8B" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/themes/Sunset.theme b/svx/uiconfig/themes/Sunset.theme new file mode 100644 index 000000000000..107bb1c53fa3 --- /dev/null +++ b/svx/uiconfig/themes/Sunset.theme @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<theme name="Sunset"> + <theme-colors name="Sunset"> + <color name="dark1" color="#000000" /> + <color name="light1" color="#FFFFFF" /> + <color name="dark2" color="#492300" /> + <color name="light2" color="#F6F9D4" /> + <color name="accent1" color="#FFFF00" /> + <color name="accent2" color="#FFBF00" /> + <color name="accent3" color="#FF8000" /> + <color name="accent4" color="#FF4000" /> + <color name="accent5" color="#BF0041" /> + <color name="accent6" color="#800080" /> + <color name="hyperlink" color="#0000EE" /> + <color name="followed-hyperlink" color="#551A8B" /> + </theme-colors> +</theme> diff --git a/svx/uiconfig/ui/accessibilitychecklevel.ui b/svx/uiconfig/ui/accessibilitychecklevel.ui index 20a277a8b448..747013e4a1dd 100644 --- a/svx/uiconfig/ui/accessibilitychecklevel.ui +++ b/svx/uiconfig/ui/accessibilitychecklevel.ui @@ -177,7 +177,7 @@ <object class="GtkLabel" id="expand_direct_formatting_lb"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" context="accessibilitychecklevel|expand_direct_formatting_lb">Direct Formatting</property> + <property name="label" translatable="yes" context="accessibilitychecklevel|expand_direct_formatting_lb">Direct Formatting</property> </object> </child> </object> @@ -308,7 +308,7 @@ <object class="GtkLabel" id="expand_other_lb"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" context="accessibilitychecklevel|expand_other_lb">Other</property> + <property name="label" translatable="yes" context="accessibilitychecklevel|expand_other_lb">Other</property> </object> </child> </object> diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk index 2c6d8512fe44..cf025735337e 100644 --- a/sw/Library_swui.mk +++ b/sw/Library_swui.mk @@ -168,6 +168,7 @@ $(eval $(call gb_Library_add_exception_objects,swui,\ sw/source/ui/table/tabledlg \ sw/source/ui/table/tautofmt \ sw/source/ui/utlui/swrenamexnameddlg \ + sw/source/ui/utlui/copyfielddlg \ )) ifneq (,$(filter DBCONNECTIVITY,$(BUILD_TYPE))) diff --git a/sw/UIConfig_swriter.mk b/sw/UIConfig_swriter.mk index d9df23bf27a4..6bc32a541106 100644 --- a/sw/UIConfig_swriter.mk +++ b/sw/UIConfig_swriter.mk @@ -138,6 +138,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\ sw/uiconfig/swriter/ui/contentcontroldropdown \ sw/uiconfig/swriter/ui/contentcontrollistitemdlg \ sw/uiconfig/swriter/ui/converttexttable \ + sw/uiconfig/swriter/ui/copyfielddialog \ sw/uiconfig/swriter/ui/createaddresslist \ sw/uiconfig/swriter/ui/createauthorentry \ sw/uiconfig/swriter/ui/createautomarkdialog \ diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx index 9c053e845441..9a22fac5e847 100644 --- a/sw/inc/IDocumentSettingAccess.hxx +++ b/sw/inc/IDocumentSettingAccess.hxx @@ -139,7 +139,6 @@ enum class DocumentSettingId PAINT_HELL_OVER_HEADER_FOOTER, // tdf#155229 calculate minimum row height including horizontal border width MIN_ROW_HEIGHT_INCL_BORDER, - // tdf#129808 MS Word always includes ext leading for text grid line height MS_WORD_COMP_GRID_METRICS, // tdf#161233 pictures with wrap polygon should not be clipped NO_CLIPPING_WITH_WRAP_POLYGON, diff --git a/sw/inc/SwStyleNameMapper.hxx b/sw/inc/SwStyleNameMapper.hxx index f2403a30e1aa..dbd1ca166243 100644 --- a/sw/inc/SwStyleNameMapper.hxx +++ b/sw/inc/SwStyleNameMapper.hxx @@ -26,6 +26,8 @@ #include <unordered_map> #include <vector> +class ProgName; + /** This class holds all data about the names of styles used in the user * interface (UI names...these are localised into different languages). * These UI names are loaded from the resource files on demand. @@ -77,6 +79,7 @@ class SwStyleNameMapper final friend void InitCore(); friend void FinitCore(); + static void fillProgNameFromId(sal_uInt16 nId, ProgName &rName); static void fillNameFromId(sal_uInt16 nId, OUString &rName, bool bProgName); static const OUString& getNameFromId(sal_uInt16 nId, const OUString &rName, bool bProgName); @@ -88,27 +91,27 @@ class SwStyleNameMapper final public: // This gets the UI Name from the programmatic name SAL_WARN_UNUSED_RESULT - static const OUString& GetUIName(const OUString& rName, SwGetPoolIdFromName); - static void FillUIName(const OUString& rName, OUString& rFillName, + static const OUString& GetUIName(const ProgName& rName, SwGetPoolIdFromName); + static void FillUIName(const ProgName& rName, OUString& rFillName, SwGetPoolIdFromName); // Get the programmatic Name from the UI name SAL_WARN_UNUSED_RESULT - static const OUString& GetProgName(const OUString& rName, + static ProgName GetProgName(const OUString& rName, SwGetPoolIdFromName); - static void FillProgName(const OUString& rName, OUString& rFillName, + static void FillProgName(const OUString& rName, ProgName& rFillName, SwGetPoolIdFromName); // This gets the UI Name from the Pool ID SW_DLLPUBLIC static void FillUIName(sal_uInt16 nId, OUString& rFillName); SAL_WARN_UNUSED_RESULT SW_DLLPUBLIC static const OUString& GetUIName(sal_uInt16 nId, - const OUString& rName); + const ProgName& rName); // This gets the programmatic Name from the Pool ID - static void FillProgName(sal_uInt16 nId, OUString& rFillName); + static void FillProgName(sal_uInt16 nId, ProgName& rFillName); SAL_WARN_UNUSED_RESULT - SW_DLLPUBLIC static const OUString& GetProgName(sal_uInt16 nId, + SW_DLLPUBLIC static ProgName GetProgName(sal_uInt16 nId, const OUString& rName); // This gets the PoolId from the UI Name @@ -118,7 +121,7 @@ public: // Get the Pool ID from the programmatic name SAL_WARN_UNUSED_RESULT - SW_DLLPUBLIC static sal_uInt16 GetPoolIdFromProgName(const OUString& rName, + SW_DLLPUBLIC static sal_uInt16 GetPoolIdFromProgName(const ProgName& rName, SwGetPoolIdFromName); // used to convert the 4 special ExtraProg/UINames for @@ -127,10 +130,10 @@ public: // forth and back. // Non-matching names remain unchanged. SAL_WARN_UNUSED_RESULT - SW_DLLPUBLIC static const OUString & GetSpecialExtraProgName( + SW_DLLPUBLIC static ProgName GetSpecialExtraProgName( const OUString& rExtraUIName); SAL_WARN_UNUSED_RESULT - static const OUString & GetSpecialExtraUIName(const OUString& rExtraProgName); + static const OUString & GetSpecialExtraUIName(const ProgName& rExtraProgName); static const std::vector<OUString>& GetTextUINameArray(); static const std::vector<OUString>& GetListsUINameArray(); diff --git a/sw/inc/bitmaps.hlst b/sw/inc/bitmaps.hlst index 465e1c8bbb9f..11b0dab2d566 100644 --- a/sw/inc/bitmaps.hlst +++ b/sw/inc/bitmaps.hlst @@ -115,8 +115,6 @@ inline constexpr OUString RID_BMP_PREVIEW_FALLBACK = u"sw/res/image-example.png" inline constexpr OUString RID_BMP_A11Y_CHECK_ISSUES_NOT_FOUND = u"svx/res/a11y_check_issues_not_found.png"_ustr; inline constexpr OUString RID_BMP_A11Y_CHECK_ISSUES_FOUND = u"svx/res/a11y_check_issues_found.png"_ustr; -inline constexpr OUString RID_BMP_QUERYINSMODE = u"res/queryinsmode.png"_ustr; - inline constexpr OUString RID_SVXBMP_LOCKED = u"res/locked.png"_ustr; inline constexpr OUString RID_SVXBMP_UNLOCKED = u"res/unlocked.png"_ustr; diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index f50754b6e274..340e57c8f5b4 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -152,6 +152,7 @@ class SwUINumRuleItem; #define FN_REDLINE_ACCEPT_TONEXT (FN_EDIT2 + 45) /* Redlining Accept and jump to next*/ #define FN_REDLINE_REJECT_TONEXT (FN_EDIT2 + 46) /* Redlining Reject and jump to next*/ #define FN_TRANSFORM_DOCUMENT_STRUCTURE (FN_EDIT2 + 47) /* overwrite text of content control, and more*/ +#define FN_COPY_FIELD (FN_EDIT2 + 48) /* show field content in readonly documents to copy content*/ // Region: View #define FN_DRAW_WRAP_DLG TypedWhichId<SfxInt16Item>(FN_VIEW + 3) /* Draw wrapping dlg */ diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 08aae0878d93..773379e1eb0a 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -168,7 +168,7 @@ public: SW_DLLPUBLIC void UpdateCursor( sal_uInt16 eFlags = SwCursorShell::SCROLLWIN|SwCursorShell::CHKRANGE, - bool bIdleEnd = false ); + bool bIdleEnd = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); private: @@ -422,7 +422,7 @@ public: * the cursor is done in order to get at the properties under the mouse pointer. */ SW_DLLPUBLIC int SetCursor(const Point& rPt, bool bOnlyText = false, bool bBlock = true, - bool bFieldInfo = false); + bool bFieldInfo = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); /* * Notification that the visible area was changed. m_aVisArea is reset, then @@ -735,7 +735,7 @@ public: // Place only the visible cursor at the given position in the document. // Return false if SPoint was corrected by layout. // (This is needed for displaying the Drag&Drop/Copy-Cursor.) - bool SetVisibleCursor( const Point &rPt ); + bool SetVisibleCursor( const Point &rPt, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); inline void UnSetVisibleCursor(); SW_DLLPUBLIC SwVisibleCursor* GetVisibleCursor() const; @@ -817,7 +817,7 @@ public: bool GotoRegion( std::u16string_view rName ); // show the current selection - virtual void MakeSelVisible(); + virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); // set the cursor to a NOT protected/hidden node bool FindValidContentNode( bool bOnlyText ); diff --git a/sw/inc/docstyle.hxx b/sw/inc/docstyle.hxx index e45c599d2a0b..f5a7a70a350f 100644 --- a/sw/inc/docstyle.hxx +++ b/sw/inc/docstyle.hxx @@ -113,6 +113,8 @@ public: virtual sal_uInt32 GetHelpId( OUString& rFile ) override; virtual void SetHelpId( const OUString& r, sal_uInt32 nId ) override; + virtual sal_Int32 GetSpotlightId() override; + /** Preset the members without physical access. Used by StyleSheetPool. */ void PresetName(const OUString& rName) { aName = rName; } diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index 94f5f0d3c09e..c1b1ae7e9881 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -360,7 +360,7 @@ public: void SetPageObjsNewPage( std::vector<SwFrameFormat*>& rFillArr ); /// Show current selection (frame / draw object as required). - virtual void MakeSelVisible() override; + virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault) override; /** @return FrameFormat of object that may be under Point. Object does not become selected! */ diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx index be104eedbeb8..6f6be37f80e6 100644 --- a/sw/inc/hintids.hxx +++ b/sw/inc/hintids.hxx @@ -431,7 +431,6 @@ inline constexpr sal_uInt16 RES_UPDATEATTR_ATTRSET_CHG( 168); // used by SwUpdateAttr just as an ID to communicate what has changed inline constexpr sal_uInt16 RES_UPDATEATTR_OBJECTDYING( 169); // used by SwUpdateAttr just as an ID to communicate what has changed -inline constexpr TypedWhichId<SwUpdateAttr> RES_UPDATE_ATTR(170); // empty inline constexpr sal_uInt16 RES_FORMAT_MSG_END(190); diff --git a/sw/inc/hints.hxx b/sw/inc/hints.hxx index d7a1049b12d1..645cf6b0c8d3 100644 --- a/sw/inc/hints.hxx +++ b/sw/inc/hints.hxx @@ -41,6 +41,7 @@ class SwTableLine; class SwTableLineFormat; class SwTableBox; class SwAttrSetChg; +class SwUpdateAttr; // Base class for all Message-Hints: // "Overhead" of SfxPoolItem is handled here @@ -322,9 +323,16 @@ public: SwModify* m_pDying; ObjectDyingHint(SwModify* pDead) : SfxHint(SfxHintId::SwObjectDying), m_pDying(pDead) {} }; +class UpdateAttrHint final : public SfxHint +{ +public: + const SwUpdateAttr* m_pOld; + const SwUpdateAttr* m_pNew; + UpdateAttrHint(const SwUpdateAttr* pOld, const SwUpdateAttr* pNew) : SfxHint(SfxHintId::SwUpdateAttr), m_pOld(pOld), m_pNew(pNew) {} +}; } // namespace sw -class SwUpdateAttr final : public SwMsgPoolItem +class SwUpdateAttr final { private: sal_Int32 m_nStart; @@ -333,7 +341,6 @@ private: std::vector<sal_uInt16> m_aWhichFmtAttrs; // attributes changed inside RES_TXTATR_AUTOFMT public: - DECLARE_ITEM_TYPE_FUNCTION(SwUpdateAttr) SwUpdateAttr( sal_Int32 nS, sal_Int32 nE, sal_uInt16 nW ); SwUpdateAttr( sal_Int32 nS, sal_Int32 nE, sal_uInt16 nW, std::vector<sal_uInt16> aW ); diff --git a/sw/inc/init.hxx b/sw/inc/init.hxx index 438be221de6c..5c6e358c0a01 100644 --- a/sw/inc/init.hxx +++ b/sw/inc/init.hxx @@ -48,11 +48,8 @@ public: ~Filters(); #ifndef DISABLE_DYNLOADING - oslGenericFunction GetMswordLibSymbol( const char *pSymbol ); + static oslGenericFunction GetMswordLibSymbol( const char *pSymbol ); #endif - -private: - osl::Module msword_; }; } diff --git a/sw/inc/istyleaccess.hxx b/sw/inc/istyleaccess.hxx index 755f10bf15d8..cc995e01dc3f 100644 --- a/sw/inc/istyleaccess.hxx +++ b/sw/inc/istyleaccess.hxx @@ -24,6 +24,7 @@ #include <vector> class SwAttrSet; +class ProgName; // Management of (automatic) styles class IStyleAccess @@ -44,7 +45,7 @@ public: const OUString* pParentName = nullptr ) = 0; virtual std::shared_ptr<SwAttrSet> getAutomaticStyle( const SwAttrSet& rSet, SwAutoStyleFamily eFamily, - const OUString* pParentName = nullptr ) = 0; + const ProgName* pParentName = nullptr ) = 0; virtual void getAllStyles( std::vector<std::shared_ptr<SfxItemSet>> &rStyles, SwAutoStyleFamily eFamily ) = 0; /** It's slow to iterate through a stylepool looking for a special name, but if diff --git a/sw/inc/mdiexp.hxx b/sw/inc/mdiexp.hxx index afe308e1ad89..6d4af73bd80b 100644 --- a/sw/inc/mdiexp.hxx +++ b/sw/inc/mdiexp.hxx @@ -22,6 +22,7 @@ #include "tblenum.hxx" #include "swdllapi.h" #include <unotools/resmgr.hxx> +#include "viewsh.hxx" #include <string_view> @@ -30,7 +31,8 @@ class Size; class SwViewShell; class SwDocShell; -extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY); +extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY + , ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); extern bool IsScrollMDI(SwViewShell const * pVwSh, const SwRect &); extern void SizeNotify(SwViewShell const * pVwSh, const Size &); diff --git a/sw/inc/names.hxx b/sw/inc/names.hxx new file mode 100644 index 000000000000..fe15221d2c7a --- /dev/null +++ b/sw/inc/names.hxx @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ +#pragma once + +#include <rtl/ustring.hxx> +#include <functional> + +/// Thin wrapper around OUString to make visible in code when we are dealing with a UIName vs a Programmatic Name +class ProgName +{ +public: + ProgName() {} + constexpr explicit ProgName(const OUString& s) + : m_s(s) + { + } + const OUString& toString() const { return m_s; } + bool isEmpty() const { return m_s.isEmpty(); } + bool operator==(const ProgName& s) const = default; + bool operator==(const OUString& s) const { return m_s == s; } + bool operator==(std::u16string_view s) const { return m_s == s; } + bool operator<(const ProgName& s) const { return m_s < s.m_s; } + bool operator>(const ProgName& s) const { return m_s > s.m_s; } + +private: + OUString m_s; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx index 95ef737cb486..0678c4086cd6 100644 --- a/sw/inc/ndtxt.hxx +++ b/sw/inc/ndtxt.hxx @@ -74,6 +74,7 @@ namespace sw { class TextNodeNotificationSuppressor; class RemoveUnoObjectHint; class AttrSetChangeHint; + class UpdateAttrHint; namespace mark { enum class RestoreMode; } } @@ -245,8 +246,7 @@ public: /// for hanging TextFormatCollections somewhere else (Outline-Numbering!) void TriggerNodeUpdate(const sw::LegacyModifyHint&); void TriggerNodeUpdate(const sw::AttrSetChangeHint&); - void TriggerNodeUpdate(const sw::RemoveUnoObjectHint&); - void TriggerNodeUpdate(const sw::ObjectDyingHint&); + void TriggerNodeUpdate(const SfxHint&); void TriggerNodeUpdate(const SwFormatChangeHint&); const OUString& GetText() const { return m_Text; } diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx index 13bbda8a81cb..a19d48e247c1 100644 --- a/sw/inc/node.hxx +++ b/sw/inc/node.hxx @@ -439,9 +439,9 @@ public: bool CanJoinNext( SwPosition* pIdx ) const; SW_DLLPUBLIC bool CanJoinPrev( SwNodeIndex* pIdx =nullptr ) const; - bool GoNext(SwContentIndex *, SwCursorSkipMode nMode ) const; - bool GoNext(SwPosition*, SwCursorSkipMode nMode ) const; - bool GoPrevious(SwContentIndex *, SwCursorSkipMode nMode ) const; + bool GoNext(SwContentIndex&, SwCursorSkipMode nMode ) const; + bool GoNext(SwPosition&, SwCursorSkipMode nMode ) const; + bool GoPrevious(SwContentIndex&, SwCursorSkipMode nMode ) const; /// @see GetFrameOfModify SW_DLLPUBLIC SwContentFrame *getLayoutFrame( const SwRootFrame*, diff --git a/sw/inc/rdfhelper.hxx b/sw/inc/rdfhelper.hxx index 8152ef6765c5..dd7267758846 100644 --- a/sw/inc/rdfhelper.hxx +++ b/sw/inc/rdfhelper.hxx @@ -39,7 +39,7 @@ class SW_DLLPUBLIC SwRDFHelper public: /// Gets all graph-names in RDF of a given type. static css::uno::Sequence<css::uno::Reference<css::rdf::XURI>> - getGraphNames(const css::uno::Reference<css::rdf::XDocumentMetadataAccess>& xDocumentMetadataAccess, + getGraphNames(const rtl::Reference<SwXTextDocument>& xModel, const css::uno::Reference<css::rdf::XURI>& xType); /// Gets all graph-names in RDF of a given type. diff --git a/sw/inc/section.hxx b/sw/inc/section.hxx index 0c45e470d247..b2f5fb53a54a 100644 --- a/sw/inc/section.hxx +++ b/sw/inc/section.hxx @@ -67,6 +67,7 @@ private: OUString m_sLinkFileName; OUString m_sLinkFilePassword; // Must be changed to Sequence. css::uno::Sequence <sal_Int8> m_Password; + sal_uInt16 m_nPage; // loaded meta page count for page anchored flys in master document /// It seems this flag caches the current final "hidden" state. bool m_bHiddenFlag : 1; @@ -133,6 +134,9 @@ public: bool IsConnectFlag() const { return m_bConnectFlag; } void SetConnectFlag(bool const bFlag){ m_bConnectFlag = bFlag; } + sal_uInt16 GetPageNum() const { return m_nPage; } + void SetPageNum(sal_uInt16 nPageNum){ m_nPage = nPageNum; } + void dumpAsXml(xmlTextWriterPtr pWriter) const; }; @@ -213,6 +217,11 @@ public: css::uno::Sequence<sal_Int8> const& GetPassword() const { return m_Data.GetPassword(); } + sal_uInt16 GetPageNum() const + { return m_Data.GetPageNum(); } + void SetPageNum(sal_uInt16 nPage) + { m_Data.SetPageNum(nPage); } + // Data server methods. void SetRefObject( SwServerObject* pObj ); const SwServerObject* GetObject() const { return m_RefObj.get(); } diff --git a/sw/inc/strings.hrc b/sw/inc/strings.hrc index a6ce4cad0a5a..2a478f49afea 100644 --- a/sw/inc/strings.hrc +++ b/sw/inc/strings.hrc @@ -1548,6 +1548,16 @@ #define STR_UNDO_MAKE_FOOTNOTES_ENDNOTES NC_("STR_UNDO_MAKE_FOOTNOTES_ENDNOTES", "Make all footnotes endnotes") #define STR_UNDO_MAKE_ENDNOTES_FOOTNOTES NC_("STR_UNDO_MAKE_ENDNOTES_FOOTNOTES", "Make all endnotes footnotes") +// To translators: title, text, question for confirmation whether to switch overwrite mode on +#define STR_QUERY_INSMODE_TITLE NC_("STR_QUERY_INSMODE_TITLE", "You are switching to the overwrite mode") +#define STR_QUERY_INSMODE_TEXT NC_("STR_QUERY_INSMODE_TEXT", "The overwrite mode allows to type over text. It is indicated by a block cursor and at the statusbar. Press Insert again to switch back.") +#define STR_QUERY_INSMODE_QUESTION NC_("STR_QUERY_INSMODE_QUESTION", "Do you want to continue?") + +// To translators: title and question for confirmation whether to delete all comments / all comments by author; text intentionally empty +#define STR_QUERY_DELALLCOMMENTS_TITLE NC_("STR_QUERY_DELALLCOMMENTS_TITLE", "Confirm delete") +#define STR_QUERY_DELALLCOMMENTS_QUESTION NC_("STR_QUERY_DELALLCOMMENTS_QUESTION", "Are you sure you want to delete all comments?") +#define STR_QUERY_DELALLCOMMENTSAUTHOR_QUESTION NC_("STR_QUERY_DELALLCOMMENTS_QUESTION", "Are you sure you want to delete all comments by %AUTHOR?") + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index 229b2fdc042d..59768a69aa55 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -367,6 +367,16 @@ public: }; /** + * Interface for copy field value dialog in read only documents. It's implemented by + * AbstractCopyFieldDlg_Impl + */ +class AbstractCopyFieldDlg : public VclAbstractDialog +{ +protected: + virtual ~AbstractCopyFieldDlg() override = default; +}; + +/** * Interface for e.g. the form -> content control -> properties -> add dialog. It's implemented by * AbstractSwContentControlListItemDlg_Impl, but SwContentControlDlg only knows about this interface * and the SwAbstractDialogFactory::CreateSwContentControlListItemDlg() factory. @@ -547,6 +557,9 @@ public: virtual VclPtr<AbstractSwRenameXNamedDlg> CreateSwRenameXNamedDlg(weld::Widget* pParent, css::uno::Reference< css::container::XNamed > & xNamed, css::uno::Reference< css::container::XNameAccess > & xNameAccess) = 0; + + virtual VclPtr<AbstractCopyFieldDlg> CreateCopyFieldDlg(weld::Widget* pParent, const rtl::OUString& rFieldValue ) = 0; + virtual VclPtr<AbstractSwModalRedlineAcceptDlg> CreateSwModalRedlineAcceptDlg(weld::Window *pParent) = 0; virtual VclPtr<AbstractSwPageNumberDlg> CreateSwPageNumberDlg(weld::Window* pParent) = 0; diff --git a/sw/inc/swevent.hxx b/sw/inc/swevent.hxx index 90378efa5063..e35dc2c391c8 100644 --- a/sw/inc/swevent.hxx +++ b/sw/inc/swevent.hxx @@ -133,7 +133,8 @@ struct SwCallMouseEvent final } else if (rHint.GetId() == SfxHintId::SwLegacyModify || SfxHintId::SwAttrSetChange == rHint.GetId() - || SfxHintId::SwObjectDying == rHint.GetId()) + || SfxHintId::SwObjectDying == rHint.GetId() + || SfxHintId::SwUpdateAttr == rHint.GetId()) { assert(EVENT_OBJECT_IMAGE == eType || EVENT_OBJECT_URLITEM == eType || EVENT_OBJECT_IMAGEMAP == eType); SwClient::SwClientNotify(rMod, rHint); diff --git a/sw/inc/tgrditem.hxx b/sw/inc/tgrditem.hxx index 0836fb731d8b..c787b165c7f8 100644 --- a/sw/inc/tgrditem.hxx +++ b/sw/inc/tgrditem.hxx @@ -27,7 +27,7 @@ class IntlWrapper; -enum SwTextGrid { GRID_NONE, GRID_LINES_ONLY, GRID_LINES_CHARS }; +enum class SwTextGrid { NONE, LinesOnly, LinesAndChars }; class SW_DLLPUBLIC SwTextGridItem final : public SfxPoolItem { diff --git a/sw/inc/unocrsrhelper.hxx b/sw/inc/unocrsrhelper.hxx index a510216641f8..e9fea3d32c9c 100644 --- a/sw/inc/unocrsrhelper.hxx +++ b/sw/inc/unocrsrhelper.hxx @@ -39,6 +39,7 @@ class SwFormatColl; struct SwSortOptions; class SwDoc; class SwRootFrame; +class ProgName; namespace sw::mark { class MarkBase; } @@ -84,7 +85,7 @@ namespace SwUnoCursorHelper , css::beans::PropertyState& eState , const SwTextNode* pNode = nullptr ); - void GetCurPageStyle(SwPaM const & rPaM, OUString &rString); + void GetCurPageStyle(SwPaM const & rPaM, ProgName &rString); inline bool IsStartOfPara(SwPaM& rUnoCursor) { return rUnoCursor.GetPoint()->GetContentIndex() == 0;} diff --git a/sw/inc/unosett.hxx b/sw/inc/unosett.hxx index f280e78c5a6d..1f25fb666282 100644 --- a/sw/inc/unosett.hxx +++ b/sw/inc/unosett.hxx @@ -38,6 +38,7 @@ class SwDocShell; class SwNumRule; class SwNumFormat; class SfxItemPropertySet; +class ProgName; namespace com::sun::star::beans { struct PropertyValue; } class SwXFootnoteProperties final : public cppu::WeakImplHelper @@ -206,7 +207,7 @@ public: static css::uno::Sequence<css::beans::PropertyValue> GetPropertiesForNumFormat( const SwNumFormat& rFormat, OUString const& rCharFormatName, - OUString const* pHeadingStyleName, OUString const & referer); + ProgName const* pHeadingStyleName, OUString const & referer); static void SetPropertiesToNumFormat( SwNumFormat & aFormat, OUString & rCharStyleName, @@ -221,7 +222,7 @@ private: css::uno::Any GetNumberingRuleByIndex(const SwNumRule& rNumRule, sal_Int32 nIndex, const OUString& rPropName) const; static css::uno::Any GetPropertyForNumFormat( const SwNumFormat& rFormat, OUString const& rCharFormatName, - OUString const* pHeadingStyleName, OUString const & referer, OUString const & rPropName); + ProgName const* pHeadingStyleName, OUString const & referer, OUString const & rPropName); }; class SwXChapterNumbering final : public SwXNumberingRules diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index 3eba3163d333..47e6bc6bf8a4 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -31,6 +31,7 @@ #include "swdllapi.h" #include "swtypes.hxx" #include "shellid.hxx" +#include "viewsh.hxx" #include <svx/sdr/overlay/overlayobject.hxx> @@ -302,7 +303,8 @@ class SW_DLLPUBLIC SwView: public SfxViewShell SAL_DLLPRIVATE Point AlignToPixel(const Point& rPt) const; SAL_DLLPRIVATE void CalcPt( Point* pPt,const tools::Rectangle& rRect, sal_uInt16 nRangeX, - sal_uInt16 nRangeY); + sal_uInt16 nRangeY, + ScrollSizeMode eScrollSizeMode); SAL_DLLPRIVATE bool GetPageScrollUpOffset(SwTwips& rOff) const; SAL_DLLPRIVATE bool GetPageScrollDownOffset(SwTwips& rOff) const; @@ -447,7 +449,8 @@ public: bool IsScroll(const tools::Rectangle& rRect) const; void Scroll( const tools::Rectangle& rRect, sal_uInt16 nRangeX = USHRT_MAX, - sal_uInt16 nRangeY = USHRT_MAX); + sal_uInt16 nRangeY = USHRT_MAX, + ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); tools::Long SetVScrollMax(tools::Long lMax); tools::Long SetHScrollMax(tools::Long lMax); @@ -726,7 +729,9 @@ public: virtual void flushPendingLOKInvalidateTiles() override; virtual std::optional<OString> getLOKPayload(int nType, int nViewId) const override; - bool IsHighlightCharDF() { return m_bIsHighlightCharDF; } + bool IsHighlightCharDF() const { return m_bIsHighlightCharDF; } + bool IsSpotlightParaStyles() const { return m_bIsSpotlightParaStyles; } + bool IsSpotlightCharStyles() const { return m_bIsSpotlightCharStyles; } private: AutoTimer m_aBringToAttentionBlinkTimer; diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx index eff41b5be26d..bc273d58c4f2 100644 --- a/sw/inc/viewopt.hxx +++ b/sw/inc/viewopt.hxx @@ -262,8 +262,6 @@ class SwViewOption static SwViewColors s_aInitialColorConfig; OUString m_sThemeName; - static sal_uInt16 s_nPixelTwips;// 1 Pixel == ? Twips - OUString m_sSymbolFont; // Symbolfont. ViewOptFlags1 m_nCoreOptions; // Bits for SwViewShell. ViewOptCoreFlags2 m_nCore2Options; // Bits for SwViewShell. @@ -317,8 +315,6 @@ public: SW_DLLPUBLIC SwViewOption(const SwViewOption&); SW_DLLPUBLIC ~SwViewOption(); - static void Init(const OutputDevice* pWin); // Initializing of static data. - inline void SetUIOptions( const SwViewOption& ); void SetColorConfig(const SwViewColors& rColorConfig) diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index b75ff5009d83..7b2565f18703 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -84,6 +84,13 @@ enum class LockPaintReason ExampleFrame }; +enum class ScrollSizeMode +{ + ScrollSizeDefault, //usually 30% of the visible area + ScrollSizeMouseSelection, //make target rectangle visible + ScrollSizeTimer, // increase of timer based scrolling + ScrollSizeTimer2 // more increase of timer based scrolling +}; namespace vcl { typedef OutputDevice RenderContext; @@ -286,7 +293,7 @@ public: void setLOKVisibleArea(const tools::Rectangle& rArea) { maLOKVisibleArea = rArea; } // If necessary scroll until passed Rect is situated in visible sector. - void MakeVisible( const SwRect & ); + void MakeVisible( const SwRect &, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); // At nearest occasion pass new document size to UI. void SizeChgNotify(); diff --git a/sw/qa/core/header_footer/HeaderFooterTest.cxx b/sw/qa/core/header_footer/HeaderFooterTest.cxx index af4e388dff2f..f277a0ed77aa 100644 --- a/sw/qa/core/header_footer/HeaderFooterTest.cxx +++ b/sw/qa/core/header_footer/HeaderFooterTest.cxx @@ -643,6 +643,8 @@ CPPUNIT_TEST_FIXTURE(HeaderFooterTest, testFirstPageFooterEnabled) CPPUNIT_TEST_FIXTURE(HeaderFooterTest, testBnc519228OddBreaks) { auto verify = [this]() { + CPPUNIT_ASSERT_EQUAL(5, getPages()); // logical pages - "blank page" 4 usually not displayed + // Check that all the normal styles are not set as right-only, those should be only those used after odd page breaks. auto xStyles = getStyles(u"PageStyles"_ustr); uno::Reference<beans::XPropertySet> xStyle; @@ -696,6 +698,9 @@ CPPUNIT_TEST_FIXTURE(HeaderFooterTest, testBnc519228OddBreaks) CPPUNIT_ASSERT_EQUAL(getProperty<sal_Int32>(page1Style, u"TopMargin"_ustr), getProperty<sal_Int32>(page2Style, u"TopMargin"_ustr)); + //tdf164748 + CPPUNIT_ASSERT_EQUAL(getProperty<bool>(page1Style, u"HeaderDynamicSpacing"_ustr), + getProperty<bool>(page2Style, u"HeaderDynamicSpacing"_ustr)); } // Page 5 diff --git a/sw/qa/core/theme/ThemeTest.cxx b/sw/qa/core/theme/ThemeTest.cxx index 7ae4e2fa2bbf..c93e4a436c77 100644 --- a/sw/qa/core/theme/ThemeTest.cxx +++ b/sw/qa/core/theme/ThemeTest.cxx @@ -429,7 +429,8 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, testThemeChanging) // Change theme colors { auto const& rColorSets = svx::ColorSets::get(); - auto pNewColorSet = std::make_shared<model::ColorSet>(rColorSets.getColorSet(0)); + auto pNewColorSet + = std::make_shared<model::ColorSet>(*rColorSets.getColorSet(u"LibreOffice")); // check that the theme colors are as expected CPPUNIT_ASSERT_EQUAL(u"LibreOffice"_ustr, pNewColorSet->getName()); diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx index 4f6be8ff159e..8a03254e7c5d 100644 --- a/sw/qa/core/uwriter.cxx +++ b/sw/qa/core/uwriter.cxx @@ -2477,7 +2477,7 @@ void SwDocTest::testSetRubyList() SwPosition aNewPos{ aPaM.GetPoint()->nNode, aPaM.GetPoint()->nContent }; const SwTextNode* pTNd = aNewPos.GetNode().GetTextNode(); - pTNd->GoNext(&aNewPos, SwCursorSkipMode::Chars); + pTNd->GoNext(aNewPos, SwCursorSkipMode::Chars); SwPaM aEmptyPaM{ aNewPos }; aEmptyPaM.SetMark(); @@ -2548,7 +2548,7 @@ void SwDocTest::testSetRubyList() SwPosition aNewPos{ aPaM.GetPoint()->nNode, aPaM.GetPoint()->nContent }; const SwTextNode* pTNd = aNewPos.GetNode().GetTextNode(); - pTNd->GoNext(&aNewPos, SwCursorSkipMode::Chars); + pTNd->GoNext(aNewPos, SwCursorSkipMode::Chars); SwPaM aEmptyPaM{ aNewPos }; aEmptyPaM.SetMark(); diff --git a/sw/qa/extras/htmlexport/htmlmodeltestbase.hxx b/sw/qa/extras/htmlexport/htmlmodeltestbase.hxx index c3fc357118d8..9e563add4012 100644 --- a/sw/qa/extras/htmlexport/htmlmodeltestbase.hxx +++ b/sw/qa/extras/htmlexport/htmlmodeltestbase.hxx @@ -12,6 +12,7 @@ #include <comphelper/propertyvalue.hxx> #include <filter/msfilter/rtfutil.hxx> +#include <o3tl/numeric.hxx> #include <svtools/parrtf.hxx> #include <svtools/rtftoken.h> #include <tools/urlobj.hxx> @@ -81,7 +82,7 @@ bool TestReqIfRtfReader::WriteObjectData(SvStream& rOLE) if (ch != 0x0d && ch != 0x0a) { b = b << 4; - sal_Int8 parsed = msfilter::rtfutil::AsHex(ch); + sal_Int8 parsed = o3tl::convertToHex<sal_Int8>(ch); if (parsed == -1) return false; b += parsed; diff --git a/sw/qa/extras/layout/data/table-split-bug.fodt b/sw/qa/extras/layout/data/table-split-bug.fodt new file mode 100644 index 000000000000..935899af2a82 --- /dev/null +++ b/sw/qa/extras/layout/data/table-split-bug.fodt @@ -0,0 +1,440 @@ +<?xml version='1.0' encoding='UTF-8'?> +<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ooo="http://openoffice.org/2004/office" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:settings> + <config:config-item-set config:name="ooo:view-settings"> + <config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item> + <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item> + <config:config-item config:name="ViewAreaWidth" config:type="long">21987</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">17704</config:config-item> + <config:config-item config:name="ShowRedlineChanges" config:type="boolean">false</config:config-item> + <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item> + <config:config-item-map-indexed config:name="Views"> + <config:config-item-map-entry> + <config:config-item config:name="ViewId" config:type="string">view2</config:config-item> + <config:config-item config:name="ViewLeft" config:type="long">3401</config:config-item> + <config:config-item config:name="ViewTop" config:type="long">11201</config:config-item> + <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">0</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">21985</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">17702</config:config-item> + <config:config-item config:name="ZoomType" config:type="short">3</config:config-item> + <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> + <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> + <config:config-item config:name="ZoomFactor" config:type="short">84</config:config-item> + <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item> + <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">true</config:config-item> + </config:config-item-map-entry> + </config:config-item-map-indexed> + </config:config-item-set> + <config:config-item-set config:name="ooo:configuration-settings"> + <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item> + <config:config-item config:name="PrintTextPlaceholder" config:type="boolean">true</config:config-item> + <config:config-item config:name="ProtectFields" config:type="boolean">false</config:config-item> + <config:config-item config:name="ProtectBookmarks" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmptyDbFieldHidesPara" config:type="boolean">false</config:config-item> + <config:config-item config:name="DisableOffPagePositioning" config:type="boolean">false</config:config-item> + <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">true</config:config-item> + <config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">false</config:config-item> + <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">true</config:config-item> + <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item> + <config:config-item config:name="FloattableNomargins" config:type="boolean">false</config:config-item> + <config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item> + <config:config-item config:name="HeaderSpacingBelowLastPara" config:type="boolean">true</config:config-item> + <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseOldNumbering" config:type="boolean">true</config:config-item> + <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item> + <config:config-item config:name="UpdateFromTemplate" config:type="boolean">false</config:config-item> + <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item> + <config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item> + <config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">true</config:config-item> + <config:config-item config:name="CurrentDatabaseCommand" config:type="string">ADRESSEN</config:config-item> + <config:config-item config:name="PrinterIndependentLayout" config:type="string">high-resolution</config:config-item> + <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintFaxName" config:type="string"/> + <config:config-item config:name="CurrentDatabaseDataSource" config:type="string">Adreßbuch</config:config-item> + <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">true</config:config-item> + <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item> + <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item> + <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item> + <config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item> + <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item> + <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item> + <config:config-item-map-indexed config:name="ForbiddenCharacters"> + <config:config-item-map-entry> + <config:config-item config:name="Language" config:type="string">de</config:config-item> + <config:config-item config:name="Country" config:type="string">DE</config:config-item> + <config:config-item config:name="Variant" config:type="string"/> + <config:config-item config:name="BeginLine" config:type="string"/> + <config:config-item config:name="EndLine" config:type="string"/> + </config:config-item-map-entry> + <config:config-item-map-entry> + <config:config-item config:name="Language" config:type="string">en</config:config-item> + <config:config-item config:name="Country" config:type="string">US</config:config-item> + <config:config-item config:name="Variant" config:type="string"/> + <config:config-item config:name="BeginLine" config:type="string"/> + <config:config-item config:name="EndLine" config:type="string"/> + </config:config-item-map-entry> + </config:config-item-map-indexed> + <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item> + <config:config-item config:name="Rsid" config:type="int">15857532</config:config-item> + <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> + <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> + <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> + <config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item> + <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item> + <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseFormerLineSpacing" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item> + <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">true</config:config-item> + <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item> + <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item> + <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">true</config:config-item> + <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/> + <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintEmptyPages" config:type="boolean">true</config:config-item> + <config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">true</config:config-item> + <config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item> + <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item> + <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item> + <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item> + <config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">false</config:config-item> + <config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item> + <config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item> + <config:config-item config:name="RsidRoot" config:type="int">691202</config:config-item> + <config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item> + <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item> + <config:config-item config:name="MsWordCompMinLineHeightByFly" config:type="boolean">true</config:config-item> + <config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item> + <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item> + <config:config-item config:name="MathBaselineAlignment" config:type="boolean">false</config:config-item> + <config:config-item config:name="SmallCapsPercentage66" config:type="boolean">true</config:config-item> + <config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabOverflow" config:type="boolean">false</config:config-item> + </config:config-item-set> + </office:settings> + <office:font-face-decls> + <style:font-face style:name="Arial" svg:font-family="Arial" style:font-pitch="variable"/> + <style:font-face style:name="Arial Unicode MS" svg:font-family="'Arial Unicode MS'" style:font-pitch="variable"/> + <style:font-face style:name="HG Mincho Light J" svg:font-family="'HG Mincho Light J'" style:font-pitch="variable"/> + <style:font-face style:name="Thorndale" svg:font-family="Thorndale" style:font-family-generic="roman" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <draw:gradient draw:name="gradient" draw:style="linear" draw:start-color="#000000" draw:end-color="#ffffff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/> + <draw:hatch draw:name="hatch" draw:style="single" draw:color="#3465a4" draw:distance="0.02cm" draw:rotation="0"/> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#808080" draw:fill-color="#cfe7f5" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="true"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties fo:color="#000000" style:font-name="Thorndale" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-name-asian="HG Mincho Light J" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Arial Unicode MS" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"/> + </style:default-style> + <style:default-style style:family="paragraph"> + <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.27cm" style:writing-mode="lr-tb"/> + <style:text-properties fo:color="#000000" style:font-name="Thorndale" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-name-asian="HG Mincho Light J" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Arial Unicode MS" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/> + </style:default-style> + <style:default-style style:family="table"> + <style:table-properties table:border-model="separating"/> + </style:default-style> + <style:default-style style:family="table-row"> + <style:table-row-properties fo:keep-together="always"/> + </style:default-style> + <style:style style:name="Standard" style:family="paragraph" style:class="text"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false"/> + <style:text-properties style:font-name="Arial" fo:font-family="Arial" style:font-pitch="variable" fo:font-weight="350"/> + </style:style> + <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:hyphenation-ladder-count="no-limit"/> + <style:text-properties style:font-name="Arial" fo:font-family="Arial" style:font-pitch="variable" fo:hyphenate="true" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/> + </style:style> + <style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties> + <style:tab-stops> + <style:tab-stop style:position="8.5cm" style:type="center"/> + <style:tab-stop style:position="17.002cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="extra"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/> + </style:style> + <style:style style:name="TVS_20_Standard" style:display-name="TVS Standard" style:family="paragraph" style:master-page-name=""> + <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:page-number="auto"/> + <style:text-properties style:font-name="Arial" fo:font-family="Arial" style:font-pitch="variable" fo:hyphenate="true" fo:hyphenation-remain-char-count="4" fo:hyphenation-push-char-count="4" loext:hyphenation-no-caps="false"/> + </style:style> + <style:style style:name="TVS_20_KopfzeileFKB_5f_S2" style:display-name="TVS KopfzeileFKB_S2" style:family="paragraph" style:parent-style-name="TVS_20_Standard"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + <style:text-properties fo:font-size="8pt"/> + </style:style> + <style:style style:name="TVS_20_Anrede" style:display-name="TVS Anrede" style:family="paragraph" style:parent-style-name="TVS_20_Standard" style:next-style-name="TVS_20_Freitext"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.42cm" loext:contextual-spacing="false" fo:line-height="150%"/> + </style:style> + <style:style style:name="TVS_20_Freitext" style:display-name="TVS Freitext" style:family="paragraph" style:parent-style-name="TVS_20_Standard"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="justify" style:justify-single-word="false"/> + </style:style> + <style:style style:name="TVS_20_Betreff" style:display-name="TVS Betreff" style:family="paragraph" style:parent-style-name="TVS_20_Standard" style:next-style-name="TVS_20_Anrede" style:master-page-name=""> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="1.06cm" loext:contextual-spacing="false" fo:line-height="150%" style:page-number="auto"/> + <style:text-properties fo:font-weight="bold"/> + </style:style> + <style:style style:name="Fließtext" style:family="paragraph" style:parent-style-name="Text_20_body" style:default-outline-level=""> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.635cm" loext:contextual-spacing="false"/> + </style:style> + <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/> + <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/> + <style:style style:name="TVS_20_Fett" style:display-name="TVS Fett" style:family="text"> + <style:text-properties fo:font-weight="bold"/> + </style:style> + <style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text"> + <style:text-properties style:text-position="super 58%"/> + </style:style> + <style:style style:name="Endnote_20_anchor" style:display-name="Endnote anchor" style:family="text"> + <style:text-properties style:text-position="super 58%"/> + </style:style> + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="2" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="3" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="4" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="5" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="6" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="7" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="8" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="9" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="10" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + </text:outline-style> + <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" text:master-page-name="Standard" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/> + <text:notes-configuration text:note-class="endnote" text:citation-style-name="Endnote_20_Symbol" text:citation-body-style-name="Endnote_20_anchor" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/> + <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/> + <style:default-page-layout> + <style:page-layout-properties style:writing-mode="lr-tb" style:layout-grid-standard-mode="true"/> + </style:default-page-layout> + </office:styles> + <office:automatic-styles> + <style:style style:name="Tabelle19" style:family="table"> + <style:table-properties style:width="16.302cm" table:align="margins"/> + </style:style> + <style:style style:name="Tabelle19.A" style:family="table-column"> + <style:table-column-properties style:column-width="0.504cm" style:rel-column-width="2028*"/> + </style:style> + <style:style style:name="Tabelle19.B" style:family="table-column"> + <style:table-column-properties style:column-width="15.797cm" style:rel-column-width="63507*"/> + </style:style> + <style:style style:name="Tabelle19.1" style:family="table-row"> + <style:table-row-properties fo:keep-together="auto"/> + </style:style> + <style:style style:name="Tabelle19.A1" style:family="table-cell"> + <style:table-cell-properties fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.101cm" fo:padding-bottom="0.199cm" fo:border="none" style:writing-mode="page"/> + </style:style> + <style:style style:name="P13" style:family="paragraph" style:parent-style-name="TVS_20_Freitext" style:master-page-name=""> + <loext:graphic-properties draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false" style:page-number="auto"/> + <style:text-properties/> + </style:style> + <style:style style:name="P24" style:family="paragraph" style:parent-style-name="Fließtext"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="lr-tb"/> + <style:text-properties/> + </style:style> + <style:style style:name="P26" style:family="paragraph" style:parent-style-name="Fließtext"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="lr-tb"/> + <style:text-properties/> + </style:style> + <style:style style:name="P27" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <loext:graphic-properties draw:fill="none" draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.42cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="justify" style:justify-single-word="false" fo:hyphenation-ladder-count="no-limit" fo:text-indent="0cm" style:auto-text-indent="false" fo:background-color="transparent"> + <style:tab-stops> + <style:tab-stop style:position="0.499cm"/> + </style:tab-stops> + </style:paragraph-properties> + <style:text-properties fo:hyphenate="true" fo:hyphenation-remain-char-count="4" fo:hyphenation-push-char-count="4" loext:hyphenation-no-caps="false"/> + </style:style> + <style:style style:name="P28" style:family="paragraph" style:parent-style-name="Table_20_Contents"> + <style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/> + <style:text-properties/> + </style:style> + <style:style style:name="P30" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/> + <style:text-properties/> + </style:style> + <style:style style:name="P31" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <style:text-properties/> + </style:style> + <style:style style:name="P37" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <loext:graphic-properties draw:fill-gradient-name="gradient" draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.42cm" loext:contextual-spacing="false"/> + <style:text-properties/> + </style:style> + <style:style style:name="P38" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <loext:graphic-properties draw:fill-gradient-name="gradient" draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.42cm" loext:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false"/> + <style:text-properties/> + </style:style> + <style:style style:name="P39" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <loext:graphic-properties draw:fill-gradient-name="gradient" draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.42cm" loext:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/> + <style:text-properties/> + </style:style> + <style:style style:name="P40" style:family="paragraph" style:parent-style-name="TVS_20_Freitext"> + <loext:graphic-properties draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false"/> + <style:text-properties style:font-name="Arial"/> + </style:style> + <style:style style:name="P41" style:family="paragraph" style:parent-style-name="TVS_20_Freitext" style:master-page-name=""> + <loext:graphic-properties draw:fill-hatch-name="hatch"/> + <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false" style:page-number="auto" fo:keep-with-next="always"/> + <style:text-properties style:font-name="Arial"/> + </style:style> + <style:style style:name="P46" style:family="paragraph" style:parent-style-name="TVS_20_Betreff" style:master-page-name="FABrief_5f_S1"> + <style:paragraph-properties style:page-number="auto"/> + </style:style> + <style:style style:name="T7" style:family="text"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Sect1" style:family="section"> + <style:section-properties style:editable="false"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + </style:section-properties> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:paper-tray-name="[From printer settings]" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" fo:border="none" fo:padding="0cm" style:shadow="none" fo:background-color="transparent" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.55cm" style:layout-grid-ruby-height="0cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:layout-grid-base-width="0.37cm" style:layout-grid-snap-to="true" draw:fill="none" draw:fill-color="#cfe7f5" style:footnote-max-height="0cm"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style/> + </style:page-layout> + <style:page-layout style:name="pm2" style:page-usage="mirrored"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:paper-tray-name="[From printer settings]" style:print-orientation="portrait" fo:margin-top="1.3cm" fo:margin-bottom="1.799cm" fo:margin-left="2.9cm" fo:margin-right="1.799cm" fo:border="none" fo:padding="0cm" style:shadow="none" fo:background-color="transparent" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.55cm" style:layout-grid-ruby-height="0cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:layout-grid-base-width="0.37cm" style:layout-grid-snap-to="true" draw:fill="none" draw:fill-color="#cfe7f5" style:footnote-max-height="0cm"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style> + <style:header-footer-properties svg:height="1.9cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="1.401cm" fo:border="none" fo:padding="0cm" style:shadow="none" fo:background-color="transparent" style:dynamic-spacing="false" draw:fill="none" draw:fill-color="#cfe7f5"/> + </style:header-style> + <style:footer-style/> + </style:page-layout> + <style:page-layout style:name="pm4"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.55cm" style:layout-grid-ruby-height="0cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:layout-grid-base-width="0.37cm" style:layout-grid-snap-to="true" style:footnote-max-height="0cm"> + <style:footnote-sep style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style/> + </style:page-layout> + <style:page-layout style:name="pm7"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:paper-tray-name="[From printer settings]" style:print-orientation="portrait" fo:margin-top="10.7cm" fo:margin-bottom="2.2cm" fo:margin-left="2.9cm" fo:margin-right="1.799cm" fo:border="none" fo:padding="0cm" style:shadow="none" fo:background-color="transparent" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.55cm" style:layout-grid-ruby-height="0cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:layout-grid-base-width="0.37cm" style:layout-grid-snap-to="true" draw:fill="none" draw:fill-color="#cfe7f5" style:footnote-max-height="0cm"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style> + <style:header-footer-properties svg:height="2.401cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.3cm" fo:border="none" fo:padding="0cm" style:shadow="none" fo:background-color="transparent" style:dynamic-spacing="false" draw:fill="none" draw:fill-color="#cfe7f5"/> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Standard" style:page-layout-name="pm1"/> + <style:master-page style:name="FABrief_5f_S2" style:display-name="FABrief_S2" style:page-layout-name="pm2"> + <style:header> + <text:p text:style-name="TVS_20_KopfzeileFKB_5f_S2">- <text:page-number text:select-page="current">3</text:page-number><text:s/>-</text:p> + </style:header> + </style:master-page> + <style:master-page style:name="Endnote" style:page-layout-name="pm4"/> + <style:master-page style:name="FABrief_5f_S1" style:display-name="FABrief_S1" style:page-layout-name="pm7" style:next-style-name="FABrief_5f_S2"> + <style:footer> + <text:p text:style-name="Footer"/> + </style:footer> + </style:master-page> + </office:master-styles> + <office:body> + <office:text text:use-soft-page-breaks="true"> + + <text:section text:style-name="Sect1" text:name="CopyA"> + <text:p text:style-name="P46"><text:span text:style-name="TVS_20_Fett">Herrn Diego Säbelzahn</text:span></text:p> + <text:p text:style-name="TVS_20_Betreff"><text:line-break/></text:p> + <text:p text:style-name="TVS_20_Anrede">Sehr geehrte Damen und Herren,</text:p> + <text:section text:style-name="Sect1" text:name="CopyESt"> + <text:p text:style-name="P37"><text:line-break/><text:line-break/></text:p> + </text:section> + <text:p text:style-name="P13"/> + <text:p text:style-name="P39"><text:span text:style-name="T7">bis zum </text:span></text:p> + <text:p text:style-name="P38">ein:</text:p> + <table:table table:name="Tabelle19" table:style-name="Tabelle19"> + <table:table-column table:style-name="Tabelle19.A"/> + <table:table-column table:style-name="Tabelle19.B"/> + <table:table-row table:style-name="Tabelle19.1"> + <table:table-cell table:style-name="Tabelle19.A1" office:value-type="string"> + <text:p text:style-name="P28">-</text:p> + </table:table-cell> + <table:table-cell table:style-name="Tabelle19.A1" office:value-type="string"> + <text:p text:style-name="P31">Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla</text:p> + <text:p text:style-name="P31">A</text:p> + <text:p text:style-name="P31">B</text:p> + <text:p text:style-name="P24">C</text:p> + <text:p text:style-name="P24">D</text:p> + <text:p text:style-name="P24">E</text:p> + <text:p text:style-name="P24">F</text:p> + <text:p text:style-name="P24">G</text:p> + <text:p text:style-name="P24">H</text:p> + <text:p text:style-name="P26">I</text:p> + <text:p text:style-name="P31">J</text:p> + <text:p text:style-name="P31">K</text:p> + </table:table-cell> + </table:table-row> + </table:table> + <text:section text:style-name="Sect1" text:name="CopyFreitext" text:display="none"> + <text:p text:style-name="P30">- <text:placeholder text:placeholder-type="text"><TEXT></text:placeholder></text:p> + </text:section> + <text:p text:style-name="P40">Sie</text:p> + <text:p text:style-name="P41">Das</text:p> + <text:p text:style-name="P27">Be</text:p> + </text:section> + </office:text> + </office:body> +</office:document> diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index f54d38504b36..d0f31b59ced7 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -277,6 +277,47 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf136588) u"effectively by modern-day small to "); } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTableSplitBug) +{ + createSwDoc("table-split-bug.fodt"); + + { + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + assertXPath(pXmlDoc, + "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]//txt[1]/infos/bounds", + "height", u"276"); + assertXPath(pXmlDoc, "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]/infos/bounds", + "height", u"1274"); + } + + SwWrtShell* pWrtShell = getSwDocShell()->GetWrtShell(); + pWrtShell->Down(false, 1); + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/true, 1, /*bBasicCall=*/false); + pWrtShell->Delete(); + + { + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + // the problem was that the paragraph in the left cell had height 0 + assertXPath(pXmlDoc, + "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]//txt[1]/infos/bounds", + "height", u"276"); + assertXPath(pXmlDoc, "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]/infos/bounds", + "height", u"1688"); + } + + pWrtShell->Undo(); + + { + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + // the problem was that the paragraph in the left cell had height 0 + assertXPath(pXmlDoc, + "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]//txt[1]/infos/bounds", + "height", u"276"); + assertXPath(pXmlDoc, "/root/page[1]/body/section[3]/tab[1]/row[1]/cell[1]/infos/bounds", + "height", u"1274"); + } +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFlysInBody) { createSwDoc(); diff --git a/sw/qa/extras/odfexport/data/DUMMY2.odt b/sw/qa/extras/odfexport/data/DUMMY2.odt Binary files differnew file mode 100644 index 000000000000..9e616cc80767 --- /dev/null +++ b/sw/qa/extras/odfexport/data/DUMMY2.odt diff --git a/sw/qa/extras/odfexport/data/DUMMY2B.odt b/sw/qa/extras/odfexport/data/DUMMY2B.odt Binary files differnew file mode 100644 index 000000000000..92d6c15c51f1 --- /dev/null +++ b/sw/qa/extras/odfexport/data/DUMMY2B.odt diff --git a/sw/qa/extras/odfexport/data/tdf121119.odm b/sw/qa/extras/odfexport/data/tdf121119.odm Binary files differnew file mode 100644 index 000000000000..ea7784a20058 --- /dev/null +++ b/sw/qa/extras/odfexport/data/tdf121119.odm diff --git a/sw/qa/extras/odfexport/odfexport2.cxx b/sw/qa/extras/odfexport/odfexport2.cxx index 2dcac38ae108..39659ff96ef0 100644 --- a/sw/qa/extras/odfexport/odfexport2.cxx +++ b/sw/qa/extras/odfexport/odfexport2.cxx @@ -42,6 +42,8 @@ #include <unotxdoc.hxx> #include <docsh.hxx> #include <IDocumentFieldsAccess.hxx> +#include <IDocumentLinksAdministration.hxx> +#include <sfx2/linkmgr.hxx> namespace { @@ -1753,6 +1755,60 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf159027) CPPUNIT_ASSERT_EQUAL(u"6"_ustr, xCellE9->getString()); } +CPPUNIT_TEST_FIXTURE(Test, testTdf121119) +{ + createSwGlobalDoc("tdf121119.odm"); + SwDoc* pDoc = getSwDoc(); + CPPUNIT_ASSERT_EQUAL( + size_t(2), pDoc->getIDocumentLinksAdministration().GetLinkManager().GetLinks().size()); + pDoc->getIDocumentLinksAdministration().GetLinkManager().UpdateAllLinks(false, false, nullptr, + u""_ustr); + + uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier(mxComponent, + uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xIndexAccess( + xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY); + + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xIndexAccess->getCount()); + + saveAndReload(u"writerglobal8_writer"_ustr); + pDoc = getSwDoc(); + + CPPUNIT_ASSERT_EQUAL( + size_t(2), pDoc->getIDocumentLinksAdministration().GetLinkManager().GetLinks().size()); + pDoc->getIDocumentLinksAdministration().GetLinkManager().UpdateAllLinks(false, false, nullptr, + u""_ustr); + + uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier2(mxComponent, + uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xIndexAccess2( + xTextGraphicObjectsSupplier2->getGraphicObjects(), uno::UNO_QUERY); + + // This was 8 (duplicated images anchored at page) + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xIndexAccess2->getCount()); +} + +CPPUNIT_TEST_FIXTURE(Test, testTdf121119_runtime_update) +{ + createSwGlobalDoc("tdf121119.odm"); + SwDoc* pDoc = getSwDoc(); + CPPUNIT_ASSERT_EQUAL( + size_t(2), pDoc->getIDocumentLinksAdministration().GetLinkManager().GetLinks().size()); + pDoc->getIDocumentLinksAdministration().GetLinkManager().UpdateAllLinks(false, false, nullptr, + u""_ustr); + // double update of the links + pDoc->getIDocumentLinksAdministration().GetLinkManager().UpdateAllLinks(false, false, nullptr, + u""_ustr); + + uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier(mxComponent, + uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xIndexAccess( + xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY); + + // This was 8 (duplicated images anchored at page) + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xIndexAccess->getCount()); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf163703) { // Given a document with italics autostyle in a comment diff --git a/sw/qa/extras/rtfexport/rtfexport8.cxx b/sw/qa/extras/rtfexport/rtfexport8.cxx index 7184b7cc5b89..e8e607c59126 100644 --- a/sw/qa/extras/rtfexport/rtfexport8.cxx +++ b/sw/qa/extras/rtfexport/rtfexport8.cxx @@ -431,6 +431,18 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf160976_headerFooter) verify(); saveAndReload(mpFilter); verify(/*IsExported*/ true); + + //tdf#164748: export must have the all same footer settings as the first page + auto xStyles = getStyles(u"PageStyles"_ustr); + auto xPara = getParagraph(2, "2"); + OUString page2StyleName = getProperty<OUString>(xPara, u"PageDescName"_ustr); + uno::Reference<beans::XPropertySet> page2Style; + page2Style.set(xStyles->getByName(page2StyleName), uno::UNO_QUERY); + CPPUNIT_ASSERT(getProperty<bool>(page2Style, u"FooterDynamicSpacing"_ustr)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(915), + getProperty<sal_Int32>(page2Style, u"FooterBodyDistance"_ustr)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1016), getProperty<sal_Int32>(page2Style, u"FooterHeight"_ustr)); + // note: an unexpected header surfaces on page 3. } diff --git a/sw/qa/extras/uiwriter/data/DUMMY2.odt b/sw/qa/extras/uiwriter/data/DUMMY2.odt Binary files differnew file mode 100644 index 000000000000..9e616cc80767 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/DUMMY2.odt diff --git a/sw/qa/extras/uiwriter/data/DUMMY2B.odt b/sw/qa/extras/uiwriter/data/DUMMY2B.odt Binary files differnew file mode 100644 index 000000000000..92d6c15c51f1 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/DUMMY2B.odt diff --git a/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt b/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt new file mode 100644 index 000000000000..aed6e40f6648 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt @@ -0,0 +1,121 @@ +<?xml version='1.0' encoding='UTF-8'?> +<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:meta><meta:creation-date>2024-08-08T18:32:28.420082817</meta:creation-date><dc:date>2024-08-08T18:33:51.021911316</dc:date><meta:editing-duration>PT1M27S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="1" meta:word-count="3" meta:character-count="21" meta:non-whitespace-character-count="19"/><meta:generator>ZetaOffice/7.4.8.0.0$Linux_X86_64 LibreOffice_project/ab7057b1137e2241f51e62b58a0c605ec9a4b29c</meta:generator></office:meta> + <office:font-face-decls> + <style:font-face style:name="Arial Unicode MS1" svg:font-family="'Arial Unicode MS'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Serif" svg:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable"/> + <style:font-face style:name="Noto Serif CJK SC" svg:font-family="'Noto Serif CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Arial" svg:font-family="Arial"/> + <style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="roman" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" loext:color-lum-mod="100%" loext:color-lum-off="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" fo:country="DE" style:letter-kerning="true" style:font-name-asian="Noto Serif CJK SC" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Arial Unicode MS1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <style:default-style style:family="paragraph"> + <style:paragraph-properties fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" fo:country="DE" style:letter-kerning="true" style:font-name-asian="Noto Serif CJK SC" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Arial Unicode MS1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/> + </style:default-style> + <style:default-style style:family="table"> + <style:table-properties table:border-model="collapsing"/> + </style:default-style> + <style:default-style style:family="table-row"> + <style:table-row-properties fo:keep-together="auto"/> + </style:default-style> + <style:style style:name="Standard" style:family="paragraph" style:class="text"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="start" style:justify-single-word="false" fo:orphans="2" fo:widows="2" style:writing-mode="lr-tb"/> + <style:text-properties style:font-name="Arial" fo:font-family="Arial" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="9pt" fo:font-weight="bold" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Arial2" style:font-family-complex="Arial" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="9pt"/> + </style:style> + <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + </style:style> + + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="2" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="3" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="4" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="5" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="6" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="7" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="8" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="9" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + <text:outline-level-style text:level="10" style:num-format=""> + <style:list-level-properties text:list-level-position-and-space-mode="label-alignment"> + <style:list-level-label-alignment text:label-followed-by="listtab"/> + </style:list-level-properties> + </text:outline-level-style> + </text:outline-style> + <text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/> + <text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/> + <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/> + </office:styles> + <office:automatic-styles> + <style:style style:name="P114" style:family="paragraph" style:parent-style-name="Standard"> + <style:paragraph-properties fo:text-align="start" style:justify-single-word="false" fo:orphans="0" fo:widows="0"/> + <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-name-complex="Arial2" style:font-size-complex="9pt" style:font-weight-complex="normal"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm" loext:margin-gutter="0cm"> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style/> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Standard" style:page-layout-name="pm1"/> + </office:master-styles> + <office:body> + <office:text> + <text:sequence-decls> + <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/> + <text:sequence-decl text:display-outline-level="0" text:name="Table"/> + <text:sequence-decl text:display-outline-level="0" text:name="Text"/> + <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> + <text:sequence-decl text:display-outline-level="0" text:name="Figure"/> + </text:sequence-decls> + <text:p text:style-name="P114">MEINPLATZHALTER</text:p> + </office:text> + </office:body> +</office:document> diff --git a/sw/qa/extras/uiwriter/data/tdf121119.odm b/sw/qa/extras/uiwriter/data/tdf121119.odm Binary files differnew file mode 100644 index 000000000000..ea7784a20058 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/tdf121119.odm diff --git a/sw/qa/extras/uiwriter/data/tdf163340_2.odt b/sw/qa/extras/uiwriter/data/tdf163340_2.odt Binary files differnew file mode 100644 index 000000000000..c58a181a0846 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/tdf163340_2.odt diff --git a/sw/qa/extras/uiwriter/uiwriter3.cxx b/sw/qa/extras/uiwriter/uiwriter3.cxx index cd903cf2fdcf..852ccd4e3b13 100644 --- a/sw/qa/extras/uiwriter/uiwriter3.cxx +++ b/sw/qa/extras/uiwriter/uiwriter3.cxx @@ -12,6 +12,7 @@ #include <vcl/scheduler.hxx> #include <com/sun/star/awt/FontWeight.hpp> #include <com/sun/star/document/XDocumentInsertable.hpp> +#include <com/sun/star/style/ParagraphAdjust.hpp> #include <com/sun/star/table/TableBorder2.hpp> #include <com/sun/star/text/XDocumentIndex.hpp> #include <com/sun/star/text/XTextFrame.hpp> @@ -130,6 +131,62 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testPlaceholderHTMLInsert) getProperty<float>(getRun(getParagraph(4), 1, u" test"_ustr), u"CharWeight"_ustr)); } +CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testPlaceholderHTMLPasteStyleOverride) +{ + { + createSwDoc(); + + SwWrtShell* const pWrtShell = getSwDocShell()->GetWrtShell(); + pWrtShell->Insert(u"AAA"_ustr); + pWrtShell->SplitNode(); + pWrtShell->Insert(u"BBB"_ustr); + + dispatchCommand(mxComponent, u".uno:SelectAll"_ustr, {}); + dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); + } + + createSwDoc("placeholder-bold-style-override.fodt"); + + // select placeholder field + SwWrtShell* const pWrtShell = getSwDocShell()->GetWrtShell(); + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/true, 15, /*bBasicCall=*/false); + + // Paste special as HTML + uno::Sequence<beans::PropertyValue> aPropertyValues = comphelper::InitPropertySequence( + { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::HTML)) } }); + + dispatchCommand(mxComponent, u".uno:ClipboardFormatItems"_ustr, aPropertyValues); + + // style sets it to bold + uno::Reference<style::XStyleFamiliesSupplier> xSFS(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XNameContainer> xStyles( + xSFS->getStyleFamilies()->getByName(u"ParagraphStyles"_ustr), uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> xStandard(xStyles->getByName("Standard"), uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> xTextbody(xStyles->getByName("Text body"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xStandard, u"CharWeight"_ustr)); + CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xTextbody, u"CharWeight"_ustr)); + CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_CENTER), + getProperty<sal_Int16>(xTextbody, u"ParaAdjust"_ustr)); + + CPPUNIT_ASSERT_EQUAL(int(3), getParagraphs()); + + // but hard formatting overrides to normal + CPPUNIT_ASSERT_EQUAL( + awt::FontWeight::NORMAL, + getProperty<float>(getRun(getParagraph(1), 1, u"AAA"_ustr), u"CharWeight"_ustr)); + CPPUNIT_ASSERT_EQUAL( + awt::FontWeight::NORMAL, + getProperty<float>(getRun(getParagraph(2), 1, u"BBB"_ustr), u"CharWeight"_ustr)); + CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_LEFT), + getProperty<sal_Int16>(getParagraph(1), u"ParaAdjust"_ustr)); + CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_LEFT), + getProperty<sal_Int16>(getParagraph(2), u"ParaAdjust"_ustr)); + CPPUNIT_ASSERT_EQUAL(u"Text body"_ustr, + getProperty<OUString>(getParagraph(1), u"ParaStyleName"_ustr)); + CPPUNIT_ASSERT_EQUAL(u"Text body"_ustr, + getProperty<OUString>(getParagraph(2), u"ParaStyleName"_ustr)); +} + CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf151974) { createSwDoc("tdf151974.odt"); diff --git a/sw/qa/extras/uiwriter/uiwriter8.cxx b/sw/qa/extras/uiwriter/uiwriter8.cxx index 63c17c5b74b5..deace483779b 100644 --- a/sw/qa/extras/uiwriter/uiwriter8.cxx +++ b/sw/qa/extras/uiwriter/uiwriter8.cxx @@ -2904,6 +2904,36 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf103612) "portion", u"Text after section"); } +CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf121119) +{ + createSwGlobalDoc("tdf121119.odm"); + SwDoc* pDoc = getSwDoc(); + CPPUNIT_ASSERT_EQUAL( + size_t(2), pDoc->getIDocumentLinksAdministration().GetLinkManager().GetLinks().size()); + pDoc->getIDocumentLinksAdministration().GetLinkManager().UpdateAllLinks(false, false, nullptr, + u""_ustr); + + uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier(mxComponent, + uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xIndexAccess( + xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY); + + // This was 0 (missing images anchored at page) + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xIndexAccess->getCount()); + + uno::Reference<drawing::XShape> xShape(xIndexAccess->getByIndex(0), uno::UNO_QUERY); + + CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_PAGE, + getProperty<text::TextContentAnchorType>(xShape, u"AnchorType"_ustr)); + + xmlDocUniquePtr pLayout = parseLayoutDump(); + // check page numbers of the objects anchored at page + assertXPath(pLayout, "/root/page[2]/anchored/fly/SwAnchoredObject", 1); + assertXPath(pLayout, "/root/page[4]/anchored/fly/SwAnchoredObject", 1); + assertXPath(pLayout, "/root/page[7]/anchored/fly/SwAnchoredObject", 1); + assertXPath(pLayout, "/root/page[9]/anchored/fly/SwAnchoredObject", 1); +} + CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf97899) { createSwDoc(); diff --git a/sw/qa/extras/uiwriter/uiwriter9.cxx b/sw/qa/extras/uiwriter/uiwriter9.cxx index 66ef51e47102..666f3aefe5dc 100644 --- a/sw/qa/extras/uiwriter/uiwriter9.cxx +++ b/sw/qa/extras/uiwriter/uiwriter9.cxx @@ -855,6 +855,33 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest9, testTdf163340) CPPUNIT_ASSERT_EQUAL(u"A."_ustr, getProperty<OUString>(xParaCursor, u"ListLabelString"_ustr)); } +CPPUNIT_TEST_FIXTURE(SwUiWriterTest9, testTdf163340_2) +{ + //selects and copies a single paragraph with a list (bullets) + //and pastes it into an empty paragraph with a different list (numbers) + //checks that the resulting paragraph keeps that different list + createSwDoc("tdf163340_2.odt"); + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XText> xText = xTextDocument->getText(); + uno::Reference<view::XSelectionSupplier> xSelSupplier(xModel->getCurrentController(), + uno::UNO_QUERY_THROW); + uno::Reference<text::XParagraphCursor> xParaCursor(xTextDocument->getText()->createTextCursor(), + uno::UNO_QUERY); + + for (int i = 0; i < 2; i++) + xParaCursor->gotoNextParagraph(false); + xParaCursor->gotoEndOfParagraph(true); + xSelSupplier->select(uno::Any(xParaCursor)); + + xParaCursor = uno::Reference<text::XParagraphCursor>(xText->createTextCursor(), uno::UNO_QUERY); + for (int i = 0; i < 10; i++) + xParaCursor->gotoNextParagraph(false); + xParaCursor->gotoEndOfParagraph(true); + dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); + CPPUNIT_ASSERT_EQUAL(u"5."_ustr, getProperty<OUString>(xParaCursor, u"ListLabelString"_ustr)); +} + CPPUNIT_TEST_FIXTURE(SwUiWriterTest9, testTdf159023) { createSwDoc(); diff --git a/sw/qa/writerfilter/dmapper/DomainMapperTableHandler.cxx b/sw/qa/writerfilter/dmapper/DomainMapperTableHandler.cxx index fb090009c070..03c4727737b7 100644 --- a/sw/qa/writerfilter/dmapper/DomainMapperTableHandler.cxx +++ b/sw/qa/writerfilter/dmapper/DomainMapperTableHandler.cxx @@ -252,6 +252,31 @@ CPPUNIT_TEST_FIXTURE(Test, testTableStyleParaBorderSpacing) // i.e. the top and bottom border and its 1pt spacing was not set on the in-table paragraph. CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(35), nTopBorderDistance); } + +CPPUNIT_TEST_FIXTURE(Test, testDOCXFloatingTableNestedLayout) +{ + // Given a floating table inside an outer table, both in body text: + // When loading that document: + loadFromFile(u"floattable-nested-layout.docx"); + + // Then make sure the inner table stays inside the outer table: + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + css::uno::Reference<qa::XDumper> xDumper(xModel->getCurrentController(), uno::UNO_QUERY); + OString aDump = xDumper->dump(u"layout"_ustr).toUtf8(); + auto pCharBuffer = reinterpret_cast<const xmlChar*>(aDump.getStr()); + xmlDocUniquePtr pXmlDoc(xmlParseDoc(pCharBuffer)); + sal_Int32 nFlyTop = getXPath(pXmlDoc, "//fly/infos/bounds", "top").toInt32(); + sal_Int32 nFlyBottom = getXPath(pXmlDoc, "//fly/infos/bounds", "bottom").toInt32(); + sal_Int32 nTableTop = getXPath(pXmlDoc, "//page[1]/body/tab/infos/bounds", "top").toInt32(); + sal_Int32 nTableBottom + = getXPath(pXmlDoc, "//page[1]/body/tab/infos/bounds", "bottom").toInt32(); + // Without the accompanying fix in place, this test would have failed with: + // - Expected greater than: 1839 + // - Actual : 360 + // i.e. the floating table was outside the outer table. + CPPUNIT_ASSERT_GREATER(nTableTop, nFlyTop); + CPPUNIT_ASSERT_LESS(nTableBottom, nFlyBottom); +} } CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/qa/writerfilter/dmapper/data/floattable-nested-layout.docx b/sw/qa/writerfilter/dmapper/data/floattable-nested-layout.docx Binary files differnew file mode 100644 index 000000000000..d17a97969f4c --- /dev/null +++ b/sw/qa/writerfilter/dmapper/data/floattable-nested-layout.docx diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi index 612f3d1955a9..a0f257d916a3 100644 --- a/sw/sdi/_textsh.sdi +++ b/sw/sdi/_textsh.sdi @@ -1027,6 +1027,11 @@ interface BaseText StateMethod = StateField ; DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; ] + FN_COPY_FIELD // status() + [ + ExecMethod = ExecField; + StateMethod = StateField; + ] FN_UPDATE_SEL_FIELD [ ExecMethod = ExecField ; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index bba5111a7077..dd7c1668d8b3 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -8856,3 +8856,21 @@ SfxVoidItem OutlineLevelsShown FN_OUTLINE_LEVELS_SHOWN ToolBoxConfig = TRUE, GroupId = SfxGroupId::View; ] + +SfxVoidItem CopyFieldDialog FN_COPY_FIELD +() +[ + AutoUpdate = TRUE, + FastCall = FALSE, + ReadOnlyDoc = TRUE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + AccelConfig = FALSE, + MenuConfig = FALSE, + ToolBoxConfig = FALSE, + GroupId = SfxGroupId::Edit; +] diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index d3781432b648..48e2ff5eac98 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -1847,15 +1847,16 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex, if (rValue.Name == UNO_NAME_CHAR_BACK_COLOR) { uno::Any &anyChar = rValue.Value; - sal_uInt32 crBack = static_cast<sal_uInt32>( reinterpret_cast<sal_uIntPtr>(anyChar.pReserved)); - if (COL_AUTO == Color(ColorTransparency, crBack)) + Color backColor; + anyChar >>= backColor; + if (COL_AUTO == backColor) { uno::Reference<XAccessibleComponent> xComponent(this); if (xComponent.is()) { - crBack = static_cast<sal_uInt32>(xComponent->getBackground()); + sal_uInt32 crBack = static_cast<sal_uInt32>(xComponent->getBackground()); + rValue.Value <<= crBack; } - rValue.Value <<= crBack; } continue; } @@ -1866,15 +1867,16 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex, if( GetPortionData().IsInGrayPortion( nIndex ) ) rValue.Value <<= GetCursorShell()->GetViewOptions()->GetFieldShadingsColor(); uno::Any &anyChar = rValue.Value; - sal_uInt32 crChar = static_cast<sal_uInt32>( reinterpret_cast<sal_uIntPtr>(anyChar.pReserved)); + Color charColor; + anyChar >>= charColor; - if( COL_AUTO == Color(ColorTransparency, crChar) ) + if( COL_AUTO == charColor ) { uno::Reference<XAccessibleComponent> xComponent(this); if (xComponent.is()) { Color cr(ColorTransparency, xComponent->getBackground()); - crChar = sal_uInt32(cr.IsDark() ? COL_WHITE : COL_BLACK); + sal_uInt32 crChar = sal_uInt32(cr.IsDark() ? COL_WHITE : COL_BLACK); rValue.Value <<= crChar; } } @@ -1885,15 +1887,16 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex, if (rValue.Name == UNO_NAME_CHAR_UNDERLINE_COLOR) { uno::Any &anyChar = rValue.Value; - sal_uInt32 crUnderline = static_cast<sal_uInt32>( reinterpret_cast<sal_uIntPtr>(anyChar.pReserved)); - if ( COL_AUTO == Color(ColorTransparency, crUnderline) ) + Color underlineColor; + anyChar >>= underlineColor; + if ( COL_AUTO == underlineColor ) { uno::Reference<XAccessibleComponent> xComponent(this); if (xComponent.is()) { Color cr(ColorTransparency, xComponent->getBackground()); - crUnderline = sal_uInt32(cr.IsDark() ? COL_WHITE : COL_BLACK); - rValue.Value <<= crUnderline; + underlineColor = cr.IsDark() ? COL_WHITE : COL_BLACK; + rValue.Value <<= underlineColor; } } diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx index 9b03cac2192e..8eeae58276ec 100644 --- a/sw/source/core/attr/calbck.cxx +++ b/sw/source/core/attr/calbck.cxx @@ -254,7 +254,8 @@ void SwModify::SwClientNotify(const SwModify&, const SfxHint& rHint) if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != SfxHintId::SwRemoveUnoObject && rHint.GetId() != SfxHintId::SwAttrSetChange - && rHint.GetId() != SfxHintId::SwObjectDying) + && rHint.GetId() != SfxHintId::SwObjectDying + && rHint.GetId() != SfxHintId::SwUpdateAttr) return; DBG_TESTSOLARMUTEX(); diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx index a87a59529d4a..e941fa6320ef 100644 --- a/sw/source/core/attr/format.cxx +++ b/sw/source/core/attr/format.cxx @@ -207,7 +207,8 @@ SwFormat::~SwFormat() void SwFormat::SwClientNotify(const SwModify&, const SfxHint& rHint) { - if (rHint.GetId() == SfxHintId::SwRemoveUnoObject) + if (rHint.GetId() == SfxHintId::SwRemoveUnoObject + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwModify::SwClientNotify(*this, rHint); return; diff --git a/sw/source/core/attr/hints.cxx b/sw/source/core/attr/hints.cxx index a16ba772c8e8..8aaabaf26816 100644 --- a/sw/source/core/attr/hints.cxx +++ b/sw/source/core/attr/hints.cxx @@ -65,12 +65,12 @@ void AutoFormatUsedHint::CheckNode(const SwNode* pNode) const } // namespace sw SwUpdateAttr::SwUpdateAttr( sal_Int32 nS, sal_Int32 nE, sal_uInt16 nW ) - : SwMsgPoolItem( RES_UPDATE_ATTR ), m_nStart( nS ), m_nEnd( nE ), m_nWhichAttr( nW ) + : m_nStart( nS ), m_nEnd( nE ), m_nWhichAttr( nW ) { } SwUpdateAttr::SwUpdateAttr( sal_Int32 nS, sal_Int32 nE, sal_uInt16 nW, std::vector<sal_uInt16> aW ) - : SwMsgPoolItem( RES_UPDATE_ATTR ), m_nStart( nS ), m_nEnd( nE ), m_nWhichAttr( nW ), m_aWhichFmtAttrs(std::move( aW )) + : m_nStart( nS ), m_nEnd( nE ), m_nWhichAttr( nW ), m_aWhichFmtAttrs(std::move( aW )) { } diff --git a/sw/source/core/crsr/bookmark.cxx b/sw/source/core/crsr/bookmark.cxx index 5e62e948db5e..b25bdbe50e6b 100644 --- a/sw/source/core/crsr/bookmark.cxx +++ b/sw/source/core/crsr/bookmark.cxx @@ -263,7 +263,7 @@ namespace auto InvalidatePosition(SwPosition const& rPos) -> void { SwUpdateAttr const aHint(rPos.GetContentIndex(), rPos.GetContentIndex(), 0); - rPos.GetNode().GetTextNode()->CallSwClientNotify(sw::LegacyModifyHint(&aHint, &aHint)); + rPos.GetNode().GetTextNode()->CallSwClientNotify(sw::UpdateAttrHint(&aHint, &aHint)); } } diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 21419732e594..3ef4fd73b492 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -1056,7 +1056,8 @@ bool SwCursorShell::IsInHeaderFooter( bool* pbInHeader ) const return nullptr != pFrame; } -int SwCursorShell::SetCursor(const Point& rLPt, bool bOnlyText, bool bBlock, bool bFieldInfo) +int SwCursorShell::SetCursor(const Point& rLPt, bool bOnlyText, bool bBlock, + bool bFieldInfo, ScrollSizeMode eScrollSizeMode) { CurrShell aCurr( this ); @@ -1161,7 +1162,7 @@ int SwCursorShell::SetCursor(const Point& rLPt, bool bOnlyText, bool bBlock, boo if( !pCursor->IsSelOvr( SwCursorSelOverFlags::ChangePos ) ) { - UpdateCursor( SwCursorShell::SCROLLWIN | SwCursorShell::CHKRANGE ); + UpdateCursor( SwCursorShell::SCROLLWIN | SwCursorShell::CHKRANGE, false, eScrollSizeMode ); bRet &= ~CRSR_POSOLD; } else if( bOnlyText && !m_pCurrentCursor->HasMark() ) @@ -1943,7 +1944,7 @@ class SwNotifyAccAboutInvalidTextSelections } #endif -void SwCursorShell::UpdateCursor( sal_uInt16 eFlags, bool bIdleEnd ) +void SwCursorShell::UpdateCursor( sal_uInt16 eFlags, bool bIdleEnd, ScrollSizeMode eScrollSizeMode ) { Point nOldPos = m_pCurrentCursor->GetPtPos(); CurrShell aCurr( this ); @@ -2387,7 +2388,7 @@ void SwCursorShell::UpdateCursor( sal_uInt16 eFlags, bool bIdleEnd ) // again, thus save and reset the flag here bool bSav = m_bSVCursorVis; m_bSVCursorVis = false; - MakeSelVisible(); + MakeSelVisible(eScrollSizeMode); m_bSVCursorVis = bSav; } @@ -2907,7 +2908,9 @@ void SwCursorShell::SwClientNotify(const SwModify&, const SfxHint& rHint) m_aGrfArrivedLnk.Call(*this); return; } - if (rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwAttrSetChange) + if (rHint.GetId() == SfxHintId::SwFormatChange + || rHint.GetId() == SfxHintId::SwAttrSetChange + || rHint.GetId() == SfxHintId::SwUpdateAttr) { if( m_bCallChgLnk ) // messages are not forwarded @@ -2927,7 +2930,7 @@ void SwCursorShell::SwClientNotify(const SwModify&, const SfxHint& rHint) auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint); auto nWhich = pLegacy->GetWhich(); if( m_bCallChgLnk && - ( nWhich == 0 || !isFormatMessage(nWhich) || nWhich == RES_UPDATE_ATTR )) + ( nWhich == 0 || !isFormatMessage(nWhich) )) // messages are not forwarded // #i6681#: RES_UPDATE_ATTR is implicitly unset in // SwTextNode::Insert(SwTextHint*, sal_uInt16); we react here and thus do @@ -3091,7 +3094,7 @@ bool SwCursorShell::ExtendSelection( bool bEnd, sal_Int32 nCount ) @param rPt The position to move the visible cursor to. @return <false> if SPoint was corrected by the layout. */ -bool SwCursorShell::SetVisibleCursor( const Point &rPt ) +bool SwCursorShell::SetVisibleCursor( const Point &rPt, ScrollSizeMode eScrollSizeMode ) { CurrShell aCurr( this ); Point aPt( rPt ); @@ -3130,7 +3133,7 @@ bool SwCursorShell::SetVisibleCursor( const Point &rPt ) m_pVisibleCursor->Hide(); // always hide visible cursor if( IsScrollMDI( this, m_aCharRect )) { - MakeVisible( m_aCharRect ); + MakeVisible( m_aCharRect, eScrollSizeMode ); m_pCurrentCursor->Show(nullptr); } @@ -3518,7 +3521,7 @@ size_t SwCursorShell::UpdateTableSelBoxes() } /// show the current selected "object" -void SwCursorShell::MakeSelVisible() +void SwCursorShell::MakeSelVisible(ScrollSizeMode eScrollSizeMode) { OSL_ENSURE( m_bHasFocus, "no focus but cursor should be made visible?" ); if( m_aCursorHeight.Y() < m_aCharRect.Height() && m_aCharRect.Height() > VisArea().Height() ) @@ -3542,13 +3545,13 @@ void SwCursorShell::MakeSelVisible() else { if( m_aCharRect.HasArea() ) - MakeVisible( m_aCharRect ); + MakeVisible( m_aCharRect, eScrollSizeMode ); else { SwRect aTmp( m_aCharRect ); aTmp.AddHeight(1 ); aTmp.AddWidth(1 ); - MakeVisible( aTmp ); + MakeVisible( aTmp, eScrollSizeMode ); } } } diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx index 710744b4b8ae..fce732b9bf51 100644 --- a/sw/source/core/crsr/pam.cxx +++ b/sw/source/core/crsr/pam.cxx @@ -378,36 +378,21 @@ bool CheckNodesRange( const SwNode& rStt, return false; // somewhere in between => error } -bool GoNext(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ) +bool GoNext(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ) { - if( pNd->IsContentNode() ) - return static_cast<SwContentNode*>(pNd)->GoNext( pIdx, nMode ); + if( rNd.IsContentNode() ) + return static_cast<SwContentNode&>(rNd).GoNext( rIdx, nMode ); return false; } -bool GoPrevious( SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ) +bool GoPrevious( SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ) { - if( pNd->IsContentNode() ) - return static_cast<SwContentNode*>(pNd)->GoPrevious( pIdx, nMode ); + if( rNd.IsContentNode() ) + return static_cast<SwContentNode&>(rNd).GoPrevious( rIdx, nMode ); return false; } -SwContentNode* GoNextNds( SwNodeIndex* pIdx, bool bChk ) -{ - SwNodeIndex aIdx( *pIdx ); - SwContentNode* pNd = SwNodes::GoNext(&aIdx); - if( pNd ) - { - if( bChk && SwNodeOffset(1) != aIdx.GetIndex() - pIdx->GetIndex() && - !CheckNodesRange( pIdx->GetNode(), aIdx.GetNode(), true ) ) - pNd = nullptr; - else - *pIdx = aIdx; - } - return pNd; -} - -SwContentNode* GoPreviousNds( SwNodeIndex * pIdx, bool bChk ) +static SwContentNode* GoPreviousNds( SwNodeIndex * pIdx, bool bChk ) { SwNodeIndex aIdx( *pIdx ); SwContentNode* pNd = SwNodes::GoPrevious( &aIdx ); @@ -1150,11 +1135,11 @@ void GoStartSection( SwPosition * pPos ) pPos->AssignStartIndex(*pPos->GetNode().GetContentNode()); } -void GoStartOfSection( SwPosition * pPos ) +void GoStartOfSection( SwPosition& rPos ) { // jump to section's beginning - SwNodes::GoStartOfSection( &pPos->nNode ); - pPos->nContent.Assign(pPos->GetNode().GetContentNode(), 0); + SwNodes::GoStartOfSection( &rPos.nNode ); + rPos.nContent.Assign(rPos.GetNode().GetContentNode(), 0); } /// go to the end of the current base section @@ -1175,11 +1160,11 @@ void GoEndSection( SwPosition * pPos ) pPos->AssignEndIndex(*pCNd); } -void GoEndOfSection( SwPosition * pPos ) +void GoEndOfSection( SwPosition& rPos ) { - SwNodes::GoEndOfSection( &pPos->nNode ); - SwContentNode* pCNd = pPos->nNode.GetNode().GetContentNode(); - pPos->nContent.Assign(pCNd, pCNd ? pCNd->Len() : 0); + SwNodes::GoEndOfSection( &rPos.nNode ); + SwContentNode* pCNd = rPos.nNode.GetNode().GetContentNode(); + rPos.nContent.Assign(pCNd, pCNd ? pCNd->Len() : 0); } bool GoInDoc( SwPaM & rPam, SwMoveFnCollection const & fnMove ) @@ -1205,32 +1190,32 @@ bool GoInNode( SwPaM & rPam, SwMoveFnCollection const & fnMove ) bool GoInContent( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Chars )) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Chars )) return true; return GoInNode( rPam, fnMove ); } bool GoInContentCells( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Cells )) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Cells )) return true; return GoInNode( rPam, fnMove ); } bool GoInContentSkipHidden( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Chars | SwCursorSkipMode::Hidden ) ) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Chars | SwCursorSkipMode::Hidden ) ) return true; return GoInNode( rPam, fnMove ); } bool GoInContentCellsSkipHidden( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Cells | SwCursorSkipMode::Hidden ) ) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Cells | SwCursorSkipMode::Hidden ) ) return true; return GoInNode( rPam, fnMove ); } @@ -1292,7 +1277,7 @@ bool GoCurrSection( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { SwPosition& rPos = *rPam.GetPoint(); SwPosition aSavePos( rPos ); // position for comparison - (fnMove.fnSection)( &rPos ); + (fnMove.fnSection)( rPos ); SwContentNode *pNd; if( nullptr == ( pNd = rPos.GetNode().GetContentNode()) && nullptr == ( pNd = (*fnMove.fnPos)( &rPos, true )) ) @@ -1374,7 +1359,7 @@ void SwPaM::InvalidatePaM() ? End()->GetContentIndex() - nStart : pTextNode->Len() - nStart, 0); - pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aHint, &aHint)); + pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aHint, &aHint)); } // other node types not invalidated } diff --git a/sw/source/core/crsr/paminit.cxx b/sw/source/core/crsr/paminit.cxx index a415aee2c21c..39f2a55df43f 100644 --- a/sw/source/core/crsr/paminit.cxx +++ b/sw/source/core/crsr/paminit.cxx @@ -23,7 +23,6 @@ const SwMoveFnCollection aFwrd = { /* fnNd */ &GoNext, - /* fnNds */ &GoNextNds, /* fnPos */ &GoNextPos, /* fnDoc */ &GoEndDoc, /* fnSections */ &GoEndSection, @@ -35,7 +34,6 @@ const SwMoveFnCollection aFwrd = { const SwMoveFnCollection aBwrd = { /* fnNd */ &GoPrevious, - /* fnNds */ &GoPreviousNds, /* fnPos */ &GoPreviousPos, /* fnDoc */ &GoStartDoc, /* fnSections */ &GoStartSection, diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index c26b9198c3da..c2eca8469588 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -491,9 +491,9 @@ namespace if (pTextNd == nullptr || pEndTextNd == nullptr) return false; bool bRet = pTextNd->IsInListFromStyle(); - //prefer list if it's a single paragraph with list from style - if (pTextNd == pEndTextNd && bRet) - return true; + //single paragraphs are preferred only if it's a has a list from style + if (pTextNd == pEndTextNd) + return bRet; if (pTextNd && pTextNd->IsInList() && !pTextNd->IsInListFromStyle() && pEndTextNd && pEndTextNd->IsInList() && !pEndTextNd->IsInListFromStyle()) @@ -2848,7 +2848,7 @@ bool DocumentContentOperationsManager::Overwrite( const SwPaM &rRg, const OUStri if( nOldAttrCnt != nNewAttrCnt ) { const SwUpdateAttr aHint(0,0,0); - pNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aHint, &aHint)); + pNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aHint, &aHint)); } if (!m_rDoc.GetIDocumentUndoRedo().DoesUndo() && diff --git a/sw/source/core/doc/DocumentDeviceManager.cxx b/sw/source/core/doc/DocumentDeviceManager.cxx index 690a183e1fdc..1d49f23e7182 100644 --- a/sw/source/core/doc/DocumentDeviceManager.cxx +++ b/sw/source/core/doc/DocumentDeviceManager.cxx @@ -205,11 +205,11 @@ void DocumentDeviceManager::setJobsetup(/*[in]*/ const JobSetup &rJobSetup ) if( !mpPrt ) { //The ItemSet is deleted by Sfx! - auto pSet = std::make_unique<SfxItemSetFixed< - SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, - SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, - SID_HTML_MODE, SID_HTML_MODE, - FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER>>(m_rDoc.GetAttrPool()); + auto pSet = std::make_unique<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, + SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, + SID_HTML_MODE, SID_HTML_MODE, + FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER>(m_rDoc.GetAttrPool())); VclPtr<SfxPrinter> p = VclPtr<SfxPrinter>::Create( std::move(pSet), rJobSetup ); if ( bCheckPageDescs ) setPrinter( p, true, true ); @@ -284,12 +284,11 @@ SfxPrinter& DocumentDeviceManager::CreatePrinter_() const // We create a default SfxPrinter. // The ItemSet is deleted by Sfx! - auto pSet = std::make_unique<SfxItemSetFixed< - SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, - SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, - SID_HTML_MODE, SID_HTML_MODE, - FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER>>(m_rDoc.GetAttrPool()); - + auto pSet = std::make_unique<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, + SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, + SID_HTML_MODE, SID_HTML_MODE, + FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER>(m_rDoc.GetAttrPool())); VclPtr<SfxPrinter> pNewPrt = VclPtr<SfxPrinter>::Create( std::move(pSet) ); // assign PrintData to newly created printer diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx b/sw/source/core/doc/DocumentRedlineManager.cxx index 90c11ed7f9a9..653ff6175bf6 100644 --- a/sw/source/core/doc/DocumentRedlineManager.cxx +++ b/sw/source/core/doc/DocumentRedlineManager.cxx @@ -429,11 +429,10 @@ namespace // using Undo, remove direct paragraph formatting of the "To" paragraph, // and apply here direct paragraph formatting of the "From" paragraph - SfxItemSetFixed< - RES_PARATR_BEGIN, RES_PARATR_END - 3, // skip RSID and GRABBAG - RES_PARATR_LIST_BEGIN, RES_UL_SPACE, // skip PAGEDESC and BREAK - RES_CNTNT, RES_FRMATR_END - 1> - aTmp(rDoc.GetAttrPool()); + SfxItemSet aTmp(SfxItemSet::makeFixedSfxItemSet< + RES_PARATR_BEGIN, RES_PARATR_END - 3, // skip RSID and GRABBAG + RES_PARATR_LIST_BEGIN, RES_UL_SPACE, // skip PAGEDESC and BREAK + RES_CNTNT, RES_FRMATR_END - 1>(rDoc.GetAttrPool())); SfxItemSet aTmp2(aTmp); pToNode->GetParaAttr(aTmp, 0, 0); diff --git a/sw/source/core/doc/DocumentSettingManager.cxx b/sw/source/core/doc/DocumentSettingManager.cxx index 2f9d4f840d90..1ac6e3e15332 100644 --- a/sw/source/core/doc/DocumentSettingManager.cxx +++ b/sw/source/core/doc/DocumentSettingManager.cxx @@ -277,7 +277,6 @@ bool sw::DocumentSettingManager::get(/*[in]*/ DocumentSettingId id) const case DocumentSettingId::USE_VARIABLE_WIDTH_NBSP: return mbUseVariableWidthNBSP; case DocumentSettingId::PAINT_HELL_OVER_HEADER_FOOTER: return mbPaintHellOverHeaderFooter; case DocumentSettingId::MIN_ROW_HEIGHT_INCL_BORDER: return mbMinRowHeightInclBorder; - // tdf#129808 case DocumentSettingId::MS_WORD_COMP_GRID_METRICS: return mbMsWordCompGridMetrics; case DocumentSettingId::NO_CLIPPING_WITH_WRAP_POLYGON: return mbNoClippingWithWrapPolygon; default: @@ -605,7 +604,6 @@ void sw::DocumentSettingManager::set(/*[in]*/ DocumentSettingId id, /*[in]*/ boo case DocumentSettingId::FOOTNOTE_IN_COLUMN_TO_PAGEEND: mbFootnoteInColumnToPageEnd = value; break; - // tdf#129808 case DocumentSettingId::MS_WORD_COMP_GRID_METRICS: mbMsWordCompGridMetrics = value; break; diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx index 0830799e3c1e..e6d73b90db65 100644 --- a/sw/source/core/doc/DocumentStylePoolManager.cxx +++ b/sw/source/core/doc/DocumentStylePoolManager.cxx @@ -71,6 +71,7 @@ #include <unotools/syslocale.hxx> #include <i18nlangtag/languagetag.hxx> #include <comphelper/lok.hxx> +#include <names.hxx> using namespace ::editeng; using namespace ::com::sun::star; @@ -604,7 +605,7 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId, // in online we can have multiple languages, use translated name if (comphelper::LibreOfficeKit::isActive()) { - OUString aName = SwStyleNameMapper::GetUIName(nId, OUString()); + OUString aName = SwStyleNameMapper::GetUIName(nId, ProgName()); if (!aName.isEmpty()) pNewColl->SetFormatName(aName); } diff --git a/sw/source/core/doc/SwStyleNameMapper.cxx b/sw/source/core/doc/SwStyleNameMapper.cxx index b89dec6d6e6f..def6c49c552d 100644 --- a/sw/source/core/doc/SwStyleNameMapper.cxx +++ b/sw/source/core/doc/SwStyleNameMapper.cxx @@ -25,6 +25,7 @@ #include <i18nlangtag/languagetag.hxx> #include <o3tl/string_view.hxx> #include <map> +#include <names.hxx> #ifdef _NEED_TO_DEBUG_MAPPING #include <stdlib.h> @@ -76,6 +77,14 @@ void lcl_CheckSuffixAndDelete(OUString & rString) } } +void lcl_CheckSuffixAndDelete(ProgName & rString) +{ + if (lcl_SuffixIsUser(rString.toString())) + { + rString = ProgName(rString.toString().copy(0, rString.toString().getLength() - 7)); + } +} + NameToIdHash HashFromRange(sal_uInt16 nAcc) { return NameToIdHash(nAcc); } template <typename... Rest> NameToIdHash HashFromRange(sal_uInt16 nAcc, sal_uInt16 nBegin, sal_uInt16 nEnd, @@ -234,33 +243,33 @@ const NameToIdHash & SwStyleNameMapper::getHashTable ( SwGetPoolIdFromName eFlag } // This gets the UI name from the programmatic name -const OUString& SwStyleNameMapper::GetUIName(const OUString& rName, +const OUString& SwStyleNameMapper::GetUIName(const ProgName& rName, SwGetPoolIdFromName const eFlags) { sal_uInt16 nId = GetPoolIdFromProgName ( rName, eFlags ); - return nId != USHRT_MAX ? GetUIName( nId, rName ) : rName; + return nId != USHRT_MAX ? GetUIName( nId, rName ) : rName.toString(); } // Get the programmatic name from the UI name -const OUString& SwStyleNameMapper::GetProgName( +ProgName SwStyleNameMapper::GetProgName( const OUString& rName, SwGetPoolIdFromName const eFlags) { sal_uInt16 nId = GetPoolIdFromUIName ( rName, eFlags ); - return nId != USHRT_MAX ? GetProgName( nId, rName ) : rName; + return nId != USHRT_MAX ? GetProgName( nId, rName ) : ProgName(rName); } // Get the programmatic name from the UI name in rName and put it into rFillName void SwStyleNameMapper::FillProgName( - const OUString& rName, OUString& rFillName, + const OUString& rName, ProgName& rFillName, SwGetPoolIdFromName const eFlags) { sal_uInt16 nId = GetPoolIdFromUIName ( rName, eFlags ); if ( nId == USHRT_MAX ) { // rName isn't in our UI name table...check if it's in the programmatic one - nId = GetPoolIdFromProgName ( rName, eFlags ); + nId = GetPoolIdFromProgName ( ProgName(rName), eFlags ); - rFillName = rName; + rFillName = ProgName(rName); if (nId == USHRT_MAX ) { if (eFlags != SwGetPoolIdFromName::TabStyle) @@ -272,42 +281,42 @@ void SwStyleNameMapper::FillProgName( { // It isn't ...make sure the suffix isn't already " (user)"...if it is, // we need to add another one - if (lcl_SuffixIsUser(rFillName)) - rFillName += " (user)"; + if (lcl_SuffixIsUser(rFillName.toString())) + rFillName = ProgName(rFillName.toString() + " (user)"); } } else { // It's in the programmatic name table...append suffix - rFillName += " (user)"; + rFillName = ProgName(rFillName.toString() + " (user)"); } } else { // If we aren't trying to disambiguate, then just do a normal fill - fillNameFromId(nId, rFillName, true); + fillProgNameFromId(nId, rFillName); } if (eFlags == SwGetPoolIdFromName::ChrFmt && rName == SwResId(STR_POOLCHR_STANDARD)) - rFillName = "Standard"; + rFillName = ProgName("Standard"); } // Get the UI name from the programmatic name in rName and put it into rFillName void SwStyleNameMapper::FillUIName( - const OUString& rName, OUString& rFillName, + const ProgName& rName, OUString& rFillName, SwGetPoolIdFromName const eFlags) { - OUString aName = rName; + ProgName aName = rName; if (eFlags == SwGetPoolIdFromName::ChrFmt && rName == "Standard") - aName = SwResId(STR_POOLCHR_STANDARD); + aName = ProgName(SwResId(STR_POOLCHR_STANDARD)); sal_uInt16 nId = GetPoolIdFromProgName ( aName, eFlags ); if ( nId == USHRT_MAX ) { - rFillName = aName; + rFillName = aName.toString(); // TabStyle: unfortunately ODF documents with UIName table styles exist if (eFlags == SwGetPoolIdFromName::TabStyle || // see testTdf129568ui - GetPoolIdFromUIName(aName, eFlags) == USHRT_MAX) + GetPoolIdFromUIName(aName.toString(), eFlags) == USHRT_MAX) { // aName isn't in our Prog name table...check if it has a " (user)" suffix, if so remove it lcl_CheckSuffixAndDelete(rFillName); @@ -424,6 +433,12 @@ void SwStyleNameMapper::fillNameFromId( rFillName = getNameFromId(nId, rFillName, bProgName); } +void SwStyleNameMapper::fillProgNameFromId( + sal_uInt16 const nId, ProgName& rFillName) +{ + rFillName = ProgName(getNameFromId(nId, rFillName.toString(), /*bProgName*/true)); +} + // Get the UI name from the pool ID void SwStyleNameMapper::FillUIName(sal_uInt16 const nId, OUString& rFillName) { @@ -432,22 +447,22 @@ void SwStyleNameMapper::FillUIName(sal_uInt16 const nId, OUString& rFillName) // Get the UI name from the pool ID const OUString& SwStyleNameMapper::GetUIName( - sal_uInt16 const nId, const OUString& rName) + sal_uInt16 const nId, const ProgName& rName) { - return getNameFromId(nId, rName, false); + return getNameFromId(nId, rName.toString(), false); } // Get the programmatic name from the pool ID -void SwStyleNameMapper::FillProgName(sal_uInt16 nId, OUString& rFillName) +void SwStyleNameMapper::FillProgName(sal_uInt16 nId, ProgName& rFillName) { - fillNameFromId(nId, rFillName, true); + fillProgNameFromId(nId, rFillName); } // Get the programmatic name from the pool ID -const OUString& +ProgName SwStyleNameMapper::GetProgName(sal_uInt16 const nId, const OUString& rName) { - return getNameFromId(nId, rName, true); + return ProgName(getNameFromId(nId, rName, true)); } // This gets the PoolId from the UI Name @@ -461,10 +476,10 @@ sal_uInt16 SwStyleNameMapper::GetPoolIdFromUIName( // Get the Pool ID from the programmatic name sal_uInt16 SwStyleNameMapper::GetPoolIdFromProgName( - const OUString& rName, SwGetPoolIdFromName const eFlags) + const ProgName& rName, SwGetPoolIdFromName const eFlags) { const NameToIdHash & rHashMap = getHashTable ( eFlags, true ); - NameToIdHash::const_iterator aIter = rHashMap.find(rName); + NameToIdHash::const_iterator aIter = rHashMap.find(rName.toString()); return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX; } @@ -781,16 +796,16 @@ const std::vector<OUString>& SwStyleNameMapper::GetCellStyleProgNameArray() return s_aCellStyleProgNameArray; } -const OUString & +ProgName SwStyleNameMapper::GetSpecialExtraProgName(const OUString& rExtraUIName) { - return lcl_GetSpecialExtraName( rExtraUIName, true ); + return ProgName(lcl_GetSpecialExtraName( rExtraUIName, true )); } const OUString & -SwStyleNameMapper::GetSpecialExtraUIName(const OUString& rExtraProgName) +SwStyleNameMapper::GetSpecialExtraUIName(const ProgName& rExtraProgName) { - return lcl_GetSpecialExtraName( rExtraProgName, false ); + return lcl_GetSpecialExtraName( rExtraProgName.toString(), false ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index 6d5a9247baae..2434d4863fb1 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -1716,7 +1716,7 @@ void SwRangeRedline::InvalidateRange(Invalidation const eWhy) n == nEndNd ? nEndCnt : pNd->GetText().getLength(), RES_UPDATEATTR_FMT_CHG); - pNd->TriggerNodeUpdate(sw::LegacyModifyHint(&aHt, &aHt)); + pNd->TriggerNodeUpdate(sw::UpdateAttrHint(&aHt, &aHt)); // SwUpdateAttr must be handled first, otherwise indexes are off if (GetType() == RedlineType::Delete) diff --git a/sw/source/core/doc/docruby.cxx b/sw/source/core/doc/docruby.cxx index 6eb4b4ad1422..e6f32a4e24e3 100644 --- a/sw/source/core/doc/docruby.cxx +++ b/sw/source/core/doc/docruby.cxx @@ -368,7 +368,7 @@ bool SwDoc::SelectNextRubyChars( SwPaM& rPam, SwRubyListEntry& rEntry ) nWordEnd = nEnd; } } - pTNd->GoNext( pPos, SwCursorSkipMode::Chars ); + pTNd->GoNext( *pPos, SwCursorSkipMode::Chars ); nStart = pPos->GetContentIndex(); } diff --git a/sw/source/core/doc/docsort.cxx b/sw/source/core/doc/docsort.cxx index 8f5e70d5110d..083df79ae5fc 100644 --- a/sw/source/core/doc/docsort.cxx +++ b/sw/source/core/doc/docsort.cxx @@ -872,10 +872,9 @@ void FlatFndBox::FillFlat(const FndBox_& rBox, bool bLastBox) SfxItemState::SET == pFormat->GetItemState( RES_BOXATR_FORMULA ) || SfxItemState::SET == pFormat->GetItemState( RES_BOXATR_VALUE ) ) { - SfxItemSetFixed< - RES_VERT_ORIENT, RES_VERT_ORIENT, - RES_BOXATR_FORMAT, RES_BOXATR_VALUE> - aSet(m_pDoc->GetAttrPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet< + RES_VERT_ORIENT, RES_VERT_ORIENT, + RES_BOXATR_FORMAT, RES_BOXATR_VALUE>(m_pDoc->GetAttrPool())); aSet.Put( pFormat->GetAttrSet() ); if( m_vItemSets.empty() ) { diff --git a/sw/source/core/doc/fmtcol.cxx b/sw/source/core/doc/fmtcol.cxx index 65c00b9b61ee..c8f64ffffeec 100644 --- a/sw/source/core/doc/fmtcol.cxx +++ b/sw/source/core/doc/fmtcol.cxx @@ -140,7 +140,9 @@ void SwTextFormatColl::SwClientNotify(const SwModify& rModify, const SfxHint& rH return; } else if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != SfxHintId::SwFormatChange - && rHint.GetId() != SfxHintId::SwAttrSetChange && rHint.GetId() != SfxHintId::SwObjectDying) + && rHint.GetId() != SfxHintId::SwAttrSetChange + && rHint.GetId() != SfxHintId::SwObjectDying + && rHint.GetId() != SfxHintId::SwUpdateAttr) return; if(GetDoc()->IsInDtor()) { @@ -337,9 +339,9 @@ void SwTextFormatColl::SwClientNotify(const SwModify& rModify, const SfxHint& rH ++nNoNotify; } - for (size_t nC = 0; nC < SAL_N_ELEMENTS(aFontSizeArr); ++nC) + for (const SvxFontHeightItem *pFSize : aFontSizeArr) { - const SvxFontHeightItem *pFSize = aFontSizeArr[ nC ], *pOldFSize; + const SvxFontHeightItem *pOldFSize; if( pFSize && (SfxItemState::SET == GetItemState( pFSize->Which(), false, reinterpret_cast<const SfxPoolItem**>(&pOldFSize) )) && // Avoid recursion (SetAttr!) @@ -362,7 +364,9 @@ void SwTextFormatColl::SwClientNotify(const SwModify& rModify, const SfxHint& rH } // if the parent changed, we can't know how many properties are involved: always notify a change - if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwObjectDying) + if (rHint.GetId() == SfxHintId::SwLegacyModify + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { if (bNewParent || !nNoNotify) SwFormatColl::SwClientNotify(rModify, rHint); diff --git a/sw/source/core/doc/lineinfo.cxx b/sw/source/core/doc/lineinfo.cxx index 70c2699ffd45..0330e4007da9 100644 --- a/sw/source/core/doc/lineinfo.cxx +++ b/sw/source/core/doc/lineinfo.cxx @@ -116,7 +116,8 @@ void SwLineNumberInfo::SwClientNotify(const SwModify&, const SfxHint& rHint) { if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != SfxHintId::SwFormatChange - && rHint.GetId() != SfxHintId::SwAttrSetChange) + && rHint.GetId() != SfxHintId::SwAttrSetChange + && rHint.GetId() != SfxHintId::SwUpdateAttr) return; if (rHint.GetId() == SfxHintId::SwObjectDying) { diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 39b006670c7f..6fee44775281 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -826,6 +826,14 @@ void SwNoTextFrame::SwClientNotify(const SwModify& rModify, const SfxHint& rHint InvalidatePrt(); SetCompletePaint(); } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + SwContentFrame::SwClientNotify(rModify, rHint); + if (GetNode()->GetNodeType() == SwNodeType::Grf) + ClearCache(); + InvalidatePrt(); + SetCompletePaint(); + } else if (rHint.GetId() == SfxHintId::SwLegacyModify) { auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint); @@ -833,19 +841,8 @@ void SwNoTextFrame::SwClientNotify(const SwModify& rModify, const SfxHint& rHint SwContentFrame::SwClientNotify(rModify, rHint); - switch( nWhich ) - { - case RES_UPDATE_ATTR: - if (GetNode()->GetNodeType() != SwNodeType::Grf) { - break; - } - ClearCache(); - break; - - default: - if ( !pLegacy->m_pNew || !isGRFATR(nWhich) ) - return; - } + if ( !pLegacy->m_pNew || !isGRFATR(nWhich) ) + return; InvalidatePrt(); SetCompletePaint(); diff --git a/sw/source/core/doc/rdfhelper.cxx b/sw/source/core/doc/rdfhelper.cxx index c5374b7b24a6..aad999761445 100644 --- a/sw/source/core/doc/rdfhelper.cxx +++ b/sw/source/core/doc/rdfhelper.cxx @@ -27,12 +27,12 @@ using namespace com::sun::star; css::uno::Sequence<css::uno::Reference<css::rdf::XURI>> SwRDFHelper::getGraphNames( - const css::uno::Reference<rdf::XDocumentMetadataAccess>& xDocumentMetadataAccess, + const rtl::Reference<SwXTextDocument>& xModel, const css::uno::Reference<rdf::XURI>& xType) { try { - return xDocumentMetadataAccess->getMetadataGraphsWithType(xType); + return xModel->getMetadataGraphsWithType(xType); } catch (const uno::RuntimeException&) { @@ -103,8 +103,7 @@ void SwRDFHelper::addStatement(const rtl::Reference<SwXTextDocument>& xModel, { const uno::Reference<uno::XComponentContext>& xComponentContext(comphelper::getProcessComponentContext()); uno::Reference<rdf::XURI> xType = rdf::URI::create(xComponentContext, rType); - uno::Reference<rdf::XDocumentMetadataAccess> xDocumentMetadataAccess(xModel); - const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xDocumentMetadataAccess, xType); + const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xModel, xType); uno::Reference<rdf::XURI> xGraphName; if (aGraphNames.hasElements()) xGraphName = aGraphNames[0]; @@ -123,8 +122,7 @@ bool SwRDFHelper::hasMetadataGraph(const rtl::Reference<SwXTextDocument>& xModel { const uno::Reference<uno::XComponentContext>& xComponentContext(comphelper::getProcessComponentContext()); uno::Reference<rdf::XURI> xType = rdf::URI::create(xComponentContext, rType); - uno::Reference<rdf::XDocumentMetadataAccess> xDocumentMetadataAccess(xModel); - return getGraphNames(xDocumentMetadataAccess, xType).hasElements(); + return getGraphNames(xModel, xType).hasElements(); } void SwRDFHelper::removeStatement(const rtl::Reference<SwXTextDocument>& xModel, @@ -134,12 +132,11 @@ void SwRDFHelper::removeStatement(const rtl::Reference<SwXTextDocument>& xModel, { const uno::Reference<uno::XComponentContext>& xComponentContext(comphelper::getProcessComponentContext()); uno::Reference<rdf::XURI> xType = rdf::URI::create(xComponentContext, rType); - uno::Reference<rdf::XDocumentMetadataAccess> xDocumentMetadataAccess(xModel); - const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xDocumentMetadataAccess, xType); + const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xModel, xType); if (!aGraphNames.hasElements()) return; - uno::Reference<rdf::XNamedGraph> xGraph = xDocumentMetadataAccess->getRDFRepository()->getGraph(aGraphNames[0]); + uno::Reference<rdf::XNamedGraph> xGraph = xModel->getRDFRepository()->getGraph(aGraphNames[0]); uno::Reference<rdf::XURI> xKey = rdf::URI::create(xComponentContext, rKey); uno::Reference<rdf::XLiteral> xValue = rdf::Literal::create(xComponentContext, rValue); xGraph->removeStatements(xSubject, xKey, xValue); @@ -195,13 +192,12 @@ void SwRDFHelper::removeTextNodeStatement(const OUString& rType, SwTextNode& rTe if (!pShell) return; rtl::Reference<SwXTextDocument> xModel(pShell->GetBaseModel()); - uno::Reference<rdf::XDocumentMetadataAccess> xDocumentMetadataAccess(xModel); - const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xDocumentMetadataAccess, xType); + const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xModel, xType); if (!aGraphNames.hasElements()) return; const uno::Reference<rdf::XURI>& xGraphName = aGraphNames[0]; - uno::Reference<rdf::XNamedGraph> xGraph = xDocumentMetadataAccess->getRDFRepository()->getGraph(xGraphName); + uno::Reference<rdf::XNamedGraph> xGraph = xModel->getRDFRepository()->getGraph(xGraphName); uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode, nullptr)); uno::Reference<rdf::XURI> xKey = rdf::URI::create(xComponentContext, rKey); uno::Reference<rdf::XLiteral> xValue = rdf::Literal::create(xComponentContext, rValue); @@ -216,8 +212,7 @@ void SwRDFHelper::updateTextNodeStatement(const OUString& rType, const OUString& if (!pShell) return; rtl::Reference<SwXTextDocument> xModel(pShell->GetBaseModel()); - uno::Reference<rdf::XDocumentMetadataAccess> xDocumentMetadataAccess(xModel); - const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xDocumentMetadataAccess, xType); + const uno::Sequence< uno::Reference<rdf::XURI> > aGraphNames = getGraphNames(xModel, xType); uno::Reference<rdf::XURI> xGraphName; if (aGraphNames.hasElements()) { @@ -226,10 +221,10 @@ void SwRDFHelper::updateTextNodeStatement(const OUString& rType, const OUString& else { uno::Sequence< uno::Reference<rdf::XURI> > xTypes = { xType }; - xGraphName = xDocumentMetadataAccess->addMetadataFile(rPath, xTypes); + xGraphName = xModel->addMetadataFile(rPath, xTypes); } - uno::Reference<rdf::XNamedGraph> xGraph = xDocumentMetadataAccess->getRDFRepository()->getGraph(xGraphName); + uno::Reference<rdf::XNamedGraph> xGraph = xModel->getRDFRepository()->getGraph(xGraphName); uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode, nullptr)); uno::Reference<rdf::XURI> xKey = rdf::URI::create(xComponentContext, rKey); diff --git a/sw/source/core/doc/swstylemanager.cxx b/sw/source/core/doc/swstylemanager.cxx index 0deaeec3e78d..cdca3dc34147 100644 --- a/sw/source/core/doc/swstylemanager.cxx +++ b/sw/source/core/doc/swstylemanager.cxx @@ -23,6 +23,7 @@ #include <swatrset.hxx> #include <unordered_map> #include <osl/diagnose.h> +#include <names.hxx> typedef std::unordered_map< OUString, std::shared_ptr<SfxItemSet> > SwStyleNameCache; @@ -67,7 +68,7 @@ public: const OUString* pParentName = nullptr ) override; virtual std::shared_ptr<SwAttrSet> getAutomaticStyle( const SwAttrSet& rSet, IStyleAccess::SwAutoStyleFamily eFamily, - const OUString* pParentName = nullptr ) override; + const ProgName* pParentName = nullptr ) override; virtual std::shared_ptr<SfxItemSet> getByName( const OUString& rName, IStyleAccess::SwAutoStyleFamily eFamily ) override; virtual void getAllStyles( std::vector<std::shared_ptr<SfxItemSet>> &rStyles, @@ -102,11 +103,11 @@ std::shared_ptr<SfxItemSet> SwStyleManager::getAutomaticStyle( const SfxItemSet& std::shared_ptr<SwAttrSet> SwStyleManager::getAutomaticStyle( const SwAttrSet& rSet, IStyleAccess::SwAutoStyleFamily eFamily, - const OUString* pParentName ) + const ProgName* pParentName ) { StylePool& rAutoPool = eFamily == IStyleAccess::AUTO_STYLE_CHAR ? m_aAutoCharPool : m_aAutoParaPool; - std::shared_ptr<SfxItemSet> pItemSet = rAutoPool.insertItemSet( rSet, pParentName ); + std::shared_ptr<SfxItemSet> pItemSet = rAutoPool.insertItemSet( rSet, pParentName ? &pParentName->toString() : nullptr ); std::shared_ptr<SwAttrSet> pAttrSet = std::dynamic_pointer_cast<SwAttrSet>(pItemSet); assert(bool(pItemSet) == bool(pAttrSet) && "types do not match"); return pAttrSet; diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index b73e195a6bbc..3e0e68d25940 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -63,6 +63,7 @@ #include <svx/rotmodit.hxx> #include <legacyitem.hxx> #include <unostyle.hxx> +#include <names.hxx> #include <memory> #include <utility> @@ -774,7 +775,7 @@ bool SwTableAutoFormat::Load( SvStream& rStream, const SwAfVersions& rVersions ) // start from 3d because default is added via constructor if( m_nStrResId < RES_POOLTABLESTYLE_END - RES_POOLTABLESTYLE_3D ) { - m_aName = SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_3D + m_nStrResId, m_aName); + m_aName = SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_3D + m_nStrResId, ProgName(m_aName)); } else m_nStrResId = USHRT_MAX; @@ -1027,7 +1028,7 @@ SwTableAutoFormatTable::SwTableAutoFormatTable() : m_pImpl(new Impl) { std::unique_ptr<SwTableAutoFormat> pNew(new SwTableAutoFormat( - SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_DEFAULT, OUString()))); + SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_DEFAULT, ProgName()))); sal_uInt8 i; diff --git a/sw/source/core/doc/visiturl.cxx b/sw/source/core/doc/visiturl.cxx index 1cbb1e2710bb..62aaad0afc76 100644 --- a/sw/source/core/doc/visiturl.cxx +++ b/sw/source/core/doc/visiturl.cxx @@ -78,7 +78,7 @@ void SwURLStateChanged::Notify( SfxBroadcaster& , const SfxHint& rHint ) *pAttr->End(), RES_UPDATEATTR_FMT_CHG); - const_cast<SwTextNode*>(pTextNd)->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + const_cast<SwTextNode*>(pTextNd)->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } return true; }); diff --git a/sw/source/core/docnode/ndnotxt.cxx b/sw/source/core/docnode/ndnotxt.cxx index 0fdb56751023..1ca38f198b0c 100644 --- a/sw/source/core/docnode/ndnotxt.cxx +++ b/sw/source/core/docnode/ndnotxt.cxx @@ -33,6 +33,7 @@ #include <SwStyleNameMapper.hxx> #include <frmfmt.hxx> +#include <names.hxx> SwNoTextNode::SwNoTextNode( SwNode& rWhere, const SwNodeType nNdType, @@ -61,9 +62,9 @@ void SwNoTextNode::NewAttrSet( SwAttrPool& rPool ) // put names of parent style and conditional style: const SwFormatColl* pFormatColl = GetFormatColl(); - OUString sVal; + ProgName sVal; SwStyleNameMapper::FillProgName( pFormatColl->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); - SfxStringItem aFormatColl( RES_FRMATR_STYLE_NAME, sVal ); + SfxStringItem aFormatColl( RES_FRMATR_STYLE_NAME, sVal.toString() ); aNewAttrSet.Put( aFormatColl ); aNewAttrSet.SetParent( &GetFormatColl()->GetAttrSet() ); diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index feb300507db2..f26438d4ebd8 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -484,7 +484,7 @@ const SwTable* SwDoc::InsertTable( const SwInsertTableOptions& rInsTableOpts, const sal_uInt16 nBoxArrLen = pTAFormat ? 16 : 4; aBoxFormatArr.resize( nBoxArrLen, nullptr ); } - SfxItemSetFixed<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1> aCharSet( GetAttrPool() ); + SfxItemSet aCharSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1>(GetAttrPool())); SwNodeIndex aNdIdx( *pTableNd, 1 ); // Set to StartNode of first Box SwTableLines& rLines = rNdTable.GetTabLines(); @@ -772,7 +772,7 @@ const SwTable* SwDoc::TextToTable( const SwInsertTableOptions& rInsTableOpts, aBoxFormatArr2 = std::vector<SwTableBoxFormat*>( nBoxArrLen, nullptr ); } - SfxItemSetFixed<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1> aCharSet( GetAttrPool() ); + SfxItemSet aCharSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1>(GetAttrPool())); SwHistory* pHistory = pUndo ? &pUndo->GetHistory() : nullptr; @@ -3131,11 +3131,10 @@ void sw_BoxSetSplitBoxFormats( SwTableBox* pBox, SwCollectTableLineBoxes* pSplPa } else { - SfxItemSetFixed<RES_LR_SPACE, RES_UL_SPACE, - RES_PROTECT, RES_PROTECT, - RES_VERT_ORIENT, RES_VERT_ORIENT, - RES_BACKGROUND, RES_SHADOW> - aTmpSet( pFormat->GetDoc()->GetAttrPool() ); + SfxItemSet aTmpSet(SfxItemSet::makeFixedSfxItemSet< + RES_LR_SPACE, RES_UL_SPACE, RES_PROTECT, RES_PROTECT, + RES_VERT_ORIENT, RES_VERT_ORIENT, RES_BACKGROUND, + RES_SHADOW>(pFormat->GetDoc()->GetAttrPool())); aTmpSet.Put( pFormat->GetAttrSet() ); if( aTmpSet.Count() ) pBox->ClaimFrameFormat()->SetFormatAttr( aTmpSet ); @@ -3738,7 +3737,7 @@ static bool lcl_SetAFormatBox(FndBox_ & rBox, SetAFormatTabPara *pSetPara, bool pSetBox->SetDirectFormatting(false); SwDoc* pDoc = pSetBox->GetFrameFormat()->GetDoc(); - SfxItemSetFixed<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1> aCharSet(pDoc->GetAttrPool()); + SfxItemSet aCharSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_BEGIN, RES_PARATR_LIST_END-1>(pDoc->GetAttrPool())); SfxItemSet aBoxSet(pDoc->GetAttrPool(), aTableBoxSetRange); sal_uInt8 nPos = pSetPara->nAFormatLine * 4 + pSetPara->nAFormatBox; const bool bSingleRowTable = pSetPara->bSingleRowTable; @@ -4117,7 +4116,7 @@ void SwDoc::ChkBoxNumFormat( SwTableBox& rBox, bool bCallUpdate ) } SwTableBoxFormat* pBoxFormat = rBox.GetFrameFormat(); - SfxItemSetFixed<RES_BOXATR_FORMAT, RES_BOXATR_VALUE> aBoxSet( GetAttrPool() ); + SfxItemSet aBoxSet(SfxItemSet::makeFixedSfxItemSet<RES_BOXATR_FORMAT, RES_BOXATR_VALUE>(GetAttrPool())); bool bLockModify = true; bool bSetNumberFormat = IsInsTableFormatNum(); @@ -4265,8 +4264,7 @@ void SwDoc::ClearLineNumAttrs( SwPosition const & rPos ) && pTextNode->GetText().isEmpty())) return; - SfxItemSetFixed<RES_PARATR_BEGIN, RES_PARATR_END - 1> - rSet( pTextNode->GetDoc().GetAttrPool() ); + SfxItemSet rSet(SfxItemSet::makeFixedSfxItemSet<RES_PARATR_BEGIN, RES_PARATR_END - 1>(pTextNode->GetDoc().GetAttrPool())); pTextNode->SwContentNode::GetAttr( rSet ); const SfxStringItem* pFormatItem = rSet.GetItemIfSet( RES_PARATR_NUMRULE, false ); if ( !pFormatItem ) diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx index fc2cc4fc18a7..f224cfd2c6b3 100644 --- a/sw/source/core/docnode/node.cxx +++ b/sw/source/core/docnode/node.cxx @@ -73,6 +73,7 @@ #ifdef DBG_UTIL #include <sal/backtrace.hxx> #endif +#include <names.hxx> using namespace ::com::sun::star::i18n; @@ -130,15 +131,19 @@ static void SetParent( std::shared_ptr<const SwAttrSet>& rpAttrSet, if ( pParentFormat ) { - OUString sVal; + ProgName sVal; SwStyleNameMapper::FillProgName( pParentFormat->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); - const SfxStringItem aAnyFormatColl( RES_FRMATR_STYLE_NAME, sVal ); + const SfxStringItem aAnyFormatColl( RES_FRMATR_STYLE_NAME, sVal.toString() ); aNewSet.Put( aAnyFormatColl ); if ( pConditionalFormat != pParentFormat ) - SwStyleNameMapper::FillProgName( pConditionalFormat->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); + { + ProgName sTmp; + SwStyleNameMapper::FillProgName( pConditionalFormat->GetName(), sTmp, SwGetPoolIdFromName::TxtColl ); + sVal = std::move(sTmp); + } - const SfxStringItem aFormatColl( RES_FRMATR_CONDITIONAL_STYLE_NAME, sVal ); + const SfxStringItem aFormatColl( RES_FRMATR_CONDITIONAL_STYLE_NAME, sVal.toString() ); aNewSet.Put( aFormatColl ); } @@ -1105,7 +1110,7 @@ void SwContentNode::UpdateAttr(const SwUpdateAttr& rUpdate) && IsTextNode() && RES_UPDATEATTR_ATTRSET_CHG == rUpdate.getWhichAttr()) static_cast<SwTextNode*>(this)->SetCalcHiddenCharFlags(); - CallSwClientNotify(sw::LegacyModifyHint(&rUpdate, &rUpdate)); + CallSwClientNotify(sw::UpdateAttrHint(&rUpdate, &rUpdate)); } void SwContentNode::SwClientNotify( const SwModify&, const SfxHint& rHint) @@ -1161,30 +1166,28 @@ void SwContentNode::SwClientNotify( const SwModify&, const SfxHint& rHint) auto pLegacyHint = static_cast<const sw::LegacyModifyHint*>(&rHint); const sal_uInt16 nWhich = pLegacyHint->GetWhich(); InvalidateInSwCache(nWhich); + CallSwClientNotify(rHint); + } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + auto pUpdateAttrHint = static_cast<const sw::UpdateAttrHint*>(&rHint); - switch(nWhich) - { - case RES_UPDATE_ATTR: - // RES_UPDATE_ATTR _should_ always contain a SwUpdateAttr hint in old and new. - // However, faking one with just a basic SfxPoolItem setting a WhichId has been observed. - // This makes the crude "WhichId" type divert from the true type, which is bad. - // Thus we are asserting here, but falling back to an proper - // hint instead. so that we at least will not spread such poison further. + // RES_UPDATE_ATTR _should_ always contain a SwUpdateAttr hint in old and new. + // However, faking one with just a basic SfxPoolItem setting a WhichId has been observed. + // This makes the crude "WhichId" type divert from the true type, which is bad. + // Thus we are asserting here, but falling back to an proper + // hint instead. so that we at least will not spread such poison further. #ifdef DBG_UTIL - if (!SfxPoolItem::areSame(pLegacyHint->m_pNew, pLegacyHint->m_pOld)) - { - auto pBT = sal::backtrace_get(20); - SAL_WARN("sw.core", "UpdateAttr not matching! " << sal::backtrace_to_string(pBT.get())); - } -#endif - assert(SfxPoolItem::areSame(pLegacyHint->m_pNew, pLegacyHint->m_pOld)); - assert(dynamic_cast<const SwUpdateAttr*>(pLegacyHint->m_pNew)); - const SwUpdateAttr aFallbackHint(0,0,0); - const SwUpdateAttr& rUpdateAttr = pLegacyHint->m_pNew ? *static_cast<const SwUpdateAttr*>(pLegacyHint->m_pNew) : aFallbackHint; - UpdateAttr(rUpdateAttr); - return; + if (pUpdateAttrHint->m_pNew != pUpdateAttrHint->m_pOld) + { + auto pBT = sal::backtrace_get(20); + SAL_WARN("sw.core", "UpdateAttr not matching! " << sal::backtrace_to_string(pBT.get())); } - CallSwClientNotify(rHint); +#endif + assert(pUpdateAttrHint->m_pNew == pUpdateAttrHint->m_pOld); + const SwUpdateAttr aFallbackHint(0,0,0); + const SwUpdateAttr& rUpdateAttr = pUpdateAttrHint->m_pNew ? *pUpdateAttrHint->m_pNew : aFallbackHint; + UpdateAttr(rUpdateAttr); } else if (rHint.GetId() == SfxHintId::SwAutoFormatUsedHint) { @@ -1279,26 +1282,26 @@ SwFormatColl *SwContentNode::ChgFormatColl( SwFormatColl *pNewColl ) return pOldColl; } -bool SwContentNode::GoNext(SwPosition* pPos, SwCursorSkipMode nMode ) const +bool SwContentNode::GoNext(SwPosition& rPos, SwCursorSkipMode nMode ) const { - if (!GoNext(&pPos->nContent, nMode)) + if (!GoNext(rPos.nContent, nMode)) return false; - if (pPos->nContent.GetContentNode() != &pPos->GetNode()) - pPos->nNode.Assign(*pPos->nContent.GetContentNode()); + if (rPos.nContent.GetContentNode() != &rPos.GetNode()) + rPos.nNode.Assign(*rPos.nContent.GetContentNode()); return true; } -bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const +bool SwContentNode::GoNext(SwContentIndex& rIdx, SwCursorSkipMode nMode ) const { bool bRet = true; - if( pIdx->GetIndex() < Len() ) + if( rIdx.GetIndex() < Len() ) { if( !IsTextNode() ) - ++(*pIdx); + ++rIdx; else { const SwTextNode& rTNd = *GetTextNode(); - sal_Int32 nPos = pIdx->GetIndex(); + sal_Int32 nPos = rIdx.GetIndex(); assert(g_pBreakIt && g_pBreakIt->GetBreakIter().is()); sal_Int32 nDone = 0; sal_uInt16 nItrMode = ( SwCursorSkipMode::Cells & nMode ) ? @@ -1319,7 +1322,7 @@ bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const } if( 1 == nDone ) - *pIdx = nPos; + rIdx = nPos; else bRet = false; } @@ -1329,17 +1332,17 @@ bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const return bRet; } -bool SwContentNode::GoPrevious(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const +bool SwContentNode::GoPrevious(SwContentIndex& rIdx, SwCursorSkipMode nMode ) const { bool bRet = true; - if( pIdx->GetIndex() > 0 ) + if( rIdx.GetIndex() > 0 ) { if( !IsTextNode() ) - --(*pIdx); + --rIdx; else { const SwTextNode& rTNd = *GetTextNode(); - sal_Int32 nPos = pIdx->GetIndex(); + sal_Int32 nPos = rIdx.GetIndex(); assert(g_pBreakIt && g_pBreakIt->GetBreakIter().is()); sal_Int32 nDone = 0; sal_uInt16 nItrMode = ( SwCursorSkipMode::Cells & nMode ) ? @@ -1360,7 +1363,7 @@ bool SwContentNode::GoPrevious(SwContentIndex * pIdx, SwCursorSkipMode nMode ) c } if( 1 == nDone ) - *pIdx = nPos; + rIdx = nPos; else bRet = false; } diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx index 53ac6e8f0df3..64a713294bbe 100644 --- a/sw/source/core/docnode/section.cxx +++ b/sw/source/core/docnode/section.cxx @@ -40,6 +40,9 @@ #include <IDocumentStylePoolAccess.hxx> #include <IDocumentState.hxx> #include <IDocumentLayoutAccess.hxx> +#include <IDocumentStatistics.hxx> +#include <docstat.hxx> +#include <fmtanchr.hxx> #include <node.hxx> #include <pam.hxx> #include <frmatr.hxx> @@ -95,6 +98,7 @@ namespace { SwSectionData::SwSectionData(SectionType const eType, OUString aName) : m_eType(eType) , m_sSectionName(std::move(aName)) + , m_nPage(0) , m_bHiddenFlag(false) , m_bProtectFlag(false) , m_bEditInReadonlyFlag(false) // edit in readonly sections @@ -112,6 +116,7 @@ SwSectionData::SwSectionData(SwSection const& rSection) , m_sLinkFileName(rSection.GetLinkFileName()) , m_sLinkFilePassword(rSection.GetLinkFilePassword()) , m_Password(rSection.GetPassword()) + , m_nPage(rSection.GetPageNum()) , m_bHiddenFlag(rSection.IsHiddenFlag()) , m_bProtectFlag(rSection.IsProtect()) // edit in readonly sections @@ -130,6 +135,7 @@ SwSectionData::SwSectionData(SwSectionData const& rOther) , m_sLinkFileName(rOther.m_sLinkFileName) , m_sLinkFilePassword(rOther.m_sLinkFilePassword) , m_Password(rOther.m_Password) + , m_nPage(rOther.GetPageNum()) , m_bHiddenFlag(rOther.m_bHiddenFlag) , m_bProtectFlag(rOther.m_bProtectFlag) // edit in readonly sections @@ -150,6 +156,7 @@ SwSectionData & SwSectionData::operator= (SwSectionData const& rOther) m_sLinkFilePassword = rOther.m_sLinkFilePassword; m_bConnectFlag = rOther.m_bConnectFlag; m_Password = rOther.m_Password; + m_nPage = rOther.m_nPage; m_bEditInReadonlyFlag = rOther.m_bEditInReadonlyFlag; m_bProtectFlag = rOther.m_bProtectFlag; @@ -173,7 +180,8 @@ bool SwSectionData::operator==(SwSectionData const& rOther) const && (m_bEditInReadonlyFlag == rOther.m_bEditInReadonlyFlag) && (m_sLinkFileName == rOther.m_sLinkFileName) && (m_sLinkFilePassword == rOther.m_sLinkFilePassword) - && (m_Password == rOther.m_Password); + && (m_Password == rOther.m_Password) + && (m_nPage == rOther.m_nPage); // FIXME: old code ignored m_bCondHiddenFlag m_bHiddenFlag m_bConnectFlag } @@ -799,6 +807,11 @@ void SwSectionFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) SwFrameFormat::SwClientNotify(rMod, rHint); return; } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + SwFrameFormat::SwClientNotify(rMod, rHint); + return; + } else if (rHint.GetId() != SfxHintId::SwLegacyModify) return; auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint); @@ -1250,8 +1263,59 @@ static void lcl_UpdateLinksInSect( const SwBaseLink& rUpdLnk, SwSectionNode& rSe } } else if( pSrcDoc != pDoc ) + { + // before update, remove obsolete page-anchored flys from the target master document + auto pFormats = pDoc->GetSpzFrameFormats(); + for( sal_uInt16 nCnt = pFormats->size(); nCnt; ) + { + SwFrameFormat* pFormat = (*pFormats)[ --nCnt ]; + SwFormatAnchor aAnchor( pFormat->GetAnchor() ); + if ( RndStdIds::FLY_AT_PAGE == aAnchor.GetAnchorId() && + pFormat->GetName().indexOf(sFileName) > -1 ) + { + pDoc->getIDocumentLayoutAccess().DelLayoutFormat( pFormat ); + } + } + + // store page count of the source document to calculate + // the physical page number of the objects anchored at page + const SwDocStat& rDStat = pSrcDoc->getIDocumentStatistics().GetDocStat(); + m_rSectFormat.GetSection()->SetPageNum(rDStat.nPage); + + // tdf#121119 keep objects anchored at page + auto pSrcFormats = pSrcDoc->GetSpzFrameFormats(); + sal_uInt32 nPrevPages = 0; + for( sw::SpzFrameFormat* pCpyFormat: *pSrcFormats) + { + SwFormatAnchor aAnchor( pCpyFormat->GetAnchor() ); + if ( RndStdIds::FLY_AT_PAGE == aAnchor.GetAnchorId() ) + { + // add file name of the source document to the name of the copied object + // Note: used for the recognition of the copied objects anchored at page + pCpyFormat->SetFormatName( pCpyFormat->GetName() + " (" + sFileName + ")" ); + + // sum page counts of the previous sections + if ( nPrevPages == 0 ) + { + const SwSectionFormats& rFormats = pDoc->GetSections(); + for( size_t n = 0; n < rFormats.size() && rFormats[n] != &m_rSectFormat; ++n ) + { + if ( const SwSection * pGlobalDocSection = rFormats[n]->GetGlobalDocSection() ) + nPrevPages += pGlobalDocSection->GetPageNum(); + } + } + + // set corrected physical page number of the object + aAnchor.SetPageNum( nPrevPages + aAnchor.GetPageNum() ); + + // copy object anchored at page to the target document + pDoc->getIDocumentLayoutAccess().CopyLayoutFormat( *pCpyFormat, aAnchor, true, true ); + } + } + oCpyRg.emplace( pSrcDoc->GetNodes().GetEndOfExtras(), SwNodeOffset(2), pSrcDoc->GetNodes().GetEndOfContent() ); + } // #i81653# // Update links of extern linked document or extern linked diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index 6594b0ac8ddc..d37d12502109 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -1420,7 +1420,8 @@ void SwDrawContact::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) // #i51474# GetAnchoredObj(nullptr)->ResetLayoutProcessBools(); } - else if(SfxHintId::SwFormatChange == rHint.GetId()) + else if(SfxHintId::SwFormatChange == rHint.GetId() + || SfxHintId::SwUpdateAttr == rHint.GetId()) { // #i51474# GetAnchoredObj(nullptr)->ResetLayoutProcessBools(); @@ -1525,10 +1526,10 @@ void SwDrawContact::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) { // #i35443# auto pChangeHint = static_cast<const sw::AttrSetChangeHint*>(&rHint); - auto pChgSet = pChangeHint->m_pNew->GetChgSet(); - if(pChgSet->GetItemState(RES_SURROUND, false) == SfxItemState::SET || + auto pChgSet = pChangeHint->m_pNew ? pChangeHint->m_pNew->GetChgSet() : nullptr; + if(pChgSet && (pChgSet->GetItemState(RES_SURROUND, false) == SfxItemState::SET || pChgSet->GetItemState(RES_OPAQUE, false) == SfxItemState::SET || - pChgSet->GetItemState(RES_WRAP_INFLUENCE_ON_OBJPOS, false) == SfxItemState::SET) + pChgSet->GetItemState(RES_WRAP_INFLUENCE_ON_OBJPOS, false) == SfxItemState::SET)) bUpdateSortedObjsList = true; } lcl_NotifyBackgroundOfObj(*this, *GetMaster(), nullptr); @@ -2612,16 +2613,16 @@ void SwDrawVirtObj::Shear(const Point& rRef, Degree100 nAngle, double tn, bool b void SwDrawVirtObj::RecalcSnapRect() { - aSnapRect = mxRefObj->GetSnapRect(); - aSnapRect += GetOffset(); + maSnapRect = mxRefObj->GetSnapRect(); + maSnapRect += GetOffset(); } const tools::Rectangle& SwDrawVirtObj::GetSnapRect() const { - const_cast<SwDrawVirtObj*>(this)->aSnapRect = mxRefObj->GetSnapRect(); - const_cast<SwDrawVirtObj*>(this)->aSnapRect += GetOffset(); + const_cast<SwDrawVirtObj*>(this)->maSnapRect = mxRefObj->GetSnapRect(); + const_cast<SwDrawVirtObj*>(this)->maSnapRect += GetOffset(); - return aSnapRect; + return maSnapRect; } void SwDrawVirtObj::SetSnapRect(const tools::Rectangle& rRect) @@ -2644,10 +2645,10 @@ void SwDrawVirtObj::NbcSetSnapRect(const tools::Rectangle& rRect) const tools::Rectangle& SwDrawVirtObj::GetLogicRect() const { - const_cast<SwDrawVirtObj*>(this)->aSnapRect = mxRefObj->GetLogicRect(); - const_cast<SwDrawVirtObj*>(this)->aSnapRect += GetOffset(); + const_cast<SwDrawVirtObj*>(this)->maSnapRect = mxRefObj->GetLogicRect(); + const_cast<SwDrawVirtObj*>(this)->maSnapRect += GetOffset(); - return aSnapRect; + return maSnapRect; } void SwDrawVirtObj::SetLogicRect(const tools::Rectangle& rRect) diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx index 1dfc2877628f..624a2e663ddb 100644 --- a/sw/source/core/edit/edattr.cxx +++ b/sw/source/core/edit/edattr.cxx @@ -678,7 +678,7 @@ SvtScriptType SwEditShell::GetScriptType() const if( nPos ) { SwContentIndex aIdx( pStart->GetContentNode(), pStart->GetContentIndex() ); - if( pTNd->GoPrevious( &aIdx, SwCursorSkipMode::Chars ) ) + if( pTNd->GoPrevious( aIdx, SwCursorSkipMode::Chars ) ) nPos = aIdx.GetIndex(); } diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx index 165ef5eec354..848d9508a418 100644 --- a/sw/source/core/edit/edfcol.cxx +++ b/sw/source/core/edit/edfcol.cxx @@ -101,6 +101,7 @@ #include <comphelper/diagnose_ex.hxx> #include <IDocumentRedlineAccess.hxx> +#include <names.hxx> constexpr OUString WATERMARK_NAME = u"PowerPlusWaterMarkObject"_ustr; #define WATERMARK_AUTO_SIZE sal_uInt32(1) @@ -133,9 +134,9 @@ std::vector<OUString> lcl_getUsedPageStyles(SwViewShell const * pShell) SwPageFrame* pPage = static_cast<SwPageFrame*>(pFrame); if (const SwPageDesc *pDesc = pPage->FindPageDesc()) { - OUString sStyleName; + ProgName sStyleName; SwStyleNameMapper::FillProgName(pDesc->GetName(), sStyleName, SwGetPoolIdFromName::PageDesc); - aReturn.push_back(sStyleName); + aReturn.push_back(sStyleName.toString()); } } diff --git a/sw/source/core/fields/ddetbl.cxx b/sw/source/core/fields/ddetbl.cxx index ecb1ced273bc..e528bd99366a 100644 --- a/sw/source/core/fields/ddetbl.cxx +++ b/sw/source/core/fields/ddetbl.cxx @@ -88,7 +88,8 @@ void SwDDETable::SwClientNotify(const SwModify& rModify, const SfxHint& rHint) if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwAutoFormatUsedHint || rHint.GetId() == SfxHintId::SwAttrSetChange - || rHint.GetId() == SfxHintId::SwObjectDying) + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwTable::SwClientNotify(rModify, rHint); } diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index 832b5177841b..7ea308f576cd 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -2260,7 +2260,9 @@ std::unique_ptr<SwFieldType> SwRefPageGetFieldType::Copy() const void SwRefPageGetFieldType::SwClientNotify(const SwModify&, const SfxHint& rHint) { - if (rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwObjectDying) + if (rHint.GetId() == SfxHintId::SwFormatChange + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { // forward to text fields, they "expand" the text CallSwClientNotify(rHint); @@ -2289,7 +2291,7 @@ void SwRefPageGetFieldType::SwClientNotify(const SwModify&, const SfxHint& rHint // update all GetReference fields if( (pLegacy && !pLegacy->m_pNew && !pLegacy->m_pOld && HasWriterListeners()) - || (!pChangeHint->m_pNew && !pChangeHint->m_pOld && HasWriterListeners())) + || (pChangeHint && !pChangeHint->m_pNew && !pChangeHint->m_pOld && HasWriterListeners())) { SwRootFrame const* pLayout(nullptr); SwRootFrame const* pLayoutRLHidden(nullptr); diff --git a/sw/source/core/fields/expfld.cxx b/sw/source/core/fields/expfld.cxx index 2f6820154e1e..a3bf0d522e37 100644 --- a/sw/source/core/fields/expfld.cxx +++ b/sw/source/core/fields/expfld.cxx @@ -58,6 +58,7 @@ #include <SwStyleNameMapper.hxx> #include <unofldmid.h> #include <numrule.hxx> +#include <names.hxx> #include <utility> using namespace ::com::sun::star; @@ -1075,7 +1076,7 @@ bool SwSetExpField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId ) { OUString sTmp; rAny >>= sTmp; - SetPar1( SwStyleNameMapper::GetUIName( sTmp, SwGetPoolIdFromName::TxtColl ) ); + SetPar1( SwStyleNameMapper::GetUIName( ProgName(sTmp), SwGetPoolIdFromName::TxtColl ) ); } break; case FIELD_PROP_PAR2: @@ -1169,7 +1170,7 @@ bool SwSetExpField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const rAny <<= static_cast<sal_Int16>(mnSeqNo); break; case FIELD_PROP_PAR1: - rAny <<= SwStyleNameMapper::GetProgName(GetPar1(), SwGetPoolIdFromName::TxtColl ); + rAny <<= SwStyleNameMapper::GetProgName(GetPar1(), SwGetPoolIdFromName::TxtColl ).toString(); break; case FIELD_PROP_PAR2: { diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx index fcbb45cf539d..35480504f17f 100644 --- a/sw/source/core/fields/reffld.cxx +++ b/sw/source/core/fields/reffld.cxx @@ -58,6 +58,7 @@ #include <numrule.hxx> #include <SwNodeNum.hxx> #include <calbck.hxx> +#include <names.hxx> #include <cstddef> #include <memory> @@ -953,7 +954,11 @@ bool SwGetRefField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const case RES_POOLCOLL_LABEL_FRAME: case RES_POOLCOLL_LABEL_DRAWING: case RES_POOLCOLL_LABEL_FIGURE: - SwStyleNameMapper::FillProgName(nPoolId, sTmp) ; + { + ProgName sTmp2(sTmp); + SwStyleNameMapper::FillProgName(nPoolId, sTmp2) ; + sTmp = sTmp2.toString(); + } break; } } @@ -1074,7 +1079,7 @@ void SwGetRefField::ConvertProgrammaticToUIName() if (rDoc.getIDocumentFieldsAccess().GetFieldType(SwFieldIds::SetExp, rPar1, false)) return; - sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromProgName( rPar1, SwGetPoolIdFromName::TxtColl ); + sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromProgName( ProgName(rPar1), SwGetPoolIdFromName::TxtColl ); TranslateId pResId; switch( nPoolId ) { @@ -1178,6 +1183,19 @@ void SwGetRefFieldType::SwClientNotify(const SwModify&, const SfxHint& rHint) CallSwClientNotify(rHint); return; } + if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + auto pChangeHint = static_cast<const sw::UpdateAttrHint*>(&rHint); + if(!pChangeHint->m_pNew && !pChangeHint->m_pOld) + // update to all GetReference fields + // hopefully, this codepath is soon dead code, and + // UpdateGetReferences gets only called directly + UpdateGetReferences(); + else + // forward to text fields, they "expand" the text + CallSwClientNotify(rHint); + return; + } if (rHint.GetId() != SfxHintId::SwLegacyModify) return; auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint); @@ -1488,7 +1506,7 @@ SwTextNode* SwGetRefFieldType::FindAnchorRefStyle(SwDoc* pDoc, const OUString& r // undocumented Word feature: 1 = "Heading 1" etc. OUString const styleName( (rRefMark.getLength() == 1 && '1' <= rRefMark[0] && rRefMark[0] <= '9') - ? SwStyleNameMapper::GetProgName(RES_POOLCOLL_HEADLINE1 + rRefMark[0] - '1', rRefMark) + ? SwStyleNameMapper::GetProgName(RES_POOLCOLL_HEADLINE1 + rRefMark[0] - '1', rRefMark).toString() : rRefMark); switch (elementType) diff --git a/sw/source/core/fields/textapi.cxx b/sw/source/core/fields/textapi.cxx index 187785a0b340..59c6c5ab95fa 100644 --- a/sw/source/core/fields/textapi.cxx +++ b/sw/source/core/fields/textapi.cxx @@ -32,6 +32,7 @@ #include <editeng/unoprnms.hxx> #include <editeng/unoforou.hxx> #include <editeng/unoipset.hxx> +#include <names.hxx> #include <com/sun/star/text/XTextField.hpp> #include <com/sun/star/container/XNameContainer.hpp> @@ -93,12 +94,12 @@ public: using SvxOutlinerForwarder::SvxOutlinerForwarder; OUString GetStyleSheet(sal_Int32 nPara) const override { - return SwStyleNameMapper::GetProgName(SvxOutlinerForwarder::GetStyleSheet(nPara), SwGetPoolIdFromName::TxtColl); + return SwStyleNameMapper::GetProgName(SvxOutlinerForwarder::GetStyleSheet(nPara), SwGetPoolIdFromName::TxtColl).toString(); } void SetStyleSheet(sal_Int32 nPara, const OUString& rStyleName) override { - SvxOutlinerForwarder::SetStyleSheet(nPara, SwStyleNameMapper::GetUIName(rStyleName, SwGetPoolIdFromName::TxtColl)); + SvxOutlinerForwarder::SetStyleSheet(nPara, SwStyleNameMapper::GetUIName(ProgName(rStyleName), SwGetPoolIdFromName::TxtColl)); } }; diff --git a/sw/source/core/fields/usrfld.cxx b/sw/source/core/fields/usrfld.cxx index e9b50826c585..11f19b03150a 100644 --- a/sw/source/core/fields/usrfld.cxx +++ b/sw/source/core/fields/usrfld.cxx @@ -223,6 +223,12 @@ void SwUserFieldType::SwClientNotify(const SwModify&, const SfxHint& rHint) if (!pLegacy->m_pOld && !pLegacy->m_pNew) m_bValidValue = false; } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + auto pUpdateHint = static_cast<const sw::UpdateAttrHint*>(&rHint); + if (!pUpdateHint->m_pOld && !pUpdateHint->m_pNew) + m_bValidValue = false; + } else if (rHint.GetId() == SfxHintId::SwAttrSetChange) { auto pChangeHint = static_cast<const sw::AttrSetChangeHint*>(&rHint); diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx index 4fc5286e0101..1e2d117e759c 100644 --- a/sw/source/core/frmedt/feshview.cxx +++ b/sw/source/core/frmedt/feshview.cxx @@ -2669,7 +2669,7 @@ std::vector<SwFrameFormat const*> SwFEShell::GetFlyFrameFormats( } // show the current selected object -void SwFEShell::MakeSelVisible() +void SwFEShell::MakeSelVisible(ScrollSizeMode eScrollSizeMode) { if ( Imp()->HasDrawView() && Imp()->GetDrawView()->GetMarkedObjectList().GetMarkCount() ) @@ -2678,7 +2678,7 @@ void SwFEShell::MakeSelVisible() MakeVisible( SwRect(Imp()->GetDrawView()->GetAllMarkedRect()) ); } else - SwCursorShell::MakeSelVisible(); + SwCursorShell::MakeSelVisible(eScrollSizeMode); } // how is the selected object protected? diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 2477913e2872..66c5734a3da7 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -252,7 +252,7 @@ bool SwGrfNode::ReRead( if( bReadGrf && bNewGrf ) { const SwUpdateAttr aHint(0,0,0); - CallSwClientNotify(sw::LegacyModifyHint(&aHint, &aHint)); + CallSwClientNotify(sw::UpdateAttrHint(&aHint, &aHint)); } return bReadGrf; diff --git a/sw/source/core/inc/fntcache.hxx b/sw/source/core/inc/fntcache.hxx index 6505de2c7b8e..bea6663e1420 100644 --- a/sw/source/core/inc/fntcache.hxx +++ b/sw/source/core/inc/fntcache.hxx @@ -97,10 +97,8 @@ public: sal_uInt16 GetExternalLeading() const { return m_nExtLeading; } sal_uInt16 GetFontAscent( const SwViewShell *pSh, const OutputDevice& rOut ); - sal_uInt16 GetFontHeight(const SwViewShell* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext = false); - sal_uInt16 GetFontLeading(const SwViewShell* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext = false); + sal_uInt16 GetFontHeight( const SwViewShell *pSh, const OutputDevice& rOut ); + sal_uInt16 GetFontLeading( const SwViewShell *pSh, const OutputDevice& rOut ); sal_uInt16 GetFontHangingBaseline( const SwViewShell *pSh, const OutputDevice& rOut ); void GuessLeading( const SwViewShell& rSh, const FontMetric& rMet ); diff --git a/sw/source/core/inc/pamtyp.hxx b/sw/source/core/inc/pamtyp.hxx index d8c1110dea8c..d269e3f10d46 100644 --- a/sw/source/core/inc/pamtyp.hxx +++ b/sw/source/core/inc/pamtyp.hxx @@ -49,21 +49,18 @@ void GoStartDoc( SwPosition*); void GoEndDoc( SwPosition*); void GoStartSection( SwPosition*); void GoEndSection( SwPosition*); -void GoStartOfSection( SwPosition*); -void GoEndOfSection( SwPosition*); +void GoStartOfSection( SwPosition& ); +void GoEndOfSection( SwPosition& ); const SwTextAttr* GetFrwrdTextHint( const SwpHints&, size_t&, sal_Int32 ); const SwTextAttr* GetBkwrdTextHint( const SwpHints&, size_t&, sal_Int32 ); -bool GoNext(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ); -bool GoPrevious(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ); -SwContentNode* GoNextNds( SwNodeIndex * pIdx, bool ); -SwContentNode* GoPreviousNds( SwNodeIndex * pIdx, bool ); +bool GoNext(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ); +bool GoPrevious(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ); SwContentNode* GoNextPos( SwPosition * pIdx, bool ); SwContentNode* GoPreviousPos( SwPosition * pIdx, bool ); // type definitions of functions -typedef bool (*GoNd)( SwNode*, SwContentIndex*, SwCursorSkipMode ); -typedef SwContentNode* (*GoNds)( SwNodeIndex*, bool ); +typedef bool (*GoNd)( SwNode&, SwContentIndex&, SwCursorSkipMode ); typedef SwContentNode* (*GoPos)( SwPosition*, bool ); typedef void (*GoDoc)( SwPosition* ); typedef void (*GoSection)( SwPosition* ); @@ -71,12 +68,11 @@ typedef bool (SwPosition::*CmpOp)( const SwPosition& ) const; typedef const SwTextAttr* (*GetHint)( const SwpHints&, size_t&, sal_Int32 ); typedef bool (utl::TextSearch::*SearchText)( const OUString&, sal_Int32*, sal_Int32*, css::util::SearchResult* ); -typedef void (*MvSection)( SwPosition * ); +typedef void (*MvSection)( SwPosition& ); struct SwMoveFnCollection { GoNd fnNd; - GoNds fnNds; GoPos fnPos; GoDoc fnDoc; GoSection fnSections; diff --git a/sw/source/core/inc/swfont.hxx b/sw/source/core/inc/swfont.hxx index 87f6492754ac..cea189f86cd3 100644 --- a/sw/source/core/inc/swfont.hxx +++ b/sw/source/core/inc/swfont.hxx @@ -74,8 +74,7 @@ class SwSubFont final : public SvxFont bool ChgFnt( SwViewShell const *pSh, OutputDevice& rOut ); bool IsSymbol( SwViewShell const *pSh ); sal_uInt16 GetAscent( SwViewShell const *pSh, const OutputDevice& rOut ); - sal_uInt16 GetHeight(SwViewShell const* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext = false); + sal_uInt16 GetHeight( SwViewShell const *pSh, const OutputDevice& rOut ); sal_uInt16 GetHangingBaseline( SwViewShell const *pSh, const OutputDevice& rOut ); Size GetTextSize_( SwDrawTextInfo& rInf ); Size GetCapitalSize( SwDrawTextInfo& rInf ); @@ -334,16 +333,10 @@ public: short CheckKerning() { return m_aSub[m_nActual].CheckKerning(); } - sal_uInt16 GetAscent(SwViewShell const* pSh, const OutputDevice& rOut) - { - return m_aSub[m_nActual].GetAscent(pSh, rOut); - } - - sal_uInt16 GetHeight(SwViewShell const* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext = false) - { - return m_aSub[m_nActual].GetHeight(pSh, rOut, bIsCJKGridContext); - } + sal_uInt16 GetAscent( SwViewShell const *pSh, const OutputDevice& rOut ) + { return m_aSub[m_nActual].GetAscent( pSh, rOut ); } + sal_uInt16 GetHeight( SwViewShell const *pSh, const OutputDevice& rOut ) + { return m_aSub[m_nActual].GetHeight( pSh, rOut ); } sal_uInt16 GetHangingBaseline( SwViewShell const *pSh, const OutputDevice& rOut ) { return m_nActual == SwFontScript::CTL ? m_aSub[m_nActual].GetHangingBaseline( pSh, rOut ) : 0; } diff --git a/sw/source/core/inc/unofield.hxx b/sw/source/core/inc/unofield.hxx index 747b41e6decc..dabf724138cf 100644 --- a/sw/source/core/inc/unofield.hxx +++ b/sw/source/core/inc/unofield.hxx @@ -34,6 +34,7 @@ class SwDoc; class SwFormatField; class SwSetExpField; +class ProgName; typedef ::cppu::WeakImplHelper < css::beans::XPropertySet @@ -62,7 +63,7 @@ public: CreateXFieldMaster(SwDoc * pDoc, SwFieldType * pType, SwFieldIds nResId = SwFieldIds::Unknown); - static OUString GetProgrammaticName(const SwFieldType& rType, SwDoc& rDoc); + static ProgName GetProgrammaticName(const SwFieldType& rType, SwDoc& rDoc); static OUString LocalizeFormula(const SwSetExpField& rField, const OUString& rFormula, bool bQuery); SwFieldType* GetFieldType(bool bDontCreate = false) const; diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx index 3248ac8074c4..6b438735c810 100644 --- a/sw/source/core/layout/atrfrm.cxx +++ b/sw/source/core/layout/atrfrm.cxx @@ -100,6 +100,7 @@ #include <wrtsh.hxx> #include <txtfld.hxx> #include <cellatr.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -798,9 +799,9 @@ bool SwFormatPageDesc::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const const SwPageDesc* pDesc = GetPageDesc(); if( pDesc ) { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(pDesc->GetName(), aString, SwGetPoolIdFromName::PageDesc); - rVal <<= aString; + rVal <<= aString.toString(); } else rVal.clear(); @@ -2380,7 +2381,7 @@ bool SwFormatLineNumber::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) SwTextGridItem::SwTextGridItem() : SfxPoolItem( RES_TEXTGRID ) , m_aColor( COL_LIGHTGRAY ), m_nLines( 20 ) - , m_nBaseHeight( 400 ), m_nRubyHeight( 200 ), m_eGridType( GRID_NONE ) + , m_nBaseHeight( 400 ), m_nRubyHeight( 200 ), m_eGridType( SwTextGrid::NONE ) , m_bRubyTextBelow( false ), m_bPrintGrid( true ), m_bDisplayGrid( true ) , m_nBaseWidth(400), m_bSnapToChars( true ), m_bSquaredMode(true) { @@ -2451,13 +2452,13 @@ bool SwTextGridItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const case MID_GRID_TYPE: switch( GetGridType() ) { - case GRID_NONE: + case SwTextGrid::NONE: rVal <<= text::TextGridMode::NONE; break; - case GRID_LINES_ONLY: + case SwTextGrid::LinesOnly: rVal <<= text::TextGridMode::LINES; break; - case GRID_LINES_CHARS: + case SwTextGrid::LinesAndChars: rVal <<= text::TextGridMode::LINES_AND_CHARS; break; default: @@ -2554,13 +2555,13 @@ bool SwTextGridItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) switch( nTmp ) { case text::TextGridMode::NONE: - SetGridType( GRID_NONE ); + SetGridType( SwTextGrid::NONE ); break; case text::TextGridMode::LINES: - SetGridType( GRID_LINES_ONLY ); + SetGridType( SwTextGrid::LinesOnly ); break; case text::TextGridMode::LINES_AND_CHARS: - SetGridType( GRID_LINES_CHARS ); + SetGridType( SwTextGrid::LinesAndChars ); break; default: bRet = false; @@ -2595,7 +2596,7 @@ void SwTextGridItem::SwitchPaperMode(bool bNew) } // use default value when grid is disable - if (m_eGridType == GRID_NONE) + if (m_eGridType == SwTextGrid::NONE) { m_bSquaredMode = bNew; Init(); @@ -2626,7 +2627,7 @@ void SwTextGridItem::Init() m_nLines = 20; m_nBaseHeight = 400; m_nRubyHeight = 200; - m_eGridType = GRID_NONE; + m_eGridType = SwTextGrid::NONE; m_bRubyTextBelow = false; m_bPrintGrid = true; m_bDisplayGrid = true; @@ -2638,7 +2639,7 @@ void SwTextGridItem::Init() m_nLines = 44; m_nBaseHeight = 312; m_nRubyHeight = 0; - m_eGridType = GRID_NONE; + m_eGridType = SwTextGrid::NONE; m_bRubyTextBelow = false; m_bPrintGrid = true; m_bDisplayGrid = true; @@ -2751,7 +2752,8 @@ void SwFrameFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) SwFormat::SwClientNotify(rMod, rHint); return; } - else if (rHint.GetId() == SfxHintId::SwObjectDying) + else if (rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwFormat::SwClientNotify(rMod, rHint); return; diff --git a/sw/source/core/layout/flyincnt.cxx b/sw/source/core/layout/flyincnt.cxx index 673522376a3e..dcfe0ae9b8e8 100644 --- a/sw/source/core/layout/flyincnt.cxx +++ b/sw/source/core/layout/flyincnt.cxx @@ -139,7 +139,8 @@ void SwFlyInContentFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rH } return; } - if (rHint.GetId() == SfxHintId::SwObjectDying) + if (rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwFlyFrame::SwClientNotify(rMod, rHint); if(GetAnchorFrame()) diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx index 0dcad35ee79a..fedcef628a2c 100644 --- a/sw/source/core/layout/flylay.cxx +++ b/sw/source/core/layout/flylay.cxx @@ -751,7 +751,8 @@ void SwFlyLayFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) SwFlyFrame::SwClientNotify(rMod, rHint); return; } - if (rHint.GetId() == SfxHintId::SwObjectDying) + if (rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwFlyFrame::SwClientNotify(rMod, rHint); return; diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx index cc7fac4b1bba..2d61df056784 100644 --- a/sw/source/core/layout/pagechg.cxx +++ b/sw/source/core/layout/pagechg.cxx @@ -128,7 +128,7 @@ void SwBodyFrame::Format( vcl::RenderContext* /*pRenderContext*/, const SwBorder SwRectFnSet aRectFnSet(this); tools::Long nSize = aRectFnSet.GetWidth(getFrameArea()); tools::Long nBorder = 0; - if( GRID_LINES_CHARS == pGrid->GetGridType() ) + if( SwTextGrid::LinesAndChars == pGrid->GetGridType() ) { //for textgrid refactor SwDoc *pDoc = GetFormat()->GetDoc(); @@ -2740,7 +2740,7 @@ SwTextGridItem const* GetGridItem(SwPageFrame const*const pPage) { SwTextGridItem const& rGridItem( pPage->GetPageDesc()->GetMaster().GetTextGrid()); - if (GRID_NONE != rGridItem.GetGridType()) + if (SwTextGrid::NONE != rGridItem.GetGridType()) { return &rGridItem; } diff --git a/sw/source/core/layout/pagedesc.cxx b/sw/source/core/layout/pagedesc.cxx index 8b2d48f7305f..f2a803467851 100644 --- a/sw/source/core/layout/pagedesc.cxx +++ b/sw/source/core/layout/pagedesc.cxx @@ -295,7 +295,8 @@ void SwPageDesc::SwClientNotify(const SwModify& rModify, const SfxHint& rHint) CallSwClientNotify(rHint); RegisterChange(); } - else if (rHint.GetId() == SfxHintId::SwObjectDying) + else if (rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { CallSwClientNotify(rHint); } diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index d8b2a541dbf7..a0b91c84300a 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -23,6 +23,7 @@ #include <sfx2/docfile.hxx> #include <sfx2/printer.hxx> #include <sfx2/progress.hxx> +#include <sfx2/StylePreviewRenderer.hxx> #include <editeng/brushitem.hxx> #include <editeng/prntitem.hxx> #include <editeng/boxitem.hxx> @@ -4538,19 +4539,43 @@ void SwTextFrame::PaintParagraphStylesHighlighting() const if (!pWrtSh) return; + if (!pWrtSh->GetView().IsSpotlightParaStyles()) + return; + vcl::RenderContext* pRenderContext = pWrtSh->GetOut(); if (!pRenderContext) return; - StylesHighlighterColorMap& rParaStylesColorMap - = pWrtSh->GetView().GetStylesHighlighterParaColorMap(); + const SwTextFormatColl* pColl = GetTextNodeFirst()->GetTextColl(); + OUString sStyleName = pColl->GetName(); - if (rParaStylesColorMap.empty()) - return; + Color nStyleColor; + int nStyleNumber(-1); + + bool bSpotlightStyle; + if (comphelper::LibreOfficeKit::isActive()) + { + // For simplicity in kit mode, we render in the document "all styles" + bSpotlightStyle = true; + // Do this so these are stable across views regardless of an individual + // user's selection mode in the style panel. + nStyleNumber = pWrtSh->GetDoc()->GetTextFormatColls()->GetPos(pColl); + nStyleColor = ColorHash(sStyleName); + } + else + { + StylesHighlighterColorMap& rParaStylesColorMap + = pWrtSh->GetView().GetStylesHighlighterParaColorMap(); + bSpotlightStyle = rParaStylesColorMap.contains(sStyleName); + if (bSpotlightStyle) + { + nStyleNumber = rParaStylesColorMap[sStyleName].second; + nStyleColor = rParaStylesColorMap[sStyleName].first; + } + } // draw styles highlighter - OUString sStyleName = GetTextNodeFirst()->GetTextColl()->GetName(); - if (rParaStylesColorMap.contains(sStyleName)) + if (bSpotlightStyle) { SwRect aFrameAreaRect(getFrameArea()); @@ -4578,9 +4603,6 @@ void SwTextFrame::PaintParagraphStylesHighlighting() const pRenderContext->Push(vcl::PushFlags::ALL); - Color nStyleColor = rParaStylesColorMap[sStyleName].first; - int nStyleNumber = rParaStylesColorMap[sStyleName].second; - pRenderContext->SetFillColor(nStyleColor); pRenderContext->SetLineColor(nStyleColor); @@ -5900,7 +5922,7 @@ void SwPageFrame::PaintGrid( OutputDevice const * pOut, SwRect const &rRect ) co return; bool bGrid = pGrid->GetRubyTextBelow(); - bool bCell = GRID_LINES_CHARS == pGrid->GetGridType(); + bool bCell = SwTextGrid::LinesAndChars == pGrid->GetGridType(); tools::Long nGrid = pGrid->GetBaseHeight(); const SwDoc* pDoc = GetFormat()->GetDoc(); tools::Long nGridWidth = GetGridWidth(*pGrid, *pDoc); diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx index 32c11f4522a1..b7b8546859c9 100644 --- a/sw/source/core/layout/ssfrm.cxx +++ b/sw/source/core/layout/ssfrm.cxx @@ -174,7 +174,7 @@ void SwFrame::SetTopBottomMargins( tools::Long nTop, tools::Long nBot ) { SwFrameAreaDefinition::FramePrintAreaWriteAccess aPrt(*this); aPrt.Top( nTop ); - aPrt.Height( getFrameArea().Height() - nTop - nBot ); + aPrt.Height(::std::max<decltype(nTop)>(0, getFrameArea().Height() - nTop - nBot)); } void SwFrame::SetLeftRightMargins( tools::Long nLeft, tools::Long nRight) diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index 54db69c2e281..56f381729bb8 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -6273,7 +6273,9 @@ void SwCellFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) SetDerivedVert(false); CheckDirChange(); } - else if (rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwObjectDying) + else if (rHint.GetId() == SfxHintId::SwFormatChange + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwLayoutFrame::SwClientNotify(rMod, rHint); } diff --git a/sw/source/core/para/paratr.cxx b/sw/source/core/para/paratr.cxx index 52763819a844..e98aaec7c323 100644 --- a/sw/source/core/para/paratr.cxx +++ b/sw/source/core/para/paratr.cxx @@ -28,6 +28,7 @@ #include <osl/diagnose.h> #include <tools/UnitConversion.hxx> #include <o3tl/hash_combine.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -128,11 +129,11 @@ bool SwFormatDrop::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const break; case MID_DROPCAP_CHAR_STYLE_NAME : { - OUString sName; + ProgName sName; if(GetCharFormat()) sName = SwStyleNameMapper::GetProgName( GetCharFormat()->GetName(), SwGetPoolIdFromName::ChrFmt ); - rVal <<= sName; + rVal <<= sName.toString(); } break; } @@ -209,8 +210,8 @@ bool SwNumRuleItem::operator==( const SfxPoolItem& rAttr ) const bool SwNumRuleItem::QueryValue( uno::Any& rVal, sal_uInt8 ) const { - OUString sRet = SwStyleNameMapper::GetProgName(GetValue(), SwGetPoolIdFromName::NumRule ); - rVal <<= sRet; + ProgName sRet = SwStyleNameMapper::GetProgName(GetValue(), SwGetPoolIdFromName::NumRule ); + rVal <<= sRet.toString(); return true; } @@ -218,7 +219,7 @@ bool SwNumRuleItem::PutValue( const uno::Any& rVal, sal_uInt8 ) { OUString uName; rVal >>= uName; - SetValue(SwStyleNameMapper::GetUIName(uName, SwGetPoolIdFromName::NumRule)); + SetValue(SwStyleNameMapper::GetUIName(ProgName(uName), SwGetPoolIdFromName::NumRule)); return true; } diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx index b5e9218ff842..a7e4359d1a43 100644 --- a/sw/source/core/table/swtable.cxx +++ b/sw/source/core/table/swtable.cxx @@ -2754,7 +2754,9 @@ SwTableBox* SwTableBoxFormat::SwTableBoxFormat::GetTableBox() // for detection of modifications (mainly TableBoxAttribute) void SwTableBoxFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) { - if(rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwObjectDying) + if(rHint.GetId() == SfxHintId::SwFormatChange + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { SwFrameFormat::SwClientNotify(rMod, rHint); return; diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx index 4c7e4e43e36b..20ccb7bac875 100644 --- a/sw/source/core/text/EnhancedPDFExportHelper.cxx +++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx @@ -89,6 +89,7 @@ #include <dcontact.hxx> #include <PostItMgr.hxx> #include <AnnotationWin.hxx> +#include <names.hxx> #include <tools/globname.hxx> #include <svx/svdobj.hxx> @@ -232,9 +233,9 @@ bool lcl_IsHeadlineCell( const SwCellFrame& rCellFrame ) SwTextNode const*const pTextNode = static_cast<const SwTextFrame*>(pCnt)->GetTextNodeForParaProps(); const SwFormat* pTextFormat = pTextNode->GetFormatColl(); - OUString sStyleName; + ProgName sStyleName; SwStyleNameMapper::FillProgName( pTextFormat->GetName(), sStyleName, SwGetPoolIdFromName::TxtColl ); - bRet = sStyleName == aTableHeadingName; + bRet = sStyleName.toString() == aTableHeadingName; } // tdf#153935 wild guessing for 1st row based on table autoformat @@ -1445,8 +1446,8 @@ void SwTaggedPDFHelper::BeginBlockStructureElements() const SwFormat* pTextFormat = pTextNd->GetFormatColl(); const SwFormat* pParentTextFormat = pTextFormat ? pTextFormat->DerivedFrom() : nullptr; - OUString sStyleName; - OUString sParentStyleName; + ProgName sStyleName; + ProgName sParentStyleName; if ( pTextFormat) SwStyleNameMapper::FillProgName( pTextFormat->GetName(), sStyleName, SwGetPoolIdFromName::TxtColl ); @@ -1457,7 +1458,7 @@ void SwTaggedPDFHelper::BeginBlockStructureElements() // any of the standard pdf tags, we write a user defined tag // <stylename> with role = P nPDFType = sal_uInt16(vcl::pdf::StructElement::Paragraph); - aPDFType = sStyleName; + aPDFType = sStyleName.toString(); // Title @@ -1488,7 +1489,7 @@ void SwTaggedPDFHelper::BeginBlockStructureElements() else if (sParentStyleName == aCaption) { nPDFType = sal_uInt16(vcl::pdf::StructElement::Caption); - aPDFType = sStyleName + aCaptionString; + aPDFType = sStyleName.toString() + aCaptionString; } // Heading: H @@ -1858,7 +1859,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() SwTextAttr const*const pInetFormatAttr = pos.first->GetTextAttrAt(pos.second, RES_TXTATR_INETFMT); - OUString sStyleName; + ProgName sStyleName; if (!pInetFormatAttr) { std::vector<SwTextAttr *> const charAttrs( @@ -1871,7 +1872,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() } // note: ILSE may be nested, so only end the span if needed to start new one - bool const isContinueSpan(CheckContinueSpan(rInf, sStyleName, pInetFormatAttr)); + bool const isContinueSpan(CheckContinueSpan(rInf, sStyleName.toString(), pInetFormatAttr)); sal_uInt16 nPDFType = USHRT_MAX; OUString aPDFType; @@ -1930,7 +1931,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() { nPDFType = sal_uInt16(vcl::pdf::StructElement::Emphasis); aPDFType = constEmphasisStyleName; - CreateCurrentSpan(rInf, sStyleName); + CreateCurrentSpan(rInf, sStyleName.toString()); } } // Strong @@ -1940,7 +1941,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() { nPDFType = sal_uInt16(vcl::pdf::StructElement::Strong); aPDFType = constStrongEmphasisStyleName; - CreateCurrentSpan(rInf, sStyleName); + CreateCurrentSpan(rInf, sStyleName.toString()); } } // Check for Quote/Code character style: @@ -1950,7 +1951,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() { nPDFType = sal_uInt16(vcl::pdf::StructElement::Quote); aPDFType = aQuoteString; - CreateCurrentSpan(rInf, sStyleName); + CreateCurrentSpan(rInf, sStyleName.toString()); } } else if (sStyleName == aSourceText) @@ -1959,7 +1960,7 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() { nPDFType = sal_uInt16(vcl::pdf::StructElement::Code); aPDFType = aCodeString; - CreateCurrentSpan(rInf, sStyleName); + CreateCurrentSpan(rInf, sStyleName.toString()); } } else if (!isContinueSpan) @@ -1979,10 +1980,10 @@ void SwTaggedPDFHelper::BeginInlineStructureElements() { nPDFType = sal_uInt16(vcl::pdf::StructElement::Span); if (!sStyleName.isEmpty()) - aPDFType = sStyleName; + aPDFType = sStyleName.toString(); else aPDFType = aSpanString; - CreateCurrentSpan(rInf, sStyleName); + CreateCurrentSpan(rInf, sStyleName.toString()); } } } diff --git a/sw/source/core/text/guess.cxx b/sw/source/core/text/guess.cxx index 81ca87b15113..680411147a35 100644 --- a/sw/source/core/text/guess.cxx +++ b/sw/source/core/text/guess.cxx @@ -215,7 +215,7 @@ bool SwTextGuess::Guess( const SwTextPortion& rPor, SwTextFormatInfo &rInf, { SwTextGridItem const*const pGrid( GetGridItem(rInf.GetTextFrame()->FindPageFrame())); - bAddItalic = !pGrid || GRID_LINES_CHARS != pGrid->GetGridType(); + bAddItalic = !pGrid || SwTextGrid::LinesAndChars != pGrid->GetGridType(); } // do not add extra italic value for an isolated blank: diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 08a653311071..37fdee6a346f 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -27,6 +27,7 @@ #include <svl/ctloptions.hxx> #include <sfx2/infobar.hxx> #include <sfx2/printer.hxx> +#include <sfx2/StylePreviewRenderer.hxx> #include <sal/log.hxx> #include <editeng/hyphenzoneitem.hxx> #include <editeng/hngpnctitem.hxx> @@ -81,6 +82,7 @@ #include <unoprnms.hxx> #include <editeng/unoprnms.hxx> #include <unomap.hxx> +#include <names.hxx> #include <com/sun/star/awt/FontSlant.hpp> using namespace ::com::sun::star; @@ -1328,9 +1330,7 @@ void SwTextPaintInfo::DrawCSDFHighlighting(const SwLinePortion &rPor) const if (!pView) return; - StylesHighlighterColorMap& rCharStylesColorMap = pView->GetStylesHighlighterCharColorMap(); - - if (rCharStylesColorMap.empty() && !pView->IsHighlightCharDF()) + if (!pView->IsSpotlightCharStyles() && !pView->IsHighlightCharDF()) return; SwRect aRect; @@ -1357,18 +1357,29 @@ void SwTextPaintInfo::DrawCSDFHighlighting(const SwLinePortion &rPor) const // check for CS formatting, if not CS formatted check for direct character formatting if (!sCurrentCharStyle.isEmpty()) { - if (!rCharStylesColorMap.empty()) + OUString sCharStyleDisplayName = SwStyleNameMapper::GetUIName(ProgName(sCurrentCharStyle), + SwGetPoolIdFromName::ChrFmt); + if (comphelper::LibreOfficeKit::isActive()) + { + // For simplicity in kit mode, we render in the document "all styles" that exist + if (const SwCharFormat* pCharFormat = pFrame->GetDoc().FindCharFormatByName(sCharStyleDisplayName)) + { + // Do this so these are stable across views regardless of an individual + // user's selection mode in the style panel. + sCSNumberOrDF = OUString::number(pFrame->GetDoc().GetCharFormats()->GetPos(pCharFormat)); + aFillColor = ColorHash(sCharStyleDisplayName); + } + } + else { - OUString sCharStyleDisplayName; - sCharStyleDisplayName = SwStyleNameMapper::GetUIName(sCurrentCharStyle, - SwGetPoolIdFromName::ChrFmt); if (!sCharStyleDisplayName.isEmpty()) { + StylesHighlighterColorMap& rCharStylesColorMap = pView->GetStylesHighlighterCharColorMap(); auto it = rCharStylesColorMap.find(sCharStyleDisplayName); if (it != rCharStylesColorMap.end()) { - aFillColor = it->second.first; sCSNumberOrDF = OUString::number(it->second.second); + aFillColor = it->second.first; } } } diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index 4a3bf7a1c514..e0f8dc10297c 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -765,7 +765,7 @@ inline sal_uInt16 SwTextSizeInfo::GetAscent() const inline sal_uInt16 SwTextSizeInfo::GetTextHeight() const { assert(GetOut()); - return const_cast<SwFont*>(GetFont())->GetHeight(m_pVsh, *GetOut(), SnapToGrid()); + return const_cast<SwFont*>(GetFont())->GetHeight( m_pVsh, *GetOut() ); } inline sal_uInt16 SwTextSizeInfo::GetHangingBaseline() const diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx index 9c9604873471..8427ceec8757 100644 --- a/sw/source/core/text/itrform2.cxx +++ b/sw/source/core/text/itrform2.cxx @@ -442,7 +442,7 @@ void SwTextFormatter::BuildPortions( SwTextFormatInfo &rInf ) // Asian grid stuff SwTextGridItem const*const pGrid(GetGridItem(m_pFrame->FindPageFrame())); const bool bHasGrid = pGrid && rInf.SnapToGrid() && - GRID_LINES_CHARS == pGrid->GetGridType(); + SwTextGrid::LinesAndChars == pGrid->GetGridType(); const SwDoc & rDoc = rInf.GetTextFrame()->GetDoc(); diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx index 98efbd700c3e..a32f9acbae5d 100644 --- a/sw/source/core/text/porfld.cxx +++ b/sw/source/core/text/porfld.cxx @@ -24,8 +24,9 @@ #include <utility> #include <comphelper/string.hxx> -#include <vcl/graph.hxx> #include <editeng/brushitem.hxx> +#include <o3tl/deleter.hxx> +#include <vcl/graph.hxx> #include <vcl/metric.hxx> #include <vcl/outdev.hxx> #include <vcl/pdfextoutdevdata.hxx> @@ -844,7 +845,7 @@ SwGrfNumPortion::SwGrfNumPortion( m_bNoPaint = false; } -SwGrfNumPortion::~SwGrfNumPortion() +void SwGrfNumPortion::ImplDestroy() { if ( IsAnimated() ) { @@ -855,6 +856,11 @@ SwGrfNumPortion::~SwGrfNumPortion() m_pBrush.reset(); } +SwGrfNumPortion::~SwGrfNumPortion() +{ + suppress_fun_call_w_exception(ImplDestroy()); +} + void SwGrfNumPortion::StopAnimation( const OutputDevice* pOut ) { if ( IsAnimated() ) diff --git a/sw/source/core/text/porfld.hxx b/sw/source/core/text/porfld.hxx index 02bd073eccf8..697f54dce330 100644 --- a/sw/source/core/text/porfld.hxx +++ b/sw/source/core/text/porfld.hxx @@ -34,6 +34,7 @@ class SwFormatVertOrient; class SwFieldPortion : public SwExpandPortion { friend class SwTextFormatter; + protected: OUString m_aExpand; // The expanded field std::unique_ptr<SwFont> m_pFont; // For multi-line fields @@ -197,6 +198,8 @@ public: SwTwips GetRelPos() const { return m_nYPos; } SwTwips GetGrfHeight() const { return m_nGrfHeight; } sal_Int16 GetOrient() const { return m_eOrient; } +private: + void ImplDestroy(); }; /** diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx index b414fae04c6b..40b45ae691f5 100644 --- a/sw/source/core/text/porlay.cxx +++ b/sw/source/core/text/porlay.cxx @@ -446,7 +446,8 @@ void SwLineLayout::CalcLine( SwTextFormatter &rLine, SwTextFormatInfo &rInf ) nPosHeight += nTmp - nPosAscent; nPosAscent = nTmp; } - nTmp = rInf.GetTextHeight(); + nTmp = rInf.GetFont()->GetHeight( rInf.GetVsh(), + *rInf.GetOut() ); if( nTmp > nPosHeight ) nPosHeight = nTmp; } @@ -551,7 +552,7 @@ void SwLineLayout::CalcLine( SwTextFormatter &rLine, SwTextFormatInfo &rInf ) if( bOnlyPostIts && !( bHasBlankPortion && bHasOnlyBlankPortions ) ) { - Height(rInf.GetTextHeight()); + Height( rInf.GetFont()->GetHeight( rInf.GetVsh(), *rInf.GetOut() ) ); mnAscent = rInf.GetFont()->GetAscent( rInf.GetVsh(), *rInf.GetOut() ); } } diff --git a/sw/source/core/text/pormulti.cxx b/sw/source/core/text/pormulti.cxx index cdd52ee951fa..50e9a13ebd4a 100644 --- a/sw/source/core/text/pormulti.cxx +++ b/sw/source/core/text/pormulti.cxx @@ -2143,7 +2143,7 @@ bool SwTextFormatter::BuildMultiPortion( SwTextFormatInfo &rInf, bool bRet = false; SwTextGridItem const*const pGrid(GetGridItem(m_pFrame->FindPageFrame())); - const bool bHasGrid = pGrid && GRID_LINES_CHARS == pGrid->GetGridType(); + const bool bHasGrid = pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType(); bool bRubyTop = false; diff --git a/sw/source/core/text/porrst.cxx b/sw/source/core/text/porrst.cxx index 0a8bab3d66ea..9331add1e58c 100644 --- a/sw/source/core/text/porrst.cxx +++ b/sw/source/core/text/porrst.cxx @@ -877,11 +877,6 @@ void SwBookmarkPortion::Paint( const SwTextPaintInfo &rInf ) const nTypePos = mnHalfCharWidth * 2; // start label after the opening bracket } - // vertical rdf:type label position for the opening and closing brackets - sal_Int32 fPos = std::get<0>(it) == SwScriptInfo::MarkKind::Start - ? -0.6 * nHeight - : 0.3 * nHeight; - // MarkKind::Point: drawn I-beam (e.g. U+2336) as overlapping ][ if ( std::get<0>(it) == SwScriptInfo::MarkKind::Point ) { @@ -908,34 +903,44 @@ void SwBookmarkPortion::Paint( const SwTextPaintInfo &rInf ) const auto origSize = aTmpSz; // calculate label size - aTmpSz.setHeight( ( 100 * aTmpSz.Height() ) / 250 ); - aTmpSz.setWidth( ( 100 * aTmpSz.Width() ) / 250 ); + aTmpSz.setHeight( std::min( tools::Long(60), 100 * aTmpSz.Height() / 250 ) ); + aTmpSz.setWidth( std::min( tools::Long(60), 100 * aTmpSz.Width() / 250 ) ); + + // vertical rdf:type label position for the opening and closing brackets + sal_Int32 fPos = std::get<0>(it) == SwScriptInfo::MarkKind::Start + ? -0.65 * nHeight + : aTmpSz.Height(); if ( aTmpSz.Width() || aTmpSz.Height() ) { aTmpFont.SetSize( aTmpSz, SwFontScript::Latin ); + auto aTextSize = rInf.GetTextSize(sType); aNewPos.AdjustY(fPos); if ( nDirection == -1 ) { if (bStart) { - nTypePos += rInf.GetTextSize( sType ).Width(); + nTypePos += aTextSize.Width(); bStart = false; } else - nTypePos += rInf.GetTextSize( sType + " " ).Width() + 2 * mnHalfCharWidth; + nTypePos += aTextSize.Width() + + rInf.GetTextSize( " " ).Width() + 2 * mnHalfCharWidth; } aNewPos.AdjustX( nDirection * nTypePos ); const_cast< SwTextPaintInfo& >( rInf ).SetPos( aNewPos ); - rInf.DrawText( sType, *this ); + SwRect aRect( rInf.GetPos(), Size(aTextSize.Width(), -aTextSize.Height() * 0.8) ); + rInf.DrawRect( aRect, true ); // white background + rInf.DrawText( sType, *this ); // label // restore original position aNewPos.AdjustX( -nDirection * nTypePos ); if ( nDirection == 1 ) - nTypePos += rInf.GetTextSize( sType + " " ).Width() - mnHalfCharWidth * 2; + nTypePos += aTextSize.Width() + + rInf.GetTextSize( " " ).Width() - mnHalfCharWidth * 2; aNewPos.AdjustY(-fPos); } diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx index 8fd5f1c07623..ff8f05e28197 100644 --- a/sw/source/core/text/portxt.cxx +++ b/sw/source/core/text/portxt.cxx @@ -656,7 +656,7 @@ TextFrameIndex SwTextPortion::GetSpaceCnt(const SwTextSizeInfo &rInf, if ( rInf.SnapToGrid() ) { SwTextGridItem const*const pGrid(GetGridItem(rInf.GetTextFrame()->FindPageFrame())); - if (pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars()) + if (pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() && pGrid->IsSnapToChars()) return TextFrameIndex(0); } @@ -696,7 +696,7 @@ SwTwips SwTextPortion::CalcSpacing( tools::Long nSpaceAdd, const SwTextSizeInfo if ( rInf.SnapToGrid() ) { SwTextGridItem const*const pGrid(GetGridItem(rInf.GetTextFrame()->FindPageFrame())); - if (pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars()) + if (pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() && pGrid->IsSnapToChars()) return 0; } diff --git a/sw/source/core/text/possiz.hxx b/sw/source/core/text/possiz.hxx index dd7e940bd0eb..fa803fcc467e 100644 --- a/sw/source/core/text/possiz.hxx +++ b/sw/source/core/text/possiz.hxx @@ -37,11 +37,7 @@ public: , m_nHeight(SwTwips(rSize.Height())) { } -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - virtual ~SwPosSize() COVERITY_NOEXCEPT_FALSE {} -#else virtual ~SwPosSize() {} -#endif SwPosSize(SwPosSize const &) = default; SwPosSize(SwPosSize &&) = default; SwPosSize & operator =(SwPosSize const &) = default; diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx index 4a3cfaf5624e..77ab42f41895 100644 --- a/sw/source/core/text/txtfrm.cxx +++ b/sw/source/core/text/txtfrm.cxx @@ -2188,6 +2188,7 @@ void SwTextFrame::SwClientNotify(SwModify const& rModify, SfxHint const& rHint) sw::RedlineUnDelText const* pRedlineUnDelText(nullptr); SwFormatChangeHint const * pFormatChangedHint(nullptr); sw::AttrSetChangeHint const* pAttrSetChangeHint(nullptr); + sw::UpdateAttrHint const* pUpdateAttrHint(nullptr); sal_uInt16 nWhich = 0; if (rHint.GetId() == SfxHintId::SwLegacyModify) @@ -2197,6 +2198,10 @@ void SwTextFrame::SwClientNotify(SwModify const& rModify, SfxHint const& rHint) pNew = pHint->m_pNew; nWhich = pHint->GetWhich(); } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + pUpdateAttrHint = static_cast<const sw::UpdateAttrHint*>(&rHint); + } else if (rHint.GetId() == SfxHintId::SwInsertText) { pInsertText = static_cast<const sw::InsertText*>(&rHint); @@ -2713,54 +2718,53 @@ void SwTextFrame::SwClientNotify(SwModify const& rModify, SfxHint const& rHint) } else if (rHint.GetId() == SfxHintId::SwObjectDying) ; // do nothing - else switch (nWhich) + else if (pUpdateAttrHint) { - case RES_LINENUMBER: - { - assert(false); // should have been forwarded to SwContentFrame - InvalidateLineNum(); - } - break; - case RES_UPDATE_ATTR: - { - const SwUpdateAttr* pNewUpdate = static_cast<const SwUpdateAttr*>(pNew); + const SwUpdateAttr* pNewUpdate = pUpdateAttrHint->m_pNew; - sal_Int32 const nNPos = pNewUpdate->getStart(); - sal_Int32 const nNLen = pNewUpdate->getEnd() - nNPos; - nPos = MapModelToView(&rNode, nNPos); - nLen = MapModelToView(&rNode, nNPos + nNLen) - nPos; - if( IsIdxInside( nPos, nLen ) ) - { - // We need to reformat anyways, even if the invalidated - // range is empty. - // E.g.: empty line, set 14 pt! + sal_Int32 const nNPos = pNewUpdate->getStart(); + sal_Int32 const nNLen = pNewUpdate->getEnd() - nNPos; + nPos = MapModelToView(&rNode, nNPos); + nLen = MapModelToView(&rNode, nNPos + nNLen) - nPos; + if( IsIdxInside( nPos, nLen ) ) + { + // We need to reformat anyways, even if the invalidated + // range is empty. + // E.g.: empty line, set 14 pt! - // FootnoteNumbers need to be formatted - if( !nLen ) - nLen = TextFrameIndex(1); + // FootnoteNumbers need to be formatted + if( !nLen ) + nLen = TextFrameIndex(1); - InvalidateRange_( SwCharRange( nPos, nLen) ); - const sal_uInt16 nTmp = pNewUpdate->getWhichAttr(); + InvalidateRange_( SwCharRange( nPos, nLen) ); + const sal_uInt16 nTmp = pNewUpdate->getWhichAttr(); - if( ! nTmp || RES_TXTATR_CHARFMT == nTmp || RES_TXTATR_INETFMT == nTmp || RES_TXTATR_AUTOFMT == nTmp || - RES_UPDATEATTR_FMT_CHG == nTmp || RES_UPDATEATTR_ATTRSET_CHG == nTmp ) - { - lcl_SetWrong( *this, rNode, nNPos, nNPos + nNLen, false ); - lcl_SetScriptInval( *this, nPos ); - } + if( ! nTmp || RES_TXTATR_CHARFMT == nTmp || RES_TXTATR_INETFMT == nTmp || RES_TXTATR_AUTOFMT == nTmp || + RES_UPDATEATTR_FMT_CHG == nTmp || RES_UPDATEATTR_ATTRSET_CHG == nTmp ) + { + lcl_SetWrong( *this, rNode, nNPos, nNPos + nNLen, false ); + lcl_SetScriptInval( *this, nPos ); } + } #if !ENABLE_WASM_STRIP_ACCESSIBILITY - if( isA11yRelevantAttribute( pNewUpdate->getWhichAttr() ) && - hasA11yRelevantAttribute( pNewUpdate->getFmtAttrs() ) ) + if( isA11yRelevantAttribute( pNewUpdate->getWhichAttr() ) && + hasA11yRelevantAttribute( pNewUpdate->getFmtAttrs() ) ) + { + SwViewShell* pViewSh = getRootFrame() ? getRootFrame()->GetCurrShell() : nullptr; + if ( pViewSh ) { - SwViewShell* pViewSh = getRootFrame() ? getRootFrame()->GetCurrShell() : nullptr; - if ( pViewSh ) - { - pViewSh->InvalidateAccessibleParaAttrs( *this ); - } + pViewSh->InvalidateAccessibleParaAttrs( *this ); } + } #endif + } + else switch (nWhich) + { + case RES_LINENUMBER: + { + assert(false); // should have been forwarded to SwContentFrame + InvalidateLineNum(); } break; diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index 1d7377343274..679cf6d81085 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -256,7 +256,8 @@ void SwFormatField::SwClientNotify( const SwModify& rModify, const SfxHint& rHin else if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwAttrSetChange - || rHint.GetId() == SfxHintId::SwObjectDying) + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { if(!mpTextField) return; @@ -469,6 +470,38 @@ void SwFormatField::UpdateTextNode(const SfxHint& rHint) { assert(false && "do not expect this, might need to restore some code"); } + else if(SfxHintId::SwUpdateAttr == rHint.GetId()) + { + auto pUpdateHint = static_cast<const sw::UpdateAttrHint*>(&rHint); + auto pOld = pUpdateHint->m_pOld; + auto pNew = pUpdateHint->m_pNew; + if (pOld == nullptr && pNew == nullptr) + { + ForceUpdateTextNode(); + return; + } + + if (!IsFieldInDoc()) + return; + + SwTextNode* pTextNd = &mpTextField->GetTextNode(); + OSL_ENSURE(pTextNd, "Where is my Node?"); + + bool bTriggerNode = pNew != nullptr; + bool bExpand = false; + if(pNew) + { + auto pType = mpField->GetTyp(); + lcl_EnsureUserFieldValid(*pType); + bTriggerNode = lcl_TriggerNode(pType->Which()); + bExpand = lcl_ExpandField(pType->Which()); + pOld = nullptr; + } + if(bTriggerNode) + pTextNd->TriggerNodeUpdate(sw::UpdateAttrHint(pOld, pNew)); + if(bExpand) + mpTextField->ExpandTextField(false); + } else if(SfxHintId::SwLegacyModify == rHint.GetId()) { auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint); diff --git a/sw/source/core/txtnode/attrcontentcontrol.cxx b/sw/source/core/txtnode/attrcontentcontrol.cxx index 449124f9dc23..901fa17013a3 100644 --- a/sw/source/core/txtnode/attrcontentcontrol.cxx +++ b/sw/source/core/txtnode/attrcontentcontrol.cxx @@ -273,7 +273,8 @@ void SwContentControl::SwClientNotify(const SwModify&, const SfxHint& rHint) else if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwAttrSetChange - || rHint.GetId() == SfxHintId::SwObjectDying) + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { CallSwClientNotify(rHint); GetNotifier().Broadcast(SfxHint(SfxHintId::DataChanged)); diff --git a/sw/source/core/txtnode/fmtatr2.cxx b/sw/source/core/txtnode/fmtatr2.cxx index ee48e1e88ca9..780ecb23cc92 100644 --- a/sw/source/core/txtnode/fmtatr2.cxx +++ b/sw/source/core/txtnode/fmtatr2.cxx @@ -49,6 +49,7 @@ #include <unometa.hxx> #include <unotext.hxx> #include <docsh.hxx> +#include <names.hxx> #include <osl/diagnose.h> #include <algorithm> @@ -124,10 +125,10 @@ void SwFormatCharFormat::SwClientNotify(const SwModify&, const SfxHint& rHint) bool SwFormatCharFormat::QueryValue( uno::Any& rVal, sal_uInt8 ) const { - OUString sCharFormatName; + ProgName sCharFormatName; if(GetCharFormat()) SwStyleNameMapper::FillProgName(GetCharFormat()->GetName(), sCharFormatName, SwGetPoolIdFromName::ChrFmt ); - rVal <<= sCharFormatName; + rVal <<= sCharFormatName.toString(); return true; } bool SwFormatCharFormat::PutValue( const uno::Any& , sal_uInt8 ) @@ -321,10 +322,11 @@ bool SwFormatINetFormat::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const OUString sVal = msVisitedFormatName; if (sVal.isEmpty() && mnVisitedFormatId != 0) SwStyleNameMapper::FillUIName(mnVisitedFormatId, sVal); + ProgName aRet; if (!sVal.isEmpty()) - SwStyleNameMapper::FillProgName(sVal, sVal, + SwStyleNameMapper::FillProgName(sVal, aRet, SwGetPoolIdFromName::ChrFmt); - rVal <<= sVal; + rVal <<= aRet.toString(); } break; case MID_URL_UNVISITED_FMT: @@ -332,10 +334,11 @@ bool SwFormatINetFormat::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const OUString sVal = msINetFormatName; if (sVal.isEmpty() && mnINetFormatId != 0) SwStyleNameMapper::FillUIName(mnINetFormatId, sVal); + ProgName aRet; if (!sVal.isEmpty()) - SwStyleNameMapper::FillProgName(sVal, sVal, + SwStyleNameMapper::FillProgName(sVal, aRet, SwGetPoolIdFromName::ChrFmt); - rVal <<= sVal; + rVal <<= aRet.toString(); } break; case MID_URL_HYPERLINKEVENTS: @@ -403,7 +406,7 @@ bool SwFormatINetFormat::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) OUString sVal; rVal >>= sVal; OUString aString; - SwStyleNameMapper::FillUIName( sVal, aString, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::FillUIName( ProgName(sVal), aString, SwGetPoolIdFromName::ChrFmt ); msVisitedFormatName = aString; mnVisitedFormatId = SwStyleNameMapper::GetPoolIdFromUIName( msVisitedFormatName, SwGetPoolIdFromName::ChrFmt ); @@ -414,7 +417,7 @@ bool SwFormatINetFormat::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) OUString sVal; rVal >>= sVal; OUString aString; - SwStyleNameMapper::FillUIName( sVal, aString, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::FillUIName( ProgName(sVal), aString, SwGetPoolIdFromName::ChrFmt ); msINetFormatName = aString; mnINetFormatId = SwStyleNameMapper::GetPoolIdFromUIName( msINetFormatName, SwGetPoolIdFromName::ChrFmt ); } @@ -507,9 +510,9 @@ bool SwFormatRuby::QueryValue( uno::Any& rVal, case MID_RUBY_ADJUST: rVal <<= static_cast<sal_Int16>(m_eAdjustment); break; case MID_RUBY_CHARSTYLE: { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(m_sCharFormatName, aString, SwGetPoolIdFromName::ChrFmt ); - rVal <<= aString; + rVal <<= aString.toString(); } break; case MID_RUBY_ABOVE: @@ -572,7 +575,7 @@ bool SwFormatRuby::PutValue( const uno::Any& rVal, OUString sTmp; bRet = rVal >>= sTmp; if(bRet) - m_sCharFormatName = SwStyleNameMapper::GetUIName(sTmp, SwGetPoolIdFromName::ChrFmt ); + m_sCharFormatName = SwStyleNameMapper::GetUIName(ProgName(sTmp), SwGetPoolIdFromName::ChrFmt ); } break; default: @@ -747,7 +750,8 @@ void Meta::SwClientNotify(const SwModify&, const SfxHint& rHint) else if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwAttrSetChange - || rHint.GetId() == SfxHintId::SwObjectDying) + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { CallSwClientNotify(rHint); GetNotifier().Broadcast(SfxHint(SfxHintId::DataChanged)); diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx index 740c419a7d25..09ec1f760328 100644 --- a/sw/source/core/txtnode/fntcache.cxx +++ b/sw/source/core/txtnode/fntcache.cxx @@ -304,8 +304,7 @@ sal_uInt16 SwFntObj::GetFontAscent( const SwViewShell *pSh, const OutputDevice& // Returns the height of the Font on the given output device; // it may be necessary to create the screen font first. -sal_uInt16 SwFntObj::GetFontHeight(const SwViewShell* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext) +sal_uInt16 SwFntObj::GetFontHeight( const SwViewShell* pSh, const OutputDevice& rOut ) { sal_uInt16 nRet = 0; const OutputDevice& rRefDev = pSh ? pSh->GetRefDev() : rOut; @@ -314,7 +313,7 @@ sal_uInt16 SwFntObj::GetFontHeight(const SwViewShell* pSh, const OutputDevice& r { CreateScrFont( *pSh, rOut ); OSL_ENSURE( USHRT_MAX != m_nScrHeight, "nScrHeight is going berzerk" ); - nRet = m_nScrHeight + GetFontLeading(pSh, rRefDev, bIsCJKGridContext); + nRet = m_nScrHeight + GetFontLeading( pSh, rRefDev ); } else { @@ -337,15 +336,14 @@ sal_uInt16 SwFntObj::GetFontHeight(const SwViewShell* pSh, const OutputDevice& r const_cast<OutputDevice&>(rRefDev).SetFont( aOldFnt ); } - nRet = m_nPrtHeight + GetFontLeading(pSh, rRefDev, bIsCJKGridContext); + nRet = m_nPrtHeight + GetFontLeading( pSh, rRefDev ); } OSL_ENSURE( USHRT_MAX != nRet, "GetFontHeight returned USHRT_MAX" ); return nRet; } -sal_uInt16 SwFntObj::GetFontLeading(const SwViewShell* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext) +sal_uInt16 SwFntObj::GetFontLeading( const SwViewShell *pSh, const OutputDevice& rOut ) { sal_uInt16 nRet = 0; @@ -385,11 +383,8 @@ sal_uInt16 SwFntObj::GetFontLeading(const SwViewShell* pSh, const OutputDevice& const bool bBrowse = ( pSh->GetWin() && pSh->GetViewOptions()->getBrowseMode() && !pSh->GetViewOptions()->IsPrtFormat() ); - const bool bUseRealLeading - = rIDSA.get(DocumentSettingId::ADD_EXT_LEADING) - || (bIsCJKGridContext && rIDSA.get(DocumentSettingId::MS_WORD_COMP_GRID_METRICS)); - if (!bBrowse && bUseRealLeading) + if ( !bBrowse && rIDSA.get(DocumentSettingId::ADD_EXT_LEADING) ) nRet = m_nExtLeading; else nRet = m_nGuessedLeading; @@ -1021,7 +1016,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) SwTextGridItem const*const pGrid(GetGridItem(rInf.GetFrame()->FindPageFrame())); // ASIAN LINE AND CHARACTER GRID MODE - if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() ) + if ( pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() ) { //for textgrid refactor const SwDoc* pDoc = rInf.GetShell()->GetDoc(); @@ -1663,7 +1658,7 @@ Size SwFntObj::GetTextSize( SwDrawTextInfo& rInf ) SwFontScript::CJK == rInf.GetFont()->GetActual() ) { SwTextGridItem const*const pGrid(GetGridItem(rInf.GetFrame()->FindPageFrame())); - if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() ) + if ( pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() ) { const SwDoc* pDoc = rInf.GetShell()->GetDoc(); const sal_uInt16 nGridWidth = GetGridWidth(*pGrid, *pDoc); @@ -1810,7 +1805,7 @@ TextFrameIndex SwFntObj::GetModelPositionForViewPoint(SwDrawTextInfo &rInf) rInf.GetFont() && SwFontScript::CJK == rInf.GetFont()->GetActual() ) { SwTextGridItem const*const pGrid(GetGridItem(rInf.GetFrame()->FindPageFrame())); - if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() ) + if ( pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() ) { const SwDoc* pDoc = rInf.GetShell()->GetDoc(); const sal_uInt16 nGridWidth = GetGridWidth(*pGrid, *pDoc); @@ -2086,7 +2081,7 @@ TextFrameIndex SwFont::GetTextBreak(SwDrawTextInfo const & rInf, tools::Long nTe rInf.GetFont() && SwFontScript::CJK == rInf.GetFont()->GetActual() ) { SwTextGridItem const*const pGrid(GetGridItem(rInf.GetFrame()->FindPageFrame())); - if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() ) + if ( pGrid && SwTextGrid::LinesAndChars == pGrid->GetGridType() ) { const SwDoc* pDoc = rInf.GetShell()->GetDoc(); const sal_uInt16 nGridWidth = GetGridWidth(*pGrid, *pDoc); diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx index 9650fb75212f..033e65bf5de7 100644 --- a/sw/source/core/txtnode/ndtxt.cxx +++ b/sw/source/core/txtnode/ndtxt.cxx @@ -88,6 +88,7 @@ #include <formatflysplit.hxx> #include <fmtcntnt.hxx> #include <poolfmt.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -1234,12 +1235,12 @@ void SwTextNode::NewAttrSet( SwAttrPool& rPool ) // put names of parent style and conditional style: const SwFormatColl* pAnyFormatColl = &GetAnyFormatColl(); const SwFormatColl* pFormatColl = GetFormatColl(); - OUString sVal; + ProgName sVal; SwStyleNameMapper::FillProgName( pAnyFormatColl->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); - SfxStringItem aAnyFormatColl( RES_FRMATR_STYLE_NAME, sVal ); + SfxStringItem aAnyFormatColl( RES_FRMATR_STYLE_NAME, sVal.toString() ); if ( pFormatColl != pAnyFormatColl ) SwStyleNameMapper::FillProgName( pFormatColl->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); - SfxStringItem aFormatColl( RES_FRMATR_CONDITIONAL_STYLE_NAME, sVal ); + SfxStringItem aFormatColl( RES_FRMATR_CONDITIONAL_STYLE_NAME, sVal.toString() ); aNewAttrSet.Put( aAnyFormatColl ); aNewAttrSet.Put( aFormatColl ); @@ -2073,7 +2074,7 @@ void SwTextNode::CopyAttr( SwTextNode *pDest, const sal_Int32 nTextStartIdx, nOldPos, 0); - pDest->TriggerNodeUpdate(sw::LegacyModifyHint(&aHint, &aHint)); + pDest->TriggerNodeUpdate(sw::UpdateAttrHint(&aHint, &aHint)); } } @@ -2925,7 +2926,7 @@ void SwTextNode::GCAttr() nMax, 0); - CallSwClientNotify(sw::LegacyModifyHint(nullptr, &aHint)); + CallSwClientNotify(sw::UpdateAttrHint(nullptr, &aHint)); CallSwClientNotify(SwFormatChangeHint(nullptr, GetTextColl())); } } @@ -5558,7 +5559,7 @@ void SwTextNode::TriggerNodeUpdate(const sw::LegacyModifyHint& rHint) } } -void SwTextNode::TriggerNodeUpdate(const sw::ObjectDyingHint& rHint) +void SwTextNode::TriggerNodeUpdate(const SfxHint& rHint) { sw::TextNodeNotificationSuppressor(*this); @@ -5614,20 +5615,6 @@ void SwTextNode::TriggerNodeUpdate(const sw::AttrSetChangeHint& rHint) } } -void SwTextNode::TriggerNodeUpdate(const sw::RemoveUnoObjectHint& rHint) -{ - sw::TextNodeNotificationSuppressor(*this); - - SwContentNode::SwClientNotify(*this, rHint); - - SwDoc& rDoc = GetDoc(); - // #125329# - assure that text node is in document nodes array - if ( !rDoc.IsInDtor() && &rDoc.GetNodes() == &GetNodes() ) - { - rDoc.GetNodes().UpdateOutlineNode(*this); - } -} - void SwTextNode::TriggerNodeUpdate(const SwFormatChangeHint& rHint) { assert(!rHint.m_pOldFormat || dynamic_cast<const SwTextFormatColl*>(rHint.m_pOldFormat)); @@ -5693,6 +5680,11 @@ void SwTextNode::SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) auto pLegacyHint = static_cast<const sw::LegacyModifyHint*>(&rHint); TriggerNodeUpdate(*pLegacyHint); } + else if (rHint.GetId() == SfxHintId::SwUpdateAttr) + { + auto pUpdateHint = static_cast<const sw::UpdateAttrHint*>(&rHint); + TriggerNodeUpdate(*pUpdateHint); + } else if (rHint.GetId() == SfxHintId::SwAttrSetChange) { auto pChangeHint = static_cast<const sw::AttrSetChangeHint*>(&rHint); diff --git a/sw/source/core/txtnode/swfont.cxx b/sw/source/core/txtnode/swfont.cxx index 905d65d0a8b8..a029c2454ce1 100644 --- a/sw/source/core/txtnode/swfont.cxx +++ b/sw/source/core/txtnode/swfont.cxx @@ -983,12 +983,11 @@ sal_uInt16 SwSubFont::GetAscent( SwViewShell const *pSh, const OutputDevice& rOu return GetEscapement() ? CalcEscAscent( nAscent ) : nAscent; } -sal_uInt16 SwSubFont::GetHeight(SwViewShell const* pSh, const OutputDevice& rOut, - bool bIsCJKGridContext) +sal_uInt16 SwSubFont::GetHeight( SwViewShell const *pSh, const OutputDevice& rOut ) { SV_STAT( nGetTextSize ); SwFntAccess aFntAccess( m_nFontCacheId, m_nFontIndex, this, pSh ); - const sal_uInt16 nHeight = aFntAccess.Get()->GetFontHeight(pSh, rOut, bIsCJKGridContext); + const sal_uInt16 nHeight = aFntAccess.Get()->GetFontHeight( pSh, rOut ); if ( GetEscapement() ) { const sal_uInt16 nAscent = aFntAccess.Get()->GetFontAscent( pSh, rOut ); diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx index 5285fd9e75cb..9330d2e037bd 100644 --- a/sw/source/core/txtnode/thints.cxx +++ b/sw/source/core/txtnode/thints.cxx @@ -1802,7 +1802,7 @@ void SwTextNode::DeleteAttribute( SwTextAttr * const pAttr ) m_pSwpHints->Delete( pAttr ); SwTextAttr::Destroy( pAttr ); - CallSwClientNotify(sw::LegacyModifyHint(nullptr, &aHint)); + CallSwClientNotify(sw::UpdateAttrHint(nullptr, &aHint)); TryDeleteSwpHints(); } @@ -1877,7 +1877,7 @@ void SwTextNode::DeleteAttributes( m_pSwpHints->DeleteAtPos( nPos ); SwTextAttr::Destroy( pTextHt ); - CallSwClientNotify(sw::LegacyModifyHint(nullptr, &aHint)); + CallSwClientNotify(sw::UpdateAttrHint(nullptr, &aHint)); } } } @@ -3296,7 +3296,7 @@ bool SwpHints::TryInsertHint( nHtStart, nWhich); - rNode.TriggerNodeUpdate(sw::LegacyModifyHint(&aHint, &aHint)); + rNode.TriggerNodeUpdate(sw::UpdateAttrHint(&aHint, &aHint)); } return true; @@ -3373,7 +3373,7 @@ bool SwpHints::TryInsertHint( if ( rNode.HasWriterListeners() ) { const SwUpdateAttr aHint(nHtStart, nHintEnd, nWhich, std::move(aWhichSublist)); - rNode.TriggerNodeUpdate(sw::LegacyModifyHint(&aHint, &aHint)); + rNode.TriggerNodeUpdate(sw::UpdateAttrHint(&aHint, &aHint)); } #ifdef DBG_UTIL diff --git a/sw/source/core/txtnode/txtatr2.cxx b/sw/source/core/txtnode/txtatr2.cxx index cb8c20476acb..219664f76d86 100644 --- a/sw/source/core/txtnode/txtatr2.cxx +++ b/sw/source/core/txtnode/txtatr2.cxx @@ -83,7 +83,7 @@ void SwTextCharFormat::TriggerNodeUpdate(const sw::LegacyModifyHint& rHint) GetStart(), *GetEnd(), nWhich); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } @@ -95,7 +95,7 @@ void SwTextCharFormat::TriggerNodeUpdate(const sw::ObjectDyingHint& /*rHint*/) GetStart(), *GetEnd(), RES_UPDATEATTR_OBJECTDYING); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } @@ -107,7 +107,7 @@ void SwTextCharFormat::TriggerNodeUpdate(const sw::AttrSetChangeHint& /*rHint*/) GetStart(), *GetEnd(), RES_UPDATEATTR_ATTRSET_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } @@ -119,7 +119,7 @@ void SwTextCharFormat::TriggerNodeUpdate(const SwFormatChangeHint&) GetStart(), *GetEnd(), RES_UPDATEATTR_FMT_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } @@ -218,21 +218,21 @@ void SwTextINetFormat::SwClientNotify(const SwModify&, const SfxHint& rHint) if(!m_pTextNode) return; const SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_FMT_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwAttrSetChange) { if(!m_pTextNode) return; const SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_ATTRSET_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwObjectDying) { if(!m_pTextNode) return; const SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_OBJECTDYING); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwLegacyModify) { @@ -242,7 +242,7 @@ void SwTextINetFormat::SwClientNotify(const SwModify&, const SfxHint& rHint) if(!m_pTextNode) return; const SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), nWhich); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } @@ -277,21 +277,21 @@ void SwTextRuby::SwClientNotify(const SwModify&, const SfxHint& rHint) if(!m_pTextNode) return; SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_FMT_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwAttrSetChange) { if(!m_pTextNode) return; SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_ATTRSET_CHG); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwObjectDying) { if(!m_pTextNode) return; SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), RES_UPDATEATTR_OBJECTDYING); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } else if (rHint.GetId() == SfxHintId::SwLegacyModify) { @@ -301,7 +301,7 @@ void SwTextRuby::SwClientNotify(const SwModify&, const SfxHint& rHint) if(!m_pTextNode) return; SwUpdateAttr aUpdateAttr(GetStart(), *GetEnd(), nWhich); - m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, &aUpdateAttr)); + m_pTextNode->TriggerNodeUpdate(sw::UpdateAttrHint(&aUpdateAttr, &aUpdateAttr)); } } diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index df0582e1f058..55837fd52e60 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -668,7 +668,7 @@ void SwTextNode::RstTextAttr( nMax, 0); - CallSwClientNotify(sw::LegacyModifyHint(nullptr, &aHint)); + CallSwClientNotify(sw::UpdateAttrHint(nullptr, &aHint)); CallSwClientNotify(SwFormatChangeHint(nullptr, GetFormatColl())); } diff --git a/sw/source/core/unocore/SwXTextDefaults.cxx b/sw/source/core/unocore/SwXTextDefaults.cxx index 66ea89e3d3f0..de5e71265786 100644 --- a/sw/source/core/unocore/SwXTextDefaults.cxx +++ b/sw/source/core/unocore/SwXTextDefaults.cxx @@ -37,6 +37,7 @@ #include <unocrsrhelper.hxx> #include <hintids.hxx> #include <fmtpdsc.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -86,7 +87,7 @@ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName, throw lang::IllegalArgumentException(); OUString sStyle; - SwStyleNameMapper::FillUIName(uStyle, sStyle, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::FillUIName(ProgName(uStyle), sStyle, SwGetPoolIdFromName::ChrFmt ); SwDocStyleSheet* pStyle = static_cast<SwDocStyleSheet*>(m_pDoc->GetDocShell()->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Char)); std::unique_ptr<SwFormatDrop> pDrop; diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx index 7b7a34d2aad2..dbfaa99c9671 100644 --- a/sw/source/core/unocore/unochart.cxx +++ b/sw/source/core/unocore/unochart.cxx @@ -2153,7 +2153,8 @@ void SwChartDataSequence::Notify( const SfxHint& rHint) else if (rHint.GetId() == SfxHintId::SwLegacyModify || rHint.GetId() == SfxHintId::SwFormatChange || rHint.GetId() == SfxHintId::SwAttrSetChange - || rHint.GetId() == SfxHintId::SwObjectDying) + || rHint.GetId() == SfxHintId::SwObjectDying + || rHint.GetId() == SfxHintId::SwUpdateAttr) { setModified( true ); } diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx index 7a019bf98bd3..10d391b5ee99 100644 --- a/sw/source/core/unocore/unocrsrhelper.cxx +++ b/sw/source/core/unocore/unocrsrhelper.cxx @@ -93,6 +93,7 @@ #include <poolfmt.hxx> #include <paratr.hxx> #include <sal/log.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -395,9 +396,9 @@ bool getCursorPropertyValue(const SfxItemPropertyMapEntry& rEntry { if( pAny ) { - OUString sVal; + ProgName sVal; SwStyleNameMapper::FillProgName(pFormat->GetName(), sVal, SwGetPoolIdFromName::TxtColl ); - *pAny <<= sVal; + *pAny <<= sVal.toString(); } } else @@ -406,10 +407,10 @@ bool getCursorPropertyValue(const SfxItemPropertyMapEntry& rEntry break; case FN_UNO_PAGE_STYLE : { - OUString sVal; + ProgName sVal; GetCurPageStyle(rPam, sVal); if( pAny ) - *pAny <<= sVal; + *pAny <<= sVal.toString(); if(sVal.isEmpty()) eNewState = PropertyState_AMBIGUOUS_VALUE; } @@ -780,7 +781,7 @@ bool getCursorPropertyValue(const SfxItemPropertyMapEntry& rEntry OSL_ENSURE(pAttr->GetCharFormat().GetCharFormat(), "no character format set"); aCharStyles.getArray()[aCharStyles.getLength() - 1] = SwStyleNameMapper::GetProgName( - pAttr->GetCharFormat().GetCharFormat()->GetName(), SwGetPoolIdFromName::ChrFmt); + pAttr->GetCharFormat().GetCharFormat()->GetName(), SwGetPoolIdFromName::ChrFmt).toString(); } } @@ -964,7 +965,7 @@ void getNumberingProperty(SwPaM& rPam, PropertyState& eState, Any * pAny ) eState = PropertyState_DEFAULT_VALUE; } -void GetCurPageStyle(SwPaM const & rPaM, OUString &rString) +void GetCurPageStyle(SwPaM const & rPaM, ProgName &rString) { if (!rPaM.GetPointContentNode()) return; // TODO: is there an easy way to get it for tables/sections? @@ -1390,7 +1391,7 @@ void makeRedline( SwPaM const & rPaM, nStylePoolId = RES_POOLCOLL_STANDARD; // tdf#149747 Get UI style name from programmatic style name - SwStyleNameMapper::FillUIName(sParaStyleName, sUIStyle, + SwStyleNameMapper::FillUIName(ProgName(sParaStyleName), sUIStyle, SwGetPoolIdFromName::TxtColl); xRedlineExtraData.reset(new SwRedlineExtraData_FormatColl( sUIStyle.isEmpty() ? sParaStyleName : sUIStyle, nStylePoolId, &aItemSet)); diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx index afbaf1e48867..235f96d792c2 100644 --- a/sw/source/core/unocore/unofield.cxx +++ b/sw/source/core/unocore/unofield.cxx @@ -86,6 +86,7 @@ #include <textapi.hxx> #include <fmtmeta.hxx> #include <annotationmark.hxx> +#include <names.hxx> #include <vector> using namespace ::com::sun::star; @@ -804,7 +805,7 @@ SwXFieldMaster::getPropertyValue(const OUString& rPropertyName) { if(rPropertyName == UNO_NAME_NAME) { - aRet <<= SwXFieldMaster::GetProgrammaticName(*pType, *m_pImpl->m_pDoc); + aRet <<= SwXFieldMaster::GetProgrammaticName(*pType, *m_pImpl->m_pDoc).toString(); } else if(rPropertyName == UNO_NAME_DEPENDENT_TEXT_FIELDS) { @@ -986,7 +987,7 @@ void SwXFieldMaster::Impl::Notify(const SfxHint& rHint) } } -OUString SwXFieldMaster::GetProgrammaticName(const SwFieldType& rType, SwDoc& rDoc) +ProgName SwXFieldMaster::GetProgrammaticName(const SwFieldType& rType, SwDoc& rDoc) { const OUString sName(rType.GetName()); if(SwFieldIds::SetExp == rType.Which()) @@ -1000,7 +1001,7 @@ OUString SwXFieldMaster::GetProgrammaticName(const SwFieldType& rType, SwDoc& rD } } } - return sName; + return ProgName(sName); } OUString SwXFieldMaster::LocalizeFormula( @@ -1009,12 +1010,12 @@ OUString SwXFieldMaster::LocalizeFormula( bool bQuery) { const OUString sTypeName(rField.GetTyp()->GetName()); - const OUString sProgName( + const ProgName sProgName( SwStyleNameMapper::GetProgName(sTypeName, SwGetPoolIdFromName::TxtColl )); - if(sProgName != sTypeName) + if(sProgName.toString() != sTypeName) { - const OUString sSource = bQuery ? sTypeName : sProgName; - const OUString sDest = bQuery ? sProgName : sTypeName; + const OUString sSource = bQuery ? sTypeName : sProgName.toString(); + const OUString sDest = bQuery ? sProgName.toString() : sTypeName; if(rFormula.startsWith(sSource)) { return sDest + rFormula.subView(sSource.getLength()); @@ -2715,7 +2716,7 @@ static SwFieldIds lcl_GetIdByName( OUString& rName, OUString& rTypeName ) nResId = SwFieldIds::SetExp; const OUString sFieldTypName( rName.getToken( 0, '.', nIdx )); - const OUString sUIName( SwStyleNameMapper::GetSpecialExtraUIName( sFieldTypName ) ); + const OUString sUIName( SwStyleNameMapper::GetSpecialExtraUIName( ProgName(sFieldTypName) ) ); if( sUIName != sFieldTypName ) rName = comphelper::string::setToken(rName, 1, '.', sUIName); @@ -2779,7 +2780,7 @@ bool SwXTextFieldMasters::getInstanceName( break; case SwFieldIds::SetExp: - sField = "SetExpression." + SwStyleNameMapper::GetSpecialExtraProgName( rFieldType.GetName() ); + sField = "SetExpression." + SwStyleNameMapper::GetSpecialExtraProgName( rFieldType.GetName() ).toString(); break; case SwFieldIds::Database: diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index 979c7fce353c..12c5829224b0 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -137,6 +137,7 @@ #include <fefly.hxx> #include <formatflysplit.hxx> #include <formatwraptextatflystart.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -949,12 +950,13 @@ bool SwFrameProperties_Impl::AnyToItemSet(SwDoc *pDoc, SfxItemSet& rSet, SfxItem if (const uno::Any* pStyleName = GetProperty(FN_UNO_FRAME_STYLE_NAME, 0)) { - OUString sStyle; - *pStyleName >>= sStyle; - SwStyleNameMapper::FillUIName(sStyle, sStyle, SwGetPoolIdFromName::FrmFmt); + OUString sStyleProgName; + *pStyleName >>= sStyleProgName; + OUString sStyleUIName; + SwStyleNameMapper::FillUIName(ProgName(sStyleProgName), sStyleUIName, SwGetPoolIdFromName::FrmFmt); if (SwDocShell* pShell = pDoc->GetDocShell()) { - pStyle = static_cast<SwDocStyleSheet*>(pShell->GetStyleSheetPool()->Find(sStyle, + pStyle = static_cast<SwDocStyleSheet*>(pShell->GetStyleSheetPool()->Find(sStyleUIName, SfxStyleFamily::Frame)); } } @@ -1031,12 +1033,13 @@ bool SwGraphicProperties_Impl::AnyToItemSet( if (const uno::Any* pStyleName = GetProperty(FN_UNO_FRAME_STYLE_NAME, 0)) { - OUString sStyle; - *pStyleName >>= sStyle; - SwStyleNameMapper::FillUIName(sStyle, sStyle, SwGetPoolIdFromName::FrmFmt); + OUString sStyleProgName; + *pStyleName >>= sStyleProgName; + OUString sStyleUIName; + SwStyleNameMapper::FillUIName(ProgName(sStyleProgName), sStyleUIName, SwGetPoolIdFromName::FrmFmt); if (SwDocShell* pShell = pDoc->GetDocShell()) { - pStyle = static_cast<SwDocStyleSheet*>(pShell->GetStyleSheetPool()->Find(sStyle, + pStyle = static_cast<SwDocStyleSheet*>(pShell->GetStyleSheetPool()->Find(sStyleUIName, SfxStyleFamily::Frame)); } } @@ -1322,7 +1325,7 @@ static SwFrameFormat *lcl_GetFrameFormat( const ::uno::Any& rValue, SwDoc *pDoc OUString uTemp; rValue >>= uTemp; OUString sStyle; - SwStyleNameMapper::FillUIName(uTemp, sStyle, + SwStyleNameMapper::FillUIName(ProgName(uTemp), sStyle, SwGetPoolIdFromName::FrmFmt); SwDocStyleSheet* pStyle = static_cast<SwDocStyleSheet*>(pDocSh->GetStyleSheetPool()->Find(sStyle, @@ -2095,7 +2098,7 @@ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName) } else if(FN_UNO_FRAME_STYLE_NAME == pEntry->nWID) { - aAny <<= SwStyleNameMapper::GetProgName(pFormat->DerivedFrom()->GetName(), SwGetPoolIdFromName::FrmFmt ); + aAny <<= SwStyleNameMapper::GetProgName(pFormat->DerivedFrom()->GetName(), SwGetPoolIdFromName::FrmFmt ).toString(); } // #i73249# else if( FN_UNO_TITLE == pEntry->nWID ) diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx index 3cba56977729..aa4f2d171c93 100644 --- a/sw/source/core/unocore/unoidx.cxx +++ b/sw/source/core/unocore/unoidx.cxx @@ -62,6 +62,7 @@ #include <svl/listener.hxx> #include <mutex> #include <unotxdoc.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -689,7 +690,7 @@ SwXDocumentIndex::setPropertyValue( // convert file-format/API/external programmatic english name // to internal UI name before usage rTOXBase.SetSequenceName( SwStyleNameMapper::GetSpecialExtraUIName( - lcl_AnyToType<OUString>(rValue) ) ); + ProgName(lcl_AnyToType<OUString>(rValue)) ) ); } break; case WID_LABEL_DISPLAY_TYPE: @@ -719,7 +720,7 @@ SwXDocumentIndex::setPropertyValue( case WID_MAIN_ENTRY_CHARACTER_STYLE_NAME: { OUString aString; - SwStyleNameMapper::FillUIName(lcl_AnyToType<OUString>(rValue), + SwStyleNameMapper::FillUIName(ProgName(lcl_AnyToType<OUString>(rValue)), aString, SwGetPoolIdFromName::ChrFmt); rTOXBase.SetMainEntryCharStyle( aString ); } @@ -755,7 +756,7 @@ SwXDocumentIndex::setPropertyValue( case WID_PARA_HEAD: { OUString aString; - SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue), + SwStyleNameMapper::FillUIName( ProgName(lcl_AnyToType<OUString>(rValue)), aString, SwGetPoolIdFromName::TxtColl); bForm = true; // Header is on Pos 0 @@ -770,7 +771,7 @@ SwXDocumentIndex::setPropertyValue( { OUString aString; bForm = true; - SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue), + SwStyleNameMapper::FillUIName( ProgName(lcl_AnyToType<OUString>(rValue)), aString, SwGetPoolIdFromName::TxtColl); aForm.SetTemplate( 1, aString ); } @@ -789,7 +790,7 @@ SwXDocumentIndex::setPropertyValue( } lcl_AnyToBitMask(uno::Any(true), nCreate, SwTOXElement::Template); OUString uiStyle; - SwStyleNameMapper::FillUIName(style, uiStyle, SwGetPoolIdFromName::TxtColl); + SwStyleNameMapper::FillUIName(ProgName(style), uiStyle, SwGetPoolIdFromName::TxtColl); rTOXBase.SetStyleNames(uiStyle, 0); } else if (!rValue.hasValue()) @@ -818,7 +819,7 @@ SwXDocumentIndex::setPropertyValue( // in sdbcx::Index Label 1 begins at Pos 2 otherwise at Pos 1 const sal_uInt16 nLPos = rTOXBase.GetType() == TOX_INDEX ? 2 : 1; OUString aString; - SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue), + SwStyleNameMapper::FillUIName( ProgName(lcl_AnyToType<OUString>(rValue)), aString, SwGetPoolIdFromName::TxtColl); aForm.SetTemplate(nLPos + pEntry->nWID - WID_PARA_LEV1, aString ); } @@ -1019,7 +1020,7 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName) // file-format/API/external programmatic english name // before usage aRet <<= SwStyleNameMapper::GetSpecialExtraProgName( - pTOXBase->GetSequenceName() ); + pTOXBase->GetSequenceName() ).toString(); } break; case WID_LABEL_DISPLAY_TYPE: @@ -1072,12 +1073,12 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName) break; case WID_MAIN_ENTRY_CHARACTER_STYLE_NAME: { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName( pTOXBase->GetMainEntryCharStyle(), aString, SwGetPoolIdFromName::ChrFmt); - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_CREATE_FROM_TABLES: @@ -1119,10 +1120,10 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName) if (!rStyle.isEmpty()) { assert(rStyle.indexOf(TOX_STYLE_DELIMITER) == -1); - OUString ret; + ProgName ret; SwStyleNameMapper::FillProgName(rStyle, ret, SwGetPoolIdFromName::TxtColl); - aRet <<= ret; + aRet <<= ret.toString(); } } } @@ -1131,20 +1132,20 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName) case WID_PARA_HEAD: { //Header is at position 0 - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(rForm.GetTemplate( 0 ), aString, SwGetPoolIdFromName::TxtColl ); - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_PARA_SEP: { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName( rForm.GetTemplate( 1 ), aString, SwGetPoolIdFromName::TxtColl); - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_PARA_LEV1: @@ -1160,12 +1161,12 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName) { // in sdbcx::Index Label 1 begins at Pos 2 otherwise at Pos 1 const sal_uInt16 nLPos = pTOXBase->GetType() == TOX_INDEX ? 2 : 1; - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName( rForm.GetTemplate(nLPos + pEntry->nWID - WID_PARA_LEV1), aString, SwGetPoolIdFromName::TxtColl); - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_IS_RELATIVE_TABSTOPS: @@ -2529,7 +2530,7 @@ SwXDocumentIndex::StyleAccess_Impl::replaceByIndex( { sSetStyles.append(TOX_STYLE_DELIMITER); } - SwStyleNameMapper::FillUIName(pStyles[i], aString, + SwStyleNameMapper::FillUIName(ProgName(pStyles[i]), aString, SwGetPoolIdFromName::TxtColl); sSetStyles.append(aString); } @@ -2559,7 +2560,7 @@ SwXDocumentIndex::StyleAccess_Impl::getByIndex(sal_Int32 nIndex) const sal_Int32 nStyles = comphelper::string::getTokenCount(rStyles, TOX_STYLE_DELIMITER); uno::Sequence<OUString> aStyles(nStyles); OUString* pStyles = aStyles.getArray(); - OUString aString; + ProgName aString; sal_Int32 nPos = 0; for(sal_Int32 i = 0; i < nStyles; ++i) { @@ -2567,7 +2568,7 @@ SwXDocumentIndex::StyleAccess_Impl::getByIndex(sal_Int32 nIndex) rStyles.getToken(0, TOX_STYLE_DELIMITER, nPos), aString, SwGetPoolIdFromName::TxtColl); - pStyles[i] = aString; + pStyles[i] = aString.toString(); } uno::Any aRet(&aStyles, cppu::UnoType<uno::Sequence<OUString>>::get()); return aRet; @@ -2682,7 +2683,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex( { OUString sCharStyleName; SwStyleNameMapper::FillUIName( - lcl_AnyToType<OUString>(pProperties[j].Value), + ProgName(lcl_AnyToType<OUString>(pProperties[j].Value)), sCharStyleName, SwGetPoolIdFromName::ChrFmt); aToken.sCharStyleName = sCharStyleName; @@ -2846,7 +2847,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) sal_Int32 nTokenCount = 0; uno::Sequence< beans::PropertyValues > aRetSeq; - OUString aProgCharStyle; + ProgName aProgCharStyle; for(const SwFormToken& aToken : aPattern) // #i21237# { nTokenCount++; @@ -2887,7 +2888,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) u"TokenEntryNumber"_ustr; pArr[nCurrentElement].Name = "CharacterStyleName"; - pArr[nCurrentElement++].Value <<= aProgCharStyle; + pArr[nCurrentElement++].Value <<= aProgCharStyle.toString(); if( aToken.nChapterFormat != CF_NUMBER ) { pArr[nCurrentElement].Name = "ChapterFormat"; @@ -2926,7 +2927,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[0].Value <<= u"TokenEntryText"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); } break; case TOKEN_TAB_STOP: @@ -2953,7 +2954,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[2].Name = "TabStopFillCharacter"; pArr[2].Value <<= OUString(aToken.cTabFillChar); pArr[3].Name = "CharacterStyleName"; - pArr[3].Value <<= aProgCharStyle; + pArr[3].Value <<= aProgCharStyle.toString(); // #i21237# pArr[4].Name = "WithTab"; pArr[4].Value <<= aToken.bWithTab; @@ -2968,7 +2969,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[0].Value <<= u"TokenText"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); pArr[2].Name = "Text"; pArr[2].Value <<= aToken.sText; @@ -2983,7 +2984,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[0].Value <<= u"TokenPageNumber"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); } break; case TOKEN_CHAPTER_INFO: @@ -2995,7 +2996,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[0].Value <<= u"TokenChapterInfo"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); pArr[2].Name = "ChapterFormat"; sal_Int16 nVal = text::ChapterFormat::NUMBER; @@ -3032,7 +3033,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) pArr[0].Value <<= u"TokenHyperlinkStart"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); } break; case TOKEN_LINK_END: @@ -3055,7 +3056,7 @@ SwXDocumentIndex::TokenAccess_Impl::getByIndex(sal_Int32 nIndex) u"TokenBibliographyDataField"_ustr; pArr[1].Name = "CharacterStyleName"; - pArr[1].Value <<= aProgCharStyle; + pArr[1].Value <<= aProgCharStyle.toString(); pArr[2].Name = "BibliographyDataField"; pArr[2].Value <<= sal_Int16(aToken.nAuthorityField); diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx index a790cefa80c5..ba1efe36124b 100644 --- a/sw/source/core/unocore/unoobj.cxx +++ b/sw/source/core/unocore/unoobj.cxx @@ -79,6 +79,7 @@ #include <comphelper/profilezone.hxx> #include <comphelper/flagguard.hxx> #include <swmodule.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -203,7 +204,7 @@ lcl_setCharStyle(SwDoc& rDoc, const uno::Any & rValue, SfxItemSet & rSet) throw lang::IllegalArgumentException(); } OUString sStyle; - SwStyleNameMapper::FillUIName(uStyle, sStyle, + SwStyleNameMapper::FillUIName(ProgName(uStyle), sStyle, SwGetPoolIdFromName::ChrFmt); SwDocStyleSheet *const pStyle = static_cast<SwDocStyleSheet*>( pDocSh->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Char)); @@ -250,7 +251,7 @@ SwUnoCursorHelper::SetTextFormatColl(const uno::Any & rAny, SwPaM & rPaM) OUString uStyle; rAny >>= uStyle; OUString sStyle; - SwStyleNameMapper::FillUIName(uStyle, sStyle, + SwStyleNameMapper::FillUIName(ProgName(uStyle), sStyle, SwGetPoolIdFromName::TxtColl ); SwDocStyleSheet *const pStyle = static_cast<SwDocStyleSheet*>( pDocSh->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Para)); @@ -289,7 +290,7 @@ SwUnoCursorHelper::SetPageDesc( pNewDesc.reset(new SwFormatPageDesc()); } OUString sDescName; - SwStyleNameMapper::FillUIName(uDescName, sDescName, + SwStyleNameMapper::FillUIName(ProgName(uDescName), sDescName, SwGetPoolIdFromName::PageDesc); if (!pNewDesc->GetPageDesc() || (pNewDesc->GetPageDesc()->GetName() != sDescName)) @@ -384,7 +385,7 @@ lcl_setDropcapCharStyle(SwPaM const & rPam, SfxItemSet & rItemSet, throw lang::IllegalArgumentException(); } OUString sStyle; - SwStyleNameMapper::FillUIName(uStyle, sStyle, + SwStyleNameMapper::FillUIName(ProgName(uStyle), sStyle, SwGetPoolIdFromName::ChrFmt); SwDoc& rDoc = rPam.GetDoc(); //default character style must not be set as default format @@ -428,7 +429,7 @@ lcl_setRubyCharstyle(SfxItemSet & rItemSet, uno::Any const& rValue) pRuby.reset(new SwFormatRuby(OUString())); } OUString sStyle; - SwStyleNameMapper::FillUIName(sTmp, sStyle, + SwStyleNameMapper::FillUIName(ProgName(sTmp), sStyle, SwGetPoolIdFromName::ChrFmt); pRuby->SetCharFormatName(sStyle); pRuby->SetCharFormatId(0); diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx index 5875a17c8e90..0327e13c6161 100644 --- a/sw/source/core/unocore/unoobj2.cxx +++ b/sw/source/core/unocore/unoobj2.cxx @@ -1378,7 +1378,7 @@ CreateParentXText(SwDoc & rDoc, const SwPosition& rPos) { // then it is the body text const rtl::Reference<SwXTextDocument> xModel = pDocSh->GetBaseModel(); - xParentText = dynamic_cast<SwXText*>(xModel->getText().get()); + xParentText = xModel->getBodyText(); } } } diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx index c6085b368871..9924a169785c 100644 --- a/sw/source/core/unocore/unoparagraph.cxx +++ b/sw/source/core/unocore/unoparagraph.cxx @@ -42,6 +42,7 @@ #include <vcl/svapp.hxx> #include <docsh.hxx> #include <swunohelper.hxx> +#include <names.hxx> #include <com/sun/star/beans/SetPropertyTolerantFailed.hpp> #include <com/sun/star/beans/GetPropertyTolerantResult.hpp> @@ -909,7 +910,7 @@ static beans::PropertyState lcl_SwXParagraph_getPropertyState( } case FN_UNO_PAGE_STYLE: { - OUString sVal; + ProgName sVal; SwUnoCursorHelper::GetCurPageStyle( aPam, sVal ); eRet = !sVal.isEmpty() ? beans::PropertyState_DIRECT_VALUE : beans::PropertyState_AMBIGUOUS_VALUE; diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx index 3784c55284d7..c52d95b3cba9 100644 --- a/sw/source/core/unocore/unosett.cxx +++ b/sw/source/core/unocore/unosett.cxx @@ -70,6 +70,7 @@ #include <svl/listener.hxx> #include <paratr.hxx> #include <sal/log.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -189,7 +190,7 @@ static SwCharFormat* lcl_getCharFormat(SwDoc* pDoc, const uno::Any& aValue) OUString uTmp; aValue >>= uTmp; OUString sCharFormat; - SwStyleNameMapper::FillUIName(uTmp, sCharFormat, SwGetPoolIdFromName::ChrFmt); + SwStyleNameMapper::FillUIName(ProgName(uTmp), sCharFormat, SwGetPoolIdFromName::ChrFmt); if (sCharFormat != SwResId(STR_POOLCHR_STANDARD)) { pRet = pDoc->FindCharFormatByName( sCharFormat ); @@ -208,7 +209,7 @@ static SwTextFormatColl* lcl_GetParaStyle(SwDoc* pDoc, const uno::Any& aValue) OUString uTmp; aValue >>= uTmp; OUString sParaStyle; - SwStyleNameMapper::FillUIName(uTmp, sParaStyle, SwGetPoolIdFromName::TxtColl ); + SwStyleNameMapper::FillUIName(ProgName(uTmp), sParaStyle, SwGetPoolIdFromName::TxtColl ); SwTextFormatColl* pRet = pDoc->FindTextFormatCollByName( sParaStyle ); if( !pRet ) { @@ -224,7 +225,7 @@ static SwPageDesc* lcl_GetPageDesc(SwDoc* pDoc, const uno::Any& aValue) OUString uTmp; aValue >>= uTmp; OUString sPageDesc; - SwStyleNameMapper::FillUIName(uTmp, sPageDesc, SwGetPoolIdFromName::PageDesc ); + SwStyleNameMapper::FillUIName(ProgName(uTmp), sPageDesc, SwGetPoolIdFromName::PageDesc ); SwPageDesc* pRet = pDoc->FindPageDesc( sPageDesc ); if(!pRet) { @@ -455,13 +456,14 @@ uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName) OUString aString; if(pColl) aString = pColl->GetName(); - SwStyleNameMapper::FillProgName(aString, aString, SwGetPoolIdFromName::TxtColl); - aRet <<= aString; + ProgName aRetName; + SwStyleNameMapper::FillProgName(aString, aRetName, SwGetPoolIdFromName::TxtColl); + aRet <<= aRetName.toString(); } break; case WID_PAGE_STYLE : { - OUString aString; + ProgName aString; if( rFootnoteInfo.KnowsPageDesc() ) { SwStyleNameMapper::FillProgName( @@ -469,13 +471,13 @@ uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName) aString, SwGetPoolIdFromName::PageDesc); } - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_ANCHOR_CHARACTER_STYLE: case WID_CHARACTER_STYLE: { - OUString aString; + ProgName aString; const SwCharFormat* pCharFormat = rFootnoteInfo.GetCurrentCharFormat(pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE); if( pCharFormat ) { @@ -484,7 +486,7 @@ uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName) aString, SwGetPoolIdFromName::ChrFmt); } - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_POSITION_END_OF_DOC: @@ -660,20 +662,21 @@ uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName) case WID_PARAGRAPH_STYLE : { SwTextFormatColl* pColl = rEndInfo.GetFootnoteTextColl(); - OUString aString; + OUString aName; if(pColl) - aString = pColl->GetName(); + aName = pColl->GetName(); + ProgName aString; SwStyleNameMapper::FillProgName( - aString, + aName, aString, SwGetPoolIdFromName::TxtColl); - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_PAGE_STYLE : { - OUString aString; + ProgName aString; if( rEndInfo.KnowsPageDesc() ) { SwStyleNameMapper::FillProgName( @@ -681,13 +684,13 @@ uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName) aString, SwGetPoolIdFromName::PageDesc); } - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_ANCHOR_CHARACTER_STYLE: case WID_CHARACTER_STYLE: { - OUString aString; + ProgName aString; const SwCharFormat* pCharFormat = rEndInfo.GetCurrentCharFormat( pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE ); if( pCharFormat ) { @@ -696,7 +699,7 @@ uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName) aString, SwGetPoolIdFromName::ChrFmt); } - aRet <<= aString; + aRet <<= aString.toString(); } break; } @@ -893,7 +896,7 @@ Any SwXLineNumberingProperties::getPropertyValue(const OUString& rPropertyName) break; case WID_CHARACTER_STYLE : { - OUString aString; + ProgName aString; // return empty string if no char format is set // otherwise it would be created here if(rInfo.HasCharFormat()) @@ -903,7 +906,7 @@ Any SwXLineNumberingProperties::getPropertyValue(const OUString& rPropertyName) aString, SwGetPoolIdFromName::ChrFmt); } - aRet <<= aString; + aRet <<= aString.toString(); } break; case WID_NUMBERING_TYPE : @@ -1239,7 +1242,7 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetNumberingRuleByIndex( CharStyleName = m_sNewCharStyleNames[nIndex]; } - OUString aUString; + ProgName aUString; if (m_pDocShell) // -> Chapter Numbering { // template name @@ -1302,7 +1305,7 @@ uno::Any SwXNumberingRules::GetNumberingRuleByIndex( CharStyleName = m_sNewCharStyleNames[nIndex]; } - OUString aUString; + ProgName aUString; if (m_pDocShell) // -> Chapter Numbering { // template name @@ -1347,7 +1350,7 @@ uno::Any SwXNumberingRules::GetNumberingRuleByIndex( uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat( const SwNumFormat& rFormat, OUString const& rCharFormatName, - OUString const*const pHeadingStyleName, OUString const & referer) + ProgName const*const pHeadingStyleName, OUString const & referer) { bool bChapterNum = pHeadingStyleName != nullptr; @@ -1382,9 +1385,9 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat aPropertyValues.push_back(comphelper::makePropertyValue(UNO_NAME_LEVEL_IS_LEGAL, true)); //char style name - aUString.clear(); - SwStyleNameMapper::FillProgName( rCharFormatName, aUString, SwGetPoolIdFromName::ChrFmt); - aPropertyValues.push_back(comphelper::makePropertyValue(u"CharStyleName"_ustr, aUString)); + ProgName aCharStyleProgName; + SwStyleNameMapper::FillProgName( rCharFormatName, aCharStyleProgName, SwGetPoolIdFromName::ChrFmt); + aPropertyValues.push_back(comphelper::makePropertyValue(u"CharStyleName"_ustr, aCharStyleProgName.toString())); //startvalue nINT16 = rFormat.GetStart(); @@ -1505,7 +1508,7 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat } else { - aUString = *pHeadingStyleName; + aUString = pHeadingStyleName->toString(); aPropertyValues.push_back(comphelper::makePropertyValue(UNO_NAME_HEADING_STYLE_NAME, aUString)); } @@ -1514,7 +1517,7 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat uno::Any SwXNumberingRules::GetPropertyForNumFormat( const SwNumFormat& rFormat, OUString const& rCharFormatName, - OUString const*const pHeadingStyleName, OUString const & referer, OUString const & rPropName) + ProgName const*const pHeadingStyleName, OUString const & referer, OUString const & rPropName) { bool bChapterNum = pHeadingStyleName != nullptr; @@ -1542,9 +1545,9 @@ uno::Any SwXNumberingRules::GetPropertyForNumFormat( return uno::Any(rFormat.GetIsLegal()); if (rPropName == u"CharStyleName"_ustr) { - OUString aUString; + ProgName aUString; SwStyleNameMapper::FillProgName( rCharFormatName, aUString, SwGetPoolIdFromName::ChrFmt); - return uno::Any(aUString); + return uno::Any(aUString.toString()); } if (rPropName == u"StartWith"_ustr) return uno::Any(sal_Int16(rFormat.GetStart())); @@ -1681,7 +1684,7 @@ uno::Any SwXNumberingRules::GetPropertyForNumFormat( else { if (rPropName == UNO_NAME_HEADING_STYLE_NAME) - return uno::Any(*pHeadingStyleName); + return uno::Any(pHeadingStyleName->toString()); } throw UnknownPropertyException(rPropName); @@ -1806,7 +1809,7 @@ void SwXNumberingRules::SetPropertiesToNumFormat( OUString uTmp; rProp.Value >>= uTmp; OUString sCharFormatName; - SwStyleNameMapper::FillUIName( uTmp, sCharFormatName, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::FillUIName( ProgName(uTmp), sCharFormatName, SwGetPoolIdFromName::ChrFmt ); SwDoc *const pLocalDoc = pDocShell ? pDocShell->GetDoc() : pDoc; if (sCharFormatName.isEmpty()) { @@ -1956,7 +1959,7 @@ void SwXNumberingRules::SetPropertiesToNumFormat( OUString uTmp; rProp.Value >>= uTmp; OUString sStyleName; - SwStyleNameMapper::FillUIName(uTmp, sStyleName, SwGetPoolIdFromName::TxtColl ); + SwStyleNameMapper::FillUIName(ProgName(uTmp), sStyleName, SwGetPoolIdFromName::TxtColl ); *pParagraphStyleName = sStyleName; } } @@ -2093,7 +2096,7 @@ void SwXNumberingRules::SetPropertiesToNumFormat( OUString uTmp; rProp.Value >>= uTmp; OUString sStyleName; - SwStyleNameMapper::FillUIName(uTmp, sStyleName, SwGetPoolIdFromName::TxtColl ); + SwStyleNameMapper::FillUIName(ProgName(uTmp), sStyleName, SwGetPoolIdFromName::TxtColl ); *pHeadingStyleName = sStyleName; } } @@ -2173,9 +2176,9 @@ void SwXNumberingRules::SetPropertiesToNumFormat( && !aFormat.GetCharFormat() && !SwXNumberingRules::isInvalidStyle(rCharStyleName)) { - OUString tmp; + ProgName tmp; SwStyleNameMapper::FillProgName(RES_POOLCHR_BULLET_LEVEL, tmp); - rCharStyleName = tmp; + rCharStyleName = tmp.toString(); } if(bWrongArg) @@ -2320,17 +2323,17 @@ OUString SwXNumberingRules::getName() { if(m_pNumRule) { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(m_pNumRule->GetName(), aString, SwGetPoolIdFromName::NumRule ); - return aString; + return aString.toString(); } // consider chapter numbering <SwXNumberingRules> if ( m_pDocShell ) { - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName( m_pDocShell->GetDoc()->GetOutlineNumRule()->GetName(), aString, SwGetPoolIdFromName::NumRule ); - return aString; + return aString.toString(); } return m_sCreatedNumRuleName; } diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx index 1209470951bb..791b5ef41050 100644 --- a/sw/source/core/unocore/unostyle.cxx +++ b/sw/source/core/unocore/unostyle.cxx @@ -128,6 +128,7 @@ #include <string_view> #include <limits> #include <unotxdoc.hxx> +#include <names.hxx> using namespace css; using namespace css::io; @@ -362,8 +363,9 @@ sal_Int32 StyleFamilyEntry::GetCountOrName<SfxStyleFamily::Cell>(const SwDoc& rD const sal_Int32 nAutoFormat = nIndex / rTableTemplateMap.size(); const sal_Int32 nBoxFormat = rTableTemplateMap[nIndex % rTableTemplateMap.size()]; const SwTableAutoFormat& rTableFormat = rAutoFormats[nAutoFormat]; - SwStyleNameMapper::FillProgName(rTableFormat.GetName(), *pString, SwGetPoolIdFromName::TabStyle); - *pString += rTableFormat.GetTableTemplateCellSubName(rTableFormat.GetBoxFormat(nBoxFormat)); + ProgName aProgName; + SwStyleNameMapper::FillProgName(rTableFormat.GetName(), aProgName, SwGetPoolIdFromName::TabStyle); + *pString = aProgName.toString() + rTableFormat.GetTableTemplateCellSubName(rTableFormat.GetBoxFormat(nBoxFormat)); } else *pString = rDoc.GetCellStyles()[nIndex-nUsedCellStylesCount].GetName(); @@ -913,13 +915,13 @@ uno::Any SwXStyleFamily::getByIndex(sal_Int32 nIndex) if(!m_pBasePool) throw uno::RuntimeException(); - OUString sStyleProgName; + ProgName sStyleProgName; try { SwStyleNameMapper::FillProgName(m_rEntry.translateIndex(nIndex), sStyleProgName); } catch(...) {} if (!sStyleProgName.isEmpty()) - return getByName(sStyleProgName); + return getByName(sStyleProgName.toString()); OUString sStyleUIName; GetCountOrName(&sStyleUIName, nIndex); @@ -965,7 +967,7 @@ rtl::Reference<SwXBaseStyle> SwXStyleFamily::getStyleByName(const OUString& rPro if(!m_pBasePool) throw uno::RuntimeException(); OUString sStyleName; - SwStyleNameMapper::FillUIName(rProgName, sStyleName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sStyleName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sStyleName, m_rEntry.family()); if(!pBase) throw container::NoSuchElementException(rProgName); @@ -1010,9 +1012,9 @@ uno::Sequence<OUString> SwXStyleFamily::getElementNames() std::unique_ptr<SfxStyleSheetIterator> pIt = m_pBasePool->CreateIterator(m_rEntry.family()); for (SfxStyleSheetBase* pStyle = pIt->First(); pStyle; pStyle = pIt->Next()) { - OUString sName; + ProgName sName; SwStyleNameMapper::FillProgName(pStyle->GetName(), sName, m_rEntry.poolId()); - vRet.push_back(sName); + vRet.push_back(sName.toString()); } return comphelper::containerToSequence(vRet); } @@ -1023,7 +1025,7 @@ sal_Bool SwXStyleFamily::hasByName(const OUString& rProgName) if(!m_pBasePool) throw uno::RuntimeException(); OUString sStyleName; - SwStyleNameMapper::FillUIName(rProgName, sStyleName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sStyleName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sStyleName, m_rEntry.family()); return nullptr != pBase; } @@ -1034,7 +1036,7 @@ void SwXStyleFamily::insertStyleByName(const OUString& rProgName, const rtl::Ref if(!m_pBasePool) throw uno::RuntimeException(); OUString sStyleName; - SwStyleNameMapper::FillUIName(rProgName, sStyleName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sStyleName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sStyleName, m_rEntry.family()); if (pBase) throw container::ElementExistException(); @@ -1047,7 +1049,7 @@ void SwXStyleFamily::insertByName(const OUString& rProgName, const uno::Any& rEl if(!m_pBasePool) throw uno::RuntimeException(); OUString sStyleName; - SwStyleNameMapper::FillUIName(rProgName, sStyleName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sStyleName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sStyleName, m_rEntry.family()); if (pBase) throw container::ElementExistException(); @@ -1110,7 +1112,7 @@ void SwXStyleFamily::replaceByName(const OUString& rProgName, const uno::Any& rE if(!m_pBasePool) throw uno::RuntimeException(); OUString sStyleName; - SwStyleNameMapper::FillUIName(rProgName, sStyleName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sStyleName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sStyleName, m_rEntry.family()); // replacements only for userdefined styles if(!pBase) @@ -1171,7 +1173,7 @@ void SwXStyleFamily::removeByName(const OUString& rProgName) if(!m_pBasePool) throw uno::RuntimeException(); OUString sName; - SwStyleNameMapper::FillUIName(rProgName, sName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sName, m_rEntry.poolId()); SfxStyleSheetBase* pBase = m_pBasePool->Find(sName, m_rEntry.family()); if(!pBase) throw container::NoSuchElementException(); @@ -1391,17 +1393,17 @@ OUString SwXStyle::getName() SolarMutexGuard aGuard; if(!m_pBasePool) { - OUString ret; + ProgName ret; SwStyleNameMapper::FillProgName(m_sStyleUIName, ret, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); - return ret; + return ret.toString(); } SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleUIName, m_rEntry.family()); SAL_WARN_IF(!pBase, "sw.uno", "where is the style?"); if(!pBase) throw uno::RuntimeException(); - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(pBase->GetName(), aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.family())); - return aString; + return aString.toString(); } void SwXStyle::setName(const OUString& rProgName) @@ -1411,7 +1413,7 @@ void SwXStyle::setName(const OUString& rProgName) { // it looks like a descriptor style with a built-in name cannot be // inserted into the document anyway - just convert name for consistency - SwStyleNameMapper::FillUIName(rProgName, m_sStyleUIName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), m_sStyleUIName, m_rEntry.poolId()); return; } SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleUIName, m_rEntry.family()); @@ -1420,7 +1422,7 @@ void SwXStyle::setName(const OUString& rProgName) throw uno::RuntimeException(); OUString sUIName; // conversion should actually be irrelevant due to IsUserDefined() check - SwStyleNameMapper::FillUIName(rProgName, sUIName, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sUIName, m_rEntry.poolId()); rtl::Reference<SwDocStyleSheet> xTmp(new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase))); if (!xTmp->SetName(sUIName)) throw uno::RuntimeException(); @@ -1449,27 +1451,27 @@ sal_Bool SwXStyle::isInUse() OUString SwXStyle::getParentStyle() { SolarMutexGuard aGuard; + ProgName ret; if(!m_pBasePool) { if(!m_bIsDescriptor) throw uno::RuntimeException(); - OUString ret; SwStyleNameMapper::FillProgName(m_sParentStyleUIName, ret, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); - return ret; + return ret.toString(); } SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleUIName, m_rEntry.family()); OUString aString; if(pBase) aString = pBase->GetParent(); - SwStyleNameMapper::FillProgName(aString, aString, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); - return aString; + SwStyleNameMapper::FillProgName(aString, ret, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); + return ret.toString(); } void SwXStyle::setParentStyle(const OUString& rParentStyleProgName) { SolarMutexGuard aGuard; OUString sParentStyle; - SwStyleNameMapper::FillUIName(rParentStyleProgName, sParentStyle, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); + SwStyleNameMapper::FillUIName(ProgName(rParentStyleProgName), sParentStyle, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); if(!m_pBasePool) { if(!m_bIsDescriptor) @@ -1782,7 +1784,7 @@ void SwXStyle::SetPropertyValue<FN_UNO_FOLLOW_STYLE>(const SfxItemPropertyMapEnt return; const auto sValue(rValue.get<OUString>()); OUString aString; - SwStyleNameMapper::FillUIName(sValue, aString, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(sValue), aString, m_rEntry.poolId()); o_rStyleBase.getNewBase()->SetFollow(aString); } @@ -1796,7 +1798,7 @@ void SwXStyle::SetPropertyValue<FN_UNO_LINK_STYLE>(const SfxItemPropertyMapEntry return; const auto sValue(rValue.get<OUString>()); OUString aString; - SwStyleNameMapper::FillUIName(sValue, aString, m_rEntry.poolId()); + SwStyleNameMapper::FillUIName(ProgName(sValue), aString, m_rEntry.poolId()); o_rStyleBase.getNewBase()->SetLink(aString); } @@ -1819,7 +1821,7 @@ void SwXStyle::SetPropertyValue<sal_uInt16(RES_PAGEDESC)>(const SfxItemPropertyM pNewDesc.reset(new SwFormatPageDesc); const auto sValue(rValue.get<OUString>()); OUString sDescName; - SwStyleNameMapper::FillUIName(sValue, sDescName, SwGetPoolIdFromName::PageDesc); + SwStyleNameMapper::FillUIName(ProgName(sValue), sDescName, SwGetPoolIdFromName::PageDesc); if(pNewDesc->GetPageDesc() && pNewDesc->GetPageDesc()->GetName() == sDescName) return; if(sDescName.isEmpty()) @@ -1878,7 +1880,7 @@ void SwXStyle::SetPropertyValue<FN_UNO_PARA_STYLE_CONDITIONS>(const SfxItemPrope const OUString sValue(rNamedValue.Value.get<OUString>()); // get UI style name from programmatic style name OUString aStyleName; - SwStyleNameMapper::FillUIName(sValue, aStyleName, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); + SwStyleNameMapper::FillUIName(ProgName(sValue), aStyleName, lcl_GetSwEnumFromSfxEnum(m_rEntry.family())); // check for correct context and style name const auto nIdx(GetCommandContextIndex(rNamedValue.Name)); @@ -1922,7 +1924,7 @@ void SwXStyle::SetPropertyValue<SID_SWREGISTER_COLLECTION>(const SfxItemProperty aReg.SetWhich(SID_SWREGISTER_MODE); o_rStyleBase.GetItemSet().Put(aReg); OUString aString; - SwStyleNameMapper::FillUIName(sName, aString, SwGetPoolIdFromName::TxtColl); + SwStyleNameMapper::FillUIName(ProgName(sName), aString, SwGetPoolIdFromName::TxtColl); o_rStyleBase.GetItemSet().Put(SfxStringItem(SID_SWREGISTER_COLLECTION, aString ) ); } template<> @@ -1940,7 +1942,7 @@ void SwXStyle::SetPropertyValue<sal_uInt16(RES_TXTATR_CJK_RUBY)>(const SfxItemPr else pRuby.reset(new SwFormatRuby(OUString())); OUString sStyle; - SwStyleNameMapper::FillUIName(sValue, sStyle, SwGetPoolIdFromName::ChrFmt); + SwStyleNameMapper::FillUIName(ProgName(sValue), sStyle, SwGetPoolIdFromName::ChrFmt); pRuby->SetCharFormatName(sStyle); pRuby->SetCharFormatId(0); if(!sValue.isEmpty()) @@ -1969,7 +1971,7 @@ void SwXStyle::SetPropertyValue<sal_uInt16(RES_PARATR_DROP)>(const SfxItemProper pDrop.reset(new SwFormatDrop); const auto sValue(rValue.get<OUString>()); OUString sStyle; - SwStyleNameMapper::FillUIName(sValue, sStyle, SwGetPoolIdFromName::ChrFmt); + SwStyleNameMapper::FillUIName(ProgName(sValue), sStyle, SwGetPoolIdFromName::ChrFmt); SwDocStyleSheet* pStyle = nullptr; if (SwDocShell* pShell = m_pDoc->GetDocShell()) pStyle = static_cast<SwDocStyleSheet*>(pShell->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Char)); @@ -2190,9 +2192,9 @@ template<> uno::Any SwXStyle::GetStyleProperty<FN_UNO_FOLLOW_STYLE>(const SfxItemPropertyMapEntry&, const SfxItemPropertySet&, SwStyleBase_Impl& rBase) { PrepareStyleBase(rBase); - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(rBase.getNewBase()->GetFollow(), aString, lcl_GetSwEnumFromSfxEnum(GetFamily())); - return uno::Any(aString); + return uno::Any(aString.toString()); } template <> @@ -2201,10 +2203,10 @@ uno::Any SwXStyle::GetStyleProperty<FN_UNO_LINK_STYLE>(const SfxItemPropertyMapE SwStyleBase_Impl& rBase) { PrepareStyleBase(rBase); - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(rBase.getNewBase()->GetLink(), aString, lcl_GetSwEnumFromSfxEnum(GetFamily())); - return uno::Any(aString); + return uno::Any(aString.toString()); } template<> @@ -2221,9 +2223,9 @@ uno::Any SwXStyle::GetStyleProperty<sal_uInt16(RES_PAGEDESC)>(const SfxItemPrope const SwPageDesc* pDesc = pItem->GetPageDesc(); if(!pDesc) return uno::Any(); - OUString aString; + ProgName aString; SwStyleNameMapper::FillProgName(pDesc->GetName(), aString, SwGetPoolIdFromName::PageDesc); - return uno::Any(aString); + return uno::Any(aString.toString()); } template<> uno::Any SwXStyle::GetStyleProperty<FN_UNO_IS_AUTO_UPDATE>(const SfxItemPropertyMapEntry&, const SfxItemPropertySet&, SwStyleBase_Impl& rBase) @@ -2265,9 +2267,10 @@ uno::Any SwXStyle::GetStyleProperty<FN_UNO_PARA_STYLE_CONDITIONS>(const SfxItemP if(!pCond || !pCond->GetTextFormatColl()) continue; // get programmatic style name from UI style name - OUString aStyleName = pCond->GetTextFormatColl()->GetName(); - SwStyleNameMapper::FillProgName(aStyleName, aStyleName, lcl_GetSwEnumFromSfxEnum(GetFamily())); - pSeq[n].Value <<= aStyleName; + OUString aStyleUIName = pCond->GetTextFormatColl()->GetName(); + ProgName aStyleProgName; + SwStyleNameMapper::FillProgName(aStyleUIName, aStyleProgName, lcl_GetSwEnumFromSfxEnum(GetFamily())); + pSeq[n].Value <<= aStyleProgName.toString(); } } return uno::Any(aSeq); @@ -2298,9 +2301,9 @@ uno::Any SwXStyle::GetStyleProperty<SID_SWREGISTER_COLLECTION>(const SfxItemProp const SwTextFormatColl* pCol = pPageDesc->GetRegisterFormatColl(); if(!pCol) return uno::Any(OUString()); - OUString aName; + ProgName aName; SwStyleNameMapper::FillProgName(pCol->GetName(), aName, SwGetPoolIdFromName::TxtColl); - return uno::Any(aName); + return uno::Any(aName.toString()); } template<> uno::Any SwXStyle::GetStyleProperty<sal_uInt16(RES_BACKGROUND)>(const SfxItemPropertyMapEntry& rEntry, const SfxItemPropertySet&, SwStyleBase_Impl& rBase) @@ -4592,16 +4595,16 @@ void SAL_CALL SwXTextTableStyle::setParentStyle(const OUString& /*aParentStyle*/ OUString SAL_CALL SwXTextTableStyle::getName() { SolarMutexGuard aGuard; - OUString sProgName; + ProgName sProgName; SwStyleNameMapper::FillProgName(m_pTableAutoFormat->GetName(), sProgName, SwGetPoolIdFromName::TabStyle); - return sProgName; + return sProgName.toString(); } void SAL_CALL SwXTextTableStyle::setName(const OUString& rProgName) { SolarMutexGuard aGuard; OUString sUIName; - SwStyleNameMapper::FillUIName(rProgName, sUIName, SwGetPoolIdFromName::TabStyle); + SwStyleNameMapper::FillUIName(ProgName(rProgName), sUIName, SwGetPoolIdFromName::TabStyle); m_pTableAutoFormat->SetName(sUIName); } @@ -4815,14 +4818,14 @@ SwBoxAutoFormat* SwXTextCellStyle::GetBoxAutoFormat(SwDocShell* pDocShell, std:: if (!pBoxAutoFormat) { sal_Int32 nTemplateIndex; - OUString sParentName; + OUString sParentProgName; std::u16string_view sCellSubName; size_t nSeparatorIndex = sName.rfind('.'); if (nSeparatorIndex == std::u16string_view::npos) return nullptr; - sParentName = sName.substr(0, nSeparatorIndex); + sParentProgName = sName.substr(0, nSeparatorIndex); sCellSubName = sName.substr(nSeparatorIndex+1); nTemplateIndex = o3tl::toInt32(sCellSubName)-1; // -1 because cell styles names start from 1, but internally are indexed from 0 if (0 > nTemplateIndex) @@ -4832,13 +4835,14 @@ SwBoxAutoFormat* SwXTextCellStyle::GetBoxAutoFormat(SwDocShell* pDocShell, std:: if (rTableTemplateMap.size() <= o3tl::make_unsigned(nTemplateIndex)) return nullptr; - SwStyleNameMapper::FillUIName(sParentName, sParentName, SwGetPoolIdFromName::TabStyle); - SwTableAutoFormat* pTableAutoFormat = pDocShell->GetDoc()->GetTableStyles().FindAutoFormat(sParentName); + OUString sParentUIName; + SwStyleNameMapper::FillUIName(ProgName(sParentProgName), sParentUIName, SwGetPoolIdFromName::TabStyle); + SwTableAutoFormat* pTableAutoFormat = pDocShell->GetDoc()->GetTableStyles().FindAutoFormat(sParentUIName); if (!pTableAutoFormat) return nullptr; if (pParentName) - *pParentName = sParentName; + *pParentName = sParentUIName; sal_uInt32 nBoxIndex = rTableTemplateMap[nTemplateIndex]; pBoxAutoFormat = &pTableAutoFormat->GetBoxFormat(nBoxIndex); } @@ -4903,10 +4907,10 @@ sal_Bool SAL_CALL SwXTextCellStyle::isInUse() if (!xTableStyles.is()) return false; - OUString sParentStyle; + ProgName sParentStyle; SwStyleNameMapper::FillProgName(m_sTableStyleUIName, sParentStyle, SwGetPoolIdFromName::TabStyle); uno::Reference<style::XStyle> xStyle; - xTableStyles->getByName(sParentStyle) >>= xStyle; + xTableStyles->getByName(sParentStyle.toString()) >>= xStyle; if (!xStyle.is()) return false; @@ -4942,9 +4946,9 @@ OUString SAL_CALL SwXTextCellStyle::getName() } else { - OUString sParentStyle; + ProgName sParentStyle; SwStyleNameMapper::FillProgName(m_sTableStyleUIName, sParentStyle, SwGetPoolIdFromName::TabStyle); - sName = sParentStyle + pTableFormat->GetTableTemplateCellSubName(*m_pBoxAutoFormat); + sName = sParentStyle.toString() + pTableFormat->GetTableTemplateCellSubName(*m_pBoxAutoFormat); } } else diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx index ce8d4c24f966..aceb8e1da977 100644 --- a/sw/source/core/unocore/unotbl.cxx +++ b/sw/source/core/unocore/unotbl.cxx @@ -108,6 +108,7 @@ #include <fesh.hxx> #include <itabenum.hxx> #include <frameformats.hxx> +#include <names.hxx> #include <o3tl/string_view.hxx> using namespace ::com::sun::star; @@ -254,8 +255,9 @@ static void lcl_SetSpecialProperty(SwFrameFormat* pFormat, const SwPageDesc* pDesc = nullptr; if (!sPageStyle.isEmpty()) { - SwStyleNameMapper::FillUIName(sPageStyle, sPageStyle, SwGetPoolIdFromName::PageDesc); - pDesc = SwPageDesc::GetByName(*pFormat->GetDoc(), sPageStyle); + OUString sPageStyleUIName; + SwStyleNameMapper::FillUIName(ProgName(sPageStyle), sPageStyleUIName, SwGetPoolIdFromName::PageDesc); + pDesc = SwPageDesc::GetByName(*pFormat->GetDoc(), sPageStyleUIName); } SwFormatPageDesc aDesc( pDesc ); pFormat->GetDoc()->SetAttr(aDesc, *pFormat); @@ -303,7 +305,7 @@ static uno::Any lcl_GetSpecialProperty(SwFrameFormat* pFormat, const SfxItemProp { const SwPageDesc* pDsc = pItem->GetPageDesc(); if(pDsc) - return uno::Any(SwStyleNameMapper::GetProgName(pDsc->GetName(), SwGetPoolIdFromName::PageDesc )); + return uno::Any(SwStyleNameMapper::GetProgName(pDsc->GetName(), SwGetPoolIdFromName::PageDesc ).toString()); } return uno::Any(OUString()); } @@ -1711,9 +1713,9 @@ uno::Any SwXTextTableCursor::getPropertyValue(const OUString& rPropertyName) auto pFormat(SwUnoCursorHelper::GetCurTextFormatColl(rUnoCursor, false)); if(pFormat) { - OUString ret; + ProgName ret; SwStyleNameMapper::FillProgName(pFormat->GetName(), ret, SwGetPoolIdFromName::TxtColl); - aResult <<= ret; + aResult <<= ret.toString(); } } break; @@ -1832,11 +1834,12 @@ void SwTableProperties_Impl::ApplyTableAttr(const SwTable& rTable, SwDoc& rDoc) pPage = GetProperty(RES_PAGEDESC, 0xff); if (pPage) { - OUString sPageStyle = pPage->get<OUString>(); - if(!sPageStyle.isEmpty()) + OUString sPageStyleProgName = pPage->get<OUString>(); + if(!sPageStyleProgName.isEmpty()) { - SwStyleNameMapper::FillUIName(sPageStyle, sPageStyle, SwGetPoolIdFromName::PageDesc); - const SwPageDesc* pDesc = SwPageDesc::GetByName(rDoc, sPageStyle); + OUString sPageStyleUIName; + SwStyleNameMapper::FillUIName(ProgName(sPageStyleProgName), sPageStyleUIName, SwGetPoolIdFromName::PageDesc); + const SwPageDesc* pDesc = SwPageDesc::GetByName(rDoc, sPageStyleUIName); if(pDesc) { SwFormatPageDesc aDesc(pDesc); @@ -2700,10 +2703,11 @@ void SwXTextTable::setPropertyValue(const OUString& rPropertyName, const uno::An case FN_UNO_TABLE_TEMPLATE_NAME: { SwTable* pTable = SwTable::FindTable(pFormat); - OUString sName; - if (!(aValue >>= sName)) + OUString sProgName; + if (!(aValue >>= sProgName)) break; - SwStyleNameMapper::FillUIName(sName, sName, SwGetPoolIdFromName::TabStyle); + OUString sName; + SwStyleNameMapper::FillUIName(ProgName(sProgName), sName, SwGetPoolIdFromName::TabStyle); pTable->SetTableStyleName(sName); SwDoc* pDoc = pFormat->GetDoc(); if (SwFEShell* pFEShell = pDoc->GetDocShell()->GetFEShell()) @@ -2947,9 +2951,9 @@ uno::Any SwXTextTable::getPropertyValue(const OUString& rPropertyName) case FN_UNO_TABLE_TEMPLATE_NAME: { SwTable* pTable = SwTable::FindTable(pFormat); - OUString sName; + ProgName sName; SwStyleNameMapper::FillProgName(pTable->GetTableStyleName(), sName, SwGetPoolIdFromName::TabStyle); - aRet <<= sName; + aRet <<= sName.toString(); } break; @@ -3492,12 +3496,12 @@ uno::Any SAL_CALL SwXCellRange::getPropertyValue(const OUString& rPropertyName) { SwFormatColl *const pTmpFormat = SwUnoCursorHelper::GetCurTextFormatColl(*m_pImpl->m_pTableCursor, false); - OUString sRet; + ProgName sRet; if (pTmpFormat) { SwStyleNameMapper::FillProgName(pTmpFormat->GetName(), sRet, SwGetPoolIdFromName::TxtColl); } - aRet <<= sRet; + aRet <<= sRet.toString(); } break; case FN_UNO_RANGE_ROW_LABEL: diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 9e3820953de6..e8db55ee359c 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -682,7 +682,7 @@ const SwRect& SwViewShell::VisArea() const return comphelper::LibreOfficeKit::isActive()? GetLayout()->getFrameArea(): maVisArea; } -void SwViewShell::MakeVisible( const SwRect &rRect ) +void SwViewShell::MakeVisible( const SwRect &rRect, ScrollSizeMode eScrollSizeMode ) { if ( !(!VisArea().Contains( rRect ) || IsScrollMDI( this, rRect ) || GetCareDialog(*this)) ) return; @@ -698,7 +698,7 @@ void SwViewShell::MakeVisible( const SwRect &rRect ) do{ nOldH = pRoot->getFrameArea().Height(); SwViewShell::StartAction(); - ScrollMDI( this, rRect, USHRT_MAX, USHRT_MAX ); + ScrollMDI( this, rRect, USHRT_MAX, USHRT_MAX, eScrollSizeMode ); SwViewShell::EndAction(); // DO NOT call virtual here! } while( nOldH != pRoot->getFrameArea().Height() && nLoopCnt-- ); } diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx index 613a15df633b..2a40c099a393 100644 --- a/sw/source/core/view/vnew.cxx +++ b/sw/source/core/view/vnew.cxx @@ -104,7 +104,6 @@ void SwViewShell::Init( const SwViewOption *pNewOpt ) SAL_INFO( "sw.core", "View::Init - after InitPrt" ); if( GetWin() ) { - SwViewOption::Init( GetWin()->GetOutDev() ); GetWin()->GetOutDev()->SetFillColor(); GetWin()->SetBackground(); GetWin()->GetOutDev()->SetLineColor(); diff --git a/sw/source/filter/basflt/fltini.cxx b/sw/source/filter/basflt/fltini.cxx index 6e37bfb1ebb3..744ec4a1379d 100644 --- a/sw/source/filter/basflt/fltini.cxx +++ b/sw/source/filter/basflt/fltini.cxx @@ -121,22 +121,22 @@ Filters::~Filters() rEntry.pReader = nullptr; } } - msword_.release(); } #ifndef DISABLE_DYNLOADING oslGenericFunction Filters::GetMswordLibSymbol( const char *pSymbol ) { - if (!msword_.is()) + static ::osl::Module aModule; + if (!aModule.is()) { OUString url(u"$LO_LIB_DIR/" SVLIBRARY("msword") ""_ustr); rtl::Bootstrap::expandMacros(url); - bool ok = msword_.load( url, SAL_LOADMODULE_GLOBAL | SAL_LOADMODULE_LAZY ); + bool ok = aModule.load( url, SAL_LOADMODULE_GLOBAL | SAL_LOADMODULE_LAZY ); SAL_WARN_IF(!ok, "sw", "failed to load msword library"); } - if (msword_.is()) - return msword_.getFunctionSymbol( OUString::createFromAscii( pSymbol ) ); + if (aModule.is()) + return aModule.getFunctionSymbol( OUString::createFromAscii( pSymbol ) ); return nullptr; } @@ -627,7 +627,7 @@ Reader* GetRTFReader() { #ifndef DISABLE_DYNLOADING - FnGetReader pFunction = reinterpret_cast<FnGetReader>( SwGlobals::getFilters().GetMswordLibSymbol( "ImportRTF" ) ); + FnGetReader pFunction = reinterpret_cast<FnGetReader>( sw::Filters::GetMswordLibSymbol( "ImportRTF" ) ); if ( pFunction ) return (*pFunction)(); @@ -642,7 +642,7 @@ Reader* GetRTFReader() void GetRTFWriter( std::u16string_view rFltName, const OUString& rBaseURL, WriterRef& xRet ) { #ifndef DISABLE_DYNLOADING - FnGetWriter pFunction = reinterpret_cast<FnGetWriter>( SwGlobals::getFilters().GetMswordLibSymbol( "ExportRTF" ) ); + FnGetWriter pFunction = reinterpret_cast<FnGetWriter>( sw::Filters::GetMswordLibSymbol( "ExportRTF" ) ); if ( pFunction ) (*pFunction)( rFltName, rBaseURL, xRet ); @@ -656,7 +656,7 @@ void GetRTFWriter( std::u16string_view rFltName, const OUString& rBaseURL, Write Reader* GetWW8Reader() { #ifndef DISABLE_DYNLOADING - FnGetReader pFunction = reinterpret_cast<FnGetReader>( SwGlobals::getFilters().GetMswordLibSymbol( "ImportDOC" ) ); + FnGetReader pFunction = reinterpret_cast<FnGetReader>( sw::Filters::GetMswordLibSymbol( "ImportDOC" ) ); if ( pFunction ) return (*pFunction)(); @@ -670,7 +670,7 @@ Reader* GetWW8Reader() void GetWW8Writer( std::u16string_view rFltName, const OUString& rBaseURL, WriterRef& xRet ) { #ifndef DISABLE_DYNLOADING - FnGetWriter pFunction = reinterpret_cast<FnGetWriter>( SwGlobals::getFilters().GetMswordLibSymbol( "ExportDOC" ) ); + FnGetWriter pFunction = reinterpret_cast<FnGetWriter>( sw::Filters::GetMswordLibSymbol( "ExportDOC" ) ); if ( pFunction ) (*pFunction)( rFltName, rBaseURL, xRet ); @@ -684,7 +684,7 @@ void GetWW8Writer( std::u16string_view rFltName, const OUString& rBaseURL, Write Reader* GetDOCXReader() { #ifndef DISABLE_DYNLOADING - FnGetReader pFunction = reinterpret_cast<FnGetReader>( SwGlobals::getFilters().GetMswordLibSymbol( "ImportDOCX" ) ); + FnGetReader pFunction = reinterpret_cast<FnGetReader>( sw::Filters::GetMswordLibSymbol( "ImportDOCX" ) ); if ( pFunction ) return (*pFunction)(); @@ -701,7 +701,7 @@ typedef sal_uInt32 ( *GetSaveWarning )( SfxObjectShell& ); ErrCode SaveOrDelMSVBAStorage( SfxObjectShell& rDoc, SotStorage& rStor, bool bSaveInto, const OUString& rStorageName ) { #ifndef DISABLE_DYNLOADING - SaveOrDel pFunction = reinterpret_cast<SaveOrDel>( SwGlobals::getFilters().GetMswordLibSymbol( "SaveOrDelMSVBAStorage_ww8" ) ); + SaveOrDel pFunction = reinterpret_cast<SaveOrDel>( sw::Filters::GetMswordLibSymbol( "SaveOrDelMSVBAStorage_ww8" ) ); if( pFunction ) return ErrCode(pFunction( rDoc, rStor, bSaveInto, rStorageName )); return ERRCODE_NONE; @@ -713,7 +713,7 @@ ErrCode SaveOrDelMSVBAStorage( SfxObjectShell& rDoc, SotStorage& rStor, bool bSa ErrCode GetSaveWarningOfMSVBAStorage( SfxObjectShell &rDocS ) { #ifndef DISABLE_DYNLOADING - GetSaveWarning pFunction = reinterpret_cast<GetSaveWarning>( SwGlobals::getFilters().GetMswordLibSymbol( "GetSaveWarningOfMSVBAStorage_ww8" ) ); + GetSaveWarning pFunction = reinterpret_cast<GetSaveWarning>( sw::Filters::GetMswordLibSymbol( "GetSaveWarningOfMSVBAStorage_ww8" ) ); if( pFunction ) return ErrCode(pFunction( rDocS )); return ERRCODE_NONE; diff --git a/sw/source/filter/html/htmlctxt.cxx b/sw/source/filter/html/htmlctxt.cxx index 71ac0b067c53..e8ffc2c98848 100644 --- a/sw/source/filter/html/htmlctxt.cxx +++ b/sw/source/filter/html/htmlctxt.cxx @@ -478,7 +478,7 @@ bool SwHTMLParser::DoPositioning( SfxItemSet &rItemSet, // - there's a given width if( SwCSS1Parser::MayBePositioned( rPropInfo ) ) { - SfxItemSetFixed<RES_FRMATR_BEGIN, RES_FRMATR_END-1> aFrameItemSet( m_xDoc->GetAttrPool() ); + SfxItemSet aFrameItemSet(SfxItemSet::makeFixedSfxItemSet<RES_FRMATR_BEGIN, RES_FRMATR_END-1>(m_xDoc->GetAttrPool())); if( !IsNewDoc() ) Reader::ResetFrameFormatAttrs(aFrameItemSet ); @@ -801,8 +801,8 @@ void SwHTMLParser::SplitPREListingXMP( HTMLAttrContext *pCntxt ) SfxItemSet *HTMLAttrContext::GetFrameItemSet( SwDoc *pCreateDoc ) { if( !m_pFrameItemSet && pCreateDoc ) - m_pFrameItemSet = std::make_unique<SfxItemSetFixed<RES_FRMATR_BEGIN, RES_FRMATR_END-1>> - ( pCreateDoc->GetAttrPool() ); + m_pFrameItemSet = std::make_unique<SfxItemSet>(SfxItemSet::makeFixedSfxItemSet< + RES_FRMATR_BEGIN, RES_FRMATR_END-1>(pCreateDoc->GetAttrPool())); return m_pFrameItemSet.get(); } diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx index 96664b710f2a..03a07b4603a8 100644 --- a/sw/source/filter/html/htmltab.cxx +++ b/sw/source/filter/html/htmltab.cxx @@ -70,6 +70,7 @@ #include <tblafmt.hxx> #include <SwStyleNameMapper.hxx> #include <frameformats.hxx> +#include <names.hxx> #define NETSCAPE_DFLT_BORDER 1 #define NETSCAPE_DFLT_CELLSPACING 2 @@ -1484,7 +1485,7 @@ void HTMLTable::FixFrameFormat( SwTableBox *pBox, // the same. SwTableAutoFormatTable& rTable = m_pParser->GetDoc()->GetTableStyles(); SwTableAutoFormat* pTableFormat = rTable.FindAutoFormat( - SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_DEFAULT, OUString())); + SwStyleNameMapper::GetUIName(RES_POOLTABLESTYLE_DEFAULT, ProgName())); if (pTableFormat) { sal_uInt8 nPos = SwTableAutoFormat::CountPos(nCol, m_nCols, nRow, m_nRows); diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index 01b0bdd31fbe..617f2305bf05 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -40,6 +40,7 @@ #include <utility> #include <vcl/errinf.hxx> #include <svl/stritem.hxx> +#include <svl/itemiter.hxx> #include <vcl/imap.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> @@ -581,7 +582,11 @@ SvParserState SwHTMLParser::CallParser() m_xDoc->getIDocumentRedlineAccess().SplitRedline( aInsertionRangePam ); ::std::unique_ptr<SfxItemSet> pSet{new SfxItemSet(m_xDoc->GetAttrPool(), - svl::Items<RES_CHRATR_BEGIN, RES_CHRATR_END-1>)}; + svl::Items< RES_CHRATR_BEGIN, RES_CHRATR_END-1, + RES_PARATR_BEGIN, RES_PARATR_NUMRULE-1, + RES_PARATR_NUMRULE+1, RES_PARATR_CONNECT_BORDER, + RES_LR_SPACE, RES_UL_SPACE, + XATTR_FILL_FIRST, XATTR_FILL_LAST>)}; if (pPos->GetNode().GetTextNode()->GetParaAttr(*pSet, 0, 0, false, false)) { m_pTargetCharAttrs = std::move(pSet); @@ -4829,7 +4834,23 @@ void SwHTMLParser::SetTextCollAttrs( HTMLAttrContext *pContext ) if (m_pTargetCharAttrs) { std::unique_ptr<SfxItemSet> const pCharSet(new SfxItemSet(*m_pTargetCharAttrs)); - pCharSet->Differentiate(pCollToSet->GetAttrSet()); + // do not use SfxItemSet::Differentiate(), it doesn't compare values! + std::vector<sal_uInt16> clear; + for (SfxItemIter it{*pCharSet}; !it.IsAtEnd(); it.NextItem()) + { + SfxPoolItem const& rItem{*it.GetCurItem()}; + if (SfxPoolItem const*const pItem{pCollToSet->GetAttrSet().GetItem(rItem.Which(), true)}) + { + if (rItem == *pItem) + { + clear.emplace_back(rItem.Which()); + } + } + } + for (auto const it : clear) + { + pCharSet->ClearItem(it); + } m_xDoc->getIDocumentContentOperations().InsertItemSet(*m_pPam, *pCharSet); } diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 5fc619f3ecb2..b806e17b4a63 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -792,9 +792,10 @@ void SdtBlockHelper::WriteSdtBlock(const ::sax_fastparser::FSHelperPtr& pSeriali } if (m_nSdtPrToken == FSNS(XML_w, XML_date) || m_nSdtPrToken == FSNS(XML_w, XML_docPartObj) || m_nSdtPrToken == FSNS(XML_w, XML_docPartList) || m_nSdtPrToken == FSNS(XML_w14, XML_checkbox)) { - const uno::Sequence<xml::FastAttribute> aChildren = m_pTokenChildren->getFastAttributes(); - for (const auto& rChild : aChildren) - pSerializer->singleElement(rChild.Token, FSNS(XML_w, XML_val), rChild.Value); + for (auto& it : *m_pTokenChildren) + { + pSerializer->singleElement(it.getToken(), FSNS(XML_w, XML_val), it.toCString()); + } } pSerializer->endElement(m_nSdtPrToken); @@ -10087,13 +10088,13 @@ void DocxAttributeOutput::FormatTextGrid( const SwTextGridItem& rGrid ) switch ( rGrid.GetGridType( ) ) { default: - case GRID_NONE: + case SwTextGrid::NONE: sGridType = "default"; break; - case GRID_LINES_ONLY: + case SwTextGrid::LinesOnly: sGridType = "lines"; break; - case GRID_LINES_CHARS: + case SwTextGrid::LinesAndChars: if ( rGrid.IsSnapToChars( ) ) sGridType = "snapToChars"; else diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx index 6ab11f355a6e..75283447a5c9 100644 --- a/sw/source/filter/ww8/docxexport.cxx +++ b/sw/source/filter/ww8/docxexport.cxx @@ -1554,8 +1554,7 @@ void DocxExport::WriteGlossary() uno::Reference< xml::sax::XSAXSerializable > serializer( glossaryDocDom, uno::UNO_QUERY ); uno::Reference< xml::sax::XWriter > writer = xml::sax::Writer::create( comphelper::getProcessComponentContext() ); writer->setOutputStream( xOutputStream ); - serializer->serialize( uno::Reference< xml::sax::XDocumentHandler >( writer, uno::UNO_QUERY_THROW ), - uno::Sequence< beans::StringPair >() ); + serializer->serialize(writer, uno::Sequence< beans::StringPair >()); for (const uno::Sequence<beans::NamedValue>& glossaryElement : glossaryDomList) { @@ -1596,8 +1595,7 @@ void DocxExport::WriteGlossary() continue; // External relation, no stream to write uno::Reference< xml::sax::XSAXSerializable > gserializer( xDom, uno::UNO_QUERY ); writer->setOutputStream(GetFilter().openFragmentStream( "word/glossary/" + gTarget, contentType ) ); - gserializer->serialize( uno::Reference< xml::sax::XDocumentHandler >( writer, uno::UNO_QUERY_THROW ), - uno::Sequence< beans::StringPair >() ); + gserializer->serialize(writer, uno::Sequence< beans::StringPair >()); } } @@ -1719,8 +1717,7 @@ void DocxExport::WriteCustomXml() writer->setOutputStream(xMemStream->getOutputStream()); - serializer->serialize(uno::Reference< xml::sax::XDocumentHandler >(writer, uno::UNO_QUERY_THROW), - uno::Sequence< beans::StringPair >()); + serializer->serialize(writer, uno::Sequence< beans::StringPair >()); uno::Reference< io::XStream > xXSLTInStream = xMemStream; uno::Reference< io::XStream > xXSLTOutStream; @@ -1751,8 +1748,7 @@ void DocxExport::WriteCustomXml() { writer->setOutputStream(xOutStream); - serializer->serialize(uno::Reference< xml::sax::XDocumentHandler >(writer, uno::UNO_QUERY_THROW), - uno::Sequence< beans::StringPair >()); + serializer->serialize(writer, uno::Sequence< beans::StringPair >()); } } @@ -1762,8 +1758,7 @@ void DocxExport::WriteCustomXml() uno::Reference< xml::sax::XWriter > writer = xml::sax::Writer::create( comphelper::getProcessComponentContext() ); writer->setOutputStream( GetFilter().openFragmentStream( "customXml/itemProps"+OUString::number(j+1)+".xml", u"application/vnd.openxmlformats-officedocument.customXmlProperties+xml"_ustr ) ); - serializer->serialize( uno::Reference< xml::sax::XDocumentHandler >( writer, uno::UNO_QUERY_THROW ), - uno::Sequence< beans::StringPair >() ); + serializer->serialize(writer, uno::Sequence< beans::StringPair >()); // Adding itemprops's relationship entry to item.xml.rels file m_rFilter.addRelation( GetFilter().openFragmentStream( "customXml/item"+OUString::number(j+1)+".xml", @@ -2161,7 +2156,6 @@ sal_Int32 DocxExport::getWordCompatibilityMode() // Keep the imported compatibility mode (unless it is unknown / unsupported) const bool bPreventRoundTrippingUnknownMode = nImportedWordCompatbilityMode > m_nWordCompatibilityMode; - assert(!bPreventRoundTrippingUnknownMode && "create a new meta bug for new compat mode"); if (nImportedWordCompatbilityMode > 0 && !bPreventRoundTrippingUnknownMode) m_nWordCompatibilityMode = nImportedWordCompatbilityMode; } diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index ba29594321c9..a2b5897ff195 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -3463,6 +3463,17 @@ void MSWordExportBase::OutputSectionNode( const SwSectionNode& rSectionNode ) } } +// don't need to broadcast modification +static void SetAttrNoBroadcast(SwContentNode& rNode, const SfxPoolItem& rItem) +{ + const bool bModifyNotifyDisabled = rNode.IsModifyLocked(); + if (!bModifyNotifyDisabled) + rNode.LockModify(); + rNode.SetAttr(rItem); + if (!bModifyNotifyDisabled) + rNode.UnlockModify(); +} + // tdf#121561: During export of the ODT file with TOC inside into DOCX format, // the TOC title is being exported as regular paragraph. We should surround it // with <w:sdt><w:sdtPr><w:sdtContent> to make it (TOC title) recognizable @@ -3524,12 +3535,8 @@ void MSWordExportBase::UpdateTocSectionNodeProperties(const SwSectionNode& rSect SfxGrabBagItem aGrabBag(RES_PARATR_GRABBAG, std::map<OUString, css::uno::Any>{{ u"SdtPr"_ustr, uno::Any(aSdtPrPropertyValues) }}); - // create temp attr set - SwAttrSet aSet(pNode->GetSwAttrSet()); - aSet.Put(aGrabBag); - // set new attr to node - const_cast<SwContentNode*>(pNode)->SetAttr(aSet); + SetAttrNoBroadcast(*const_cast<SwContentNode*>(pNode), aGrabBag); } // set flag for the next node after TOC @@ -3544,12 +3551,8 @@ void MSWordExportBase::UpdateTocSectionNodeProperties(const SwSectionNode& rSect SfxGrabBagItem aGrabBag(RES_PARATR_GRABBAG, std::map<OUString, css::uno::Any>{{u"ParaSdtEndBefore"_ustr, uno::Any(true)}}); - // create temp attr set - SwAttrSet aSet(pNodeAfterToc->GetSwAttrSet()); - aSet.Put(aGrabBag); - // set new attr to node - const_cast<SwContentNode*>(pNodeAfterToc)->SetAttr(aSet); + SetAttrNoBroadcast(*const_cast<SwContentNode*>(pNodeAfterToc), aGrabBag); } } } diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 3fbd6d4f4bbd..53a043616d34 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -4301,13 +4301,13 @@ void WW8AttributeOutput::FormatTextGrid( const SwTextGridItem& rGrid ) default: OSL_FAIL("Unknown grid type"); [[fallthrough]]; - case GRID_NONE: + case SwTextGrid::NONE: nGridType = 0; break; - case GRID_LINES_ONLY: + case SwTextGrid::LinesOnly: nGridType = 2; break; - case GRID_LINES_CHARS: + case SwTextGrid::LinesAndChars: if ( rGrid.IsSnapToChars() ) nGridType = 3; else diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index eb8515732370..ee830b3a43bd 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -1885,8 +1885,6 @@ void SwWW8ImplReader::ImportDop() // tdf#155229 calculate minimum row height including horizontal border width m_rDoc.getIDocumentSettingAccess().set( DocumentSettingId::MIN_ROW_HEIGHT_INCL_BORDER, true); - // tdf#129808 use Word-compatible CJK text grid metrics - m_rDoc.getIDocumentSettingAccess().set(DocumentSettingId::MS_WORD_COMP_GRID_METRICS, true); // Import Default Tabs tools::Long nDefTabSiz = m_xWDop->dxaTab; diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index 8c18d83b3393..eecfb9bd3618 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -74,6 +74,7 @@ #include <fmtclds.hxx> #include <poolfmt.hxx> #include <SwStyleNameMapper.hxx> +#include <names.hxx> #include "ww8scan.hxx" #include "ww8par.hxx" @@ -2314,7 +2315,7 @@ eF_ResT SwWW8ImplReader::Read_F_PgRef( WW8FieldDesc*, OUString& rStr ) SwFormatINetFormat aURL( sURL, u""_ustr ); static constexpr OUString sLinkStyle(u"Index Link"_ustr); const sal_uInt16 nPoolId = - SwStyleNameMapper::GetPoolIdFromProgName( sLinkStyle, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::GetPoolIdFromProgName( ProgName(sLinkStyle), SwGetPoolIdFromName::ChrFmt ); aURL.SetVisitedFormatAndId( sLinkStyle, nPoolId); aURL.SetINetFormatAndId( sLinkStyle, nPoolId ); m_xCtrlStck->NewAttr( *m_pPaM->GetPoint(), aURL ); @@ -3633,7 +3634,7 @@ eF_ResT SwWW8ImplReader::Read_F_Hyperlink( WW8FieldDesc* /*pF*/, OUString& rStr { OUString sLinkStyle(u"Index Link"_ustr); sal_uInt16 nPoolId = - SwStyleNameMapper::GetPoolIdFromProgName( sLinkStyle, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::GetPoolIdFromProgName( ProgName(sLinkStyle), SwGetPoolIdFromName::ChrFmt ); aURL.SetVisitedFormatAndId( sLinkStyle, nPoolId ); aURL.SetINetFormatAndId( sLinkStyle, nPoolId ); } diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 4ba3fb42a401..5423a52f4043 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -236,26 +236,26 @@ void SwWW8ImplReader::SetDocumentGrid(SwFrameFormat &rFormat, const wwSection &r SwTextGridItem aGrid; aGrid.SetDisplayGrid(false); aGrid.SetPrintGrid(false); - SwTextGrid eType=GRID_NONE; + SwTextGrid eType=SwTextGrid::NONE; switch (rSection.maSep.clm) { case 0: - eType = GRID_NONE; + eType = SwTextGrid::NONE; break; default: OSL_ENSURE(false, "Unknown grid type"); [[fallthrough]]; case 3: - eType = GRID_LINES_CHARS; + eType = SwTextGrid::LinesAndChars; aGrid.SetSnapToChars(true); break; case 1: - eType = GRID_LINES_CHARS; + eType = SwTextGrid::LinesAndChars; aGrid.SetSnapToChars(false); break; case 2: - eType = GRID_LINES_ONLY; + eType = SwTextGrid::LinesOnly; break; } diff --git a/sw/source/filter/xml/swxml.cxx b/sw/source/filter/xml/swxml.cxx index e66af9c1a064..aea07457e45a 100644 --- a/sw/source/filter/xml/swxml.cxx +++ b/sw/source/filter/xml/swxml.cxx @@ -77,6 +77,7 @@ #include <sfx2/docfilt.hxx> #include <sfx2/sfxsids.hrc> #include <istyleaccess.hxx> +#include <names.hxx> #include <sfx2/DocumentMetadataAccess.hxx> #include <comphelper/diagnose_ex.hxx> @@ -351,13 +352,13 @@ static void lcl_AdjustOutlineStylesForOOo(SwDoc& _rDoc) // 'Heading 2', ..., 'Heading 10') OUString aDefOutlStyleNames[ MAXLEVEL ]; { - OUString sStyleName; + ProgName sStyleName; for ( sal_uInt8 i = 0; i < MAXLEVEL; ++i ) { sStyleName = SwStyleNameMapper::GetProgName( RES_POOLCOLL_HEADLINE1 + i, - sStyleName ); - aDefOutlStyleNames[i] = sStyleName; + sStyleName.toString() ); + aDefOutlStyleNames[i] = sStyleName.toString(); } } diff --git a/sw/source/filter/xml/xmlfmt.cxx b/sw/source/filter/xml/xmlfmt.cxx index 87b2ac41d0a1..dbd3eb0e1b19 100644 --- a/sw/source/filter/xml/xmlfmt.cxx +++ b/sw/source/filter/xml/xmlfmt.cxx @@ -50,6 +50,7 @@ #include <cellatr.hxx> #include <SwStyleNameMapper.hxx> #include <ccoll.hxx> +#include <names.hxx> #include <memory> @@ -619,17 +620,18 @@ void SwXMLItemSetStyleContext_Impl::ConnectPageDesc() // #i40788# - first determine the display name of the page style, // then map this name to the corresponding user interface name. - OUString sName = GetImport().GetStyleDisplayName( XmlStyleFamily::MASTER_PAGE, - m_sMasterPageName ); - SwStyleNameMapper::FillUIName( sName, - sName, + ProgName sProgName( GetImport().GetStyleDisplayName( XmlStyleFamily::MASTER_PAGE, + m_sMasterPageName ) ); + OUString sUIName; + SwStyleNameMapper::FillUIName( sProgName, + sUIName, SwGetPoolIdFromName::PageDesc); - SwPageDesc *pPageDesc = pDoc->FindPageDesc(sName); + SwPageDesc *pPageDesc = pDoc->FindPageDesc(sUIName); if( !pPageDesc ) { // If the page style is a pool style, then we maybe have to create it // first if it hasn't been used by now. - const sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromUIName( sName, SwGetPoolIdFromName::PageDesc ); + const sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromUIName( sUIName, SwGetPoolIdFromName::PageDesc ); if( USHRT_MAX != nPoolId ) pPageDesc = pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool( nPoolId, false ); } diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx index 4a70f2953868..971cab6a3043 100644 --- a/sw/source/filter/xml/xmlfmte.cxx +++ b/sw/source/filter/xml/xmlfmte.cxx @@ -46,6 +46,7 @@ #include <svx/svdmodel.hxx> #include <docmodel/theme/ThemeColorType.hxx> #include <docmodel/theme/Theme.hxx> +#include <names.hxx> using namespace ::com::sun::star::uno; @@ -94,7 +95,7 @@ void SwXMLExport::ExportFormat(const SwFormat& rFormat, enum XMLTokenEnum eFamil if( const SwFormatPageDesc* pItem = rFormat.GetAttrSet().GetItemIfSet( RES_PAGEDESC, false ) ) { - OUString sName; + ProgName sName; const SwPageDesc *pPageDesc = pItem->GetPageDesc(); if( pPageDesc ) SwStyleNameMapper::FillProgName( @@ -102,7 +103,7 @@ void SwXMLExport::ExportFormat(const SwFormat& rFormat, enum XMLTokenEnum eFamil sName, SwGetPoolIdFromName::PageDesc); AddAttribute( XML_NAMESPACE_STYLE, XML_MASTER_PAGE_NAME, - EncodeStyleName( sName ) ); + EncodeStyleName( sName.toString() ) ); } } diff --git a/sw/source/filter/xml/xmltble.cxx b/sw/source/filter/xml/xmltble.cxx index fe13cb0660d8..b000c476b1f4 100644 --- a/sw/source/filter/xml/xmltble.cxx +++ b/sw/source/filter/xml/xmltble.cxx @@ -54,6 +54,7 @@ #include <o3tl/sorted_vector.hxx> #include <textboxhelper.hxx> #include <SwStyleNameMapper.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -1129,9 +1130,9 @@ void SwXMLExport::ExportTable( const SwTableNode& rTableNd ) // table:template-name= if (!rTable.GetTableStyleName().isEmpty()) { - OUString sStyleName; + ProgName sStyleName; SwStyleNameMapper::FillProgName(rTable.GetTableStyleName(), sStyleName, SwGetPoolIdFromName::TabStyle); - AddAttribute(XML_NAMESPACE_TABLE, XML_TEMPLATE_NAME, sStyleName); + AddAttribute(XML_NAMESPACE_TABLE, XML_TEMPLATE_NAME, sStyleName.toString()); } SvXMLElementExport aElem(*this, *oPrefix, XML_TABLE, true, true); diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index 93840a1d27c5..5d55d355b76b 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -67,6 +67,7 @@ #include <unotextcursor.hxx> #include <SwStyleNameMapper.hxx> #include <IDocumentSettingAccess.hxx> +#include <names.hxx> #include <algorithm> #include <vector> @@ -2505,7 +2506,7 @@ void SwXMLTableContext::MakeTable() sal_uInt8 nPercentWidth = 0U; OUString sStyleName; - SwStyleNameMapper::FillUIName( m_aTemplateName, sStyleName, SwGetPoolIdFromName::TabStyle ); + SwStyleNameMapper::FillUIName( ProgName(m_aTemplateName), sStyleName, SwGetPoolIdFromName::TabStyle ); m_pTableNode->GetTable().SetTableStyleName( sStyleName ); m_pTableNode->GetTable().SetRowsToRepeat( m_nHeaderRows ); m_pTableNode->GetTable().SetTableModel( !m_bHasSubTables ); diff --git a/sw/source/ui/chrdlg/break.cxx b/sw/source/ui/chrdlg/break.cxx index e767456266e1..1c5c7753bdb7 100644 --- a/sw/source/ui/chrdlg/break.cxx +++ b/sw/source/ui/chrdlg/break.cxx @@ -32,6 +32,7 @@ #include <strings.hrc> #include <SwStyleNameMapper.hxx> +#include <names.hxx> void SwBreakDlg::rememberResult() { @@ -171,12 +172,12 @@ SwBreakDlg::SwBreakDlg(weld::Window *pParent, SwWrtShell &rS) OUString aFormatName; for (sal_uInt16 i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i) { - aFormatName = SwStyleNameMapper::GetUIName( i, aFormatName ); + aFormatName = SwStyleNameMapper::GetUIName( i, ProgName() ); if (m_xPageCollBox->find_text(aFormatName) == -1) ::InsertStringSorted(u""_ustr, aFormatName, *m_xPageCollBox, 1 ); } //add landscape page - aFormatName = SwStyleNameMapper::GetUIName( RES_POOLPAGE_LANDSCAPE, aFormatName ); + aFormatName = SwStyleNameMapper::GetUIName( RES_POOLPAGE_LANDSCAPE, ProgName() ); if (m_xPageCollBox->find_text(aFormatName) == -1) ::InsertStringSorted(u""_ustr, aFormatName, *m_xPageCollBox, 1); CheckEnable(); diff --git a/sw/source/ui/dbui/mmresultdialogs.cxx b/sw/source/ui/dbui/mmresultdialogs.cxx index 2a960e6a8f01..fea693fe7ffa 100644 --- a/sw/source/ui/dbui/mmresultdialogs.cxx +++ b/sw/source/ui/dbui/mmresultdialogs.cxx @@ -933,7 +933,11 @@ IMPL_LINK_NOARG(SwMMResultEmailDialog, SendDocumentsHdl_Impl, weld::Button&, voi //get the composed document SwView* pTargetView = xConfigItem->GetTargetView(); - SAL_WARN_IF(!pTargetView, "sw.ui", "No TargetView in SwMailMergeConfigItem"); + if (!pTargetView) + { + SAL_WARN("sw.ui", "No TargetView in SwMailMergeConfigItem"); + return; + } if (xConfigItem->GetMailServer().isEmpty() || !SwMailMergeHelper::CheckMailAddress(xConfigItem->GetMailAddress()) ) @@ -945,8 +949,7 @@ IMPL_LINK_NOARG(SwMMResultEmailDialog, SendDocumentsHdl_Impl, weld::Button&, voi sal_uInt16 nRet = xQueryBox->run(); if (RET_YES == nRet ) { - SwView* pConfigView = pTargetView ? pTargetView : pView; - SfxAllItemSet aSet(pConfigView->GetPool()); + SfxAllItemSet aSet(pTargetView->GetPool()); SwMailConfigDlg aDlg(m_xDialog.get(), aSet); nRet = aDlg.run(); } diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index 343dd34850dc..ea4e0ffa3daa 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -93,6 +93,7 @@ #include <mmresultdialogs.hxx> #include <formatlinebreak.hxx> #include <translatelangselect.hxx> +#include <copyfielddlg.hxx> using namespace css::frame; using namespace css::uno; @@ -761,6 +762,22 @@ VclPtr<AbstractSwModalRedlineAcceptDlg> SwAbstractDialogFactory_Impl::CreateSwMo namespace { +class AbstractCopyFieldDlg_Impl + : public vcl::AbstractDialogImpl_Async<AbstractCopyFieldDlg, CopyFieldDlg> +{ +public: + using AbstractDialogImpl_BASE::AbstractDialogImpl_BASE; +}; +} + +VclPtr<AbstractCopyFieldDlg> SwAbstractDialogFactory_Impl::CreateCopyFieldDlg(weld::Widget* pParent, + const rtl::OUString& rFieldValue) +{ + return VclPtr<AbstractCopyFieldDlg_Impl>::Create(pParent, rFieldValue); +} + +namespace +{ /// Interface implementation for the insert -> fields -> page number wizard dialog class AbstractSwPageNumberDlg_Impl : public vcl::AbstractDialogImpl_Async<AbstractSwPageNumberDlg, SwPageNumberDlg> diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index f33460a21840..60879d516887 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -58,6 +58,7 @@ #include <o3tl/deleter.hxx> #include <pagenumberdlg.hxx> #include <changedb.hxx> +#include <copyfielddlg.hxx> //AbstractDialogFactory_Impl implementations class SwAbstractDialogFactory_Impl : public SwAbstractDialogFactory @@ -200,6 +201,8 @@ public: virtual GlossaryGetCurrGroup GetGlossaryCurrGroupFunc() override; virtual GlossarySetActGroup SetGlossaryActGroupFunc() override; + virtual VclPtr<AbstractCopyFieldDlg> CreateCopyFieldDlg(weld::Widget* pParent, const rtl::OUString& rFieldValue ) override; + // For TabPage virtual CreateTabPage GetTabPageCreatorFunc( sal_uInt16 nId ) override; diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx index 16c6cda95b58..92dccb18e1da 100644 --- a/sw/source/ui/dialog/uiregionsw.cxx +++ b/sw/source/ui/dialog/uiregionsw.cxx @@ -764,7 +764,7 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OkHdl, weld::Button&, void) m_rSh.StartAllAction(); m_rSh.StartUndo(); - m_rSh.ResetSelect( nullptr,false ); + m_rSh.ResetSelect( nullptr,false, ScrollSizeMode::ScrollSizeDefault ); std::unique_ptr<weld::TreeIter> xIter(m_xTree->make_iterator()); if (m_xTree->get_iter_first(*xIter)) diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx index bdd30be7a443..013c8300106e 100644 --- a/sw/source/ui/fldui/fldvar.cxx +++ b/sw/source/ui/fldui/fldvar.cxx @@ -129,7 +129,7 @@ void SwFieldVarPage::Reset(const SfxItemSet* ) m_xFormatLB->set_size_request(nWidth, nHeight/2); auto size = m_xValueED->get_widget().get_size_request(); m_xValueED->get_widget().set_size_request(size.getWidth(), - m_xValueED->get_widget().get_height_rows(5)); + m_xValueED->get_widget().get_height_rows(6)); const SwField* pCurField = GetCurField(); assert(pCurField && "<SwFieldVarPage::Reset(..)> - <SwField> instance missing!"); nTypeId = pCurField->GetTypeId(); diff --git a/sw/source/ui/frmdlg/cption.cxx b/sw/source/ui/frmdlg/cption.cxx index 292ac69838a2..e0f82eea8211 100644 --- a/sw/source/ui/frmdlg/cption.cxx +++ b/sw/source/ui/frmdlg/cption.cxx @@ -41,6 +41,7 @@ #include <strings.hrc> #include <SwStyleNameMapper.hxx> #include <unotxdoc.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -191,7 +192,7 @@ SwCaptionDialog::SwCaptionDialog(weld::Window *pParent, SwView &rV) if( nPoolId ) { if (sString.isEmpty()) - sString = SwStyleNameMapper::GetUIName(nPoolId, OUString()); + sString = SwStyleNameMapper::GetUIName(nPoolId, ProgName()); auto nIndex = m_xCategoryBox->find_text(sString); if (nIndex != -1) m_xCategoryBox->set_active(nIndex); diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx index 5de4a804bbf0..d4265da6df75 100644 --- a/sw/source/ui/frmdlg/frmpage.cxx +++ b/sw/source/ui/frmdlg/frmpage.cxx @@ -1351,6 +1351,12 @@ bool SwFramePage::FillItemSet(SfxItemSet *rSet) aSz.SetHeightSizeType(SwFrameSize::Minimum); bRet |= nullptr != rSet->Put( aSz ); + if (bRet) + { + SvxSizeItem aGSz(SID_ATTR_GRAF_FRMSIZE); + aGSz.SetSize(aSz.GetSize()); + bRet |= nullptr != rSet->Put(aGSz); + } } if (m_xFollowTextFlowCB->get_state_changed_from_saved()) { @@ -2296,7 +2302,14 @@ void SwFramePage::Init(const SfxItemSet& rSet) } } - const SwFormatFrameSize& rSize = rSet.Get(RES_FRM_SIZE); + SwFormatFrameSize rSize = rSet.Get(RES_FRM_SIZE); + // size could already have been set from another (Crop) page + if (const SvxSizeItem* pSizeItem = rSet.GetItemIfSet(SID_ATTR_GRAF_FRMSIZE, false)) + { + if (pSizeItem->GetSize() != rSize.GetSize()) + rSize.SetSize(pSizeItem->GetSize()); + } + sal_Int64 nWidth = m_xWidthED->NormalizePercent(rSize.GetWidth()); sal_Int64 nHeight = m_xHeightED->NormalizePercent(rSize.GetHeight()); diff --git a/sw/source/ui/index/cntex.cxx b/sw/source/ui/index/cntex.cxx index b83d453c3844..735f94f7ae11 100644 --- a/sw/source/ui/index/cntex.cxx +++ b/sw/source/ui/index/cntex.cxx @@ -40,6 +40,7 @@ #include <SwStyleNameMapper.hxx> #include <swuicnttab.hxx> #include <unoidxcoll.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::text; @@ -226,8 +227,8 @@ void SwMultiTOXTabDialog::CreateOrUpdateExample( lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_DASH, bool(nIdxOptions & SwTOIOptions::Dash )); lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_UPPER_CASE, bool(nIdxOptions & SwTOIOptions::InitialCaps )); - OUString aTmpName( SwStyleNameMapper::GetSpecialExtraProgName( rDesc.GetSequenceName() ) ); - lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_CATEGORY, aTmpName ); + ProgName aTmpName( SwStyleNameMapper::GetSpecialExtraProgName( rDesc.GetSequenceName() ) ); + lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_CATEGORY, aTmpName.toString() ); lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_LABELS, !rDesc.IsCreateFromObjectNames()); sal_Int16 nSet = text::ChapterFormat::NAME_NUMBER; diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx index e25cfe0d052d..1c1b894fbf29 100644 --- a/sw/source/ui/index/cnttab.cxx +++ b/sw/source/ui/index/cnttab.cxx @@ -63,6 +63,7 @@ #include <sfx2/filedlghelper.hxx> #include <toxwrap.hxx> #include <chpfld.hxx> +#include <names.hxx> #include <svtools/editbrowsebox.hxx> #include <cmath> @@ -1343,12 +1344,12 @@ IMPL_LINK(SwTOXSelectTabPage, TOXTypeHdl, weld::ComboBox&, rBox, void) if( nType & TO_ILLUSTRATION ) { - OUString sName(SwStyleNameMapper::GetUIName(RES_POOLCOLL_LABEL_FIGURE, OUString())); + OUString sName(SwStyleNameMapper::GetUIName(RES_POOLCOLL_LABEL_FIGURE, ProgName())); m_xCaptionSequenceLB->set_active_text(sName); } else if( nType & TO_TABLE ) { - OUString sName(SwStyleNameMapper::GetUIName(RES_POOLCOLL_LABEL_TABLE, OUString())); + OUString sName(SwStyleNameMapper::GetUIName(RES_POOLCOLL_LABEL_TABLE, ProgName())); m_xCaptionSequenceLB->set_active_text(sName); } else if( nType & TO_USER ) @@ -1417,6 +1418,8 @@ IMPL_LINK(SwTOXSelectTabPage, CheckBoxHdl, weld::Toggleable&, rButton, void) m_xUseFFCB->set_sensitive(m_xCollectSameCB->get_active() && !m_xUseDashCB->get_active()); m_xUseDashCB->set_sensitive(m_xCollectSameCB->get_active() && !m_xUseFFCB->get_active()); m_xCaseSensitiveCB->set_sensitive(m_xCollectSameCB->get_active()); + // tdf#164847 - update menu items based on concordance file presence + MenuEnableHdl(*m_xAutoMarkPB); } else if (TOX_ILLUSTRATIONS == aCurType.eType || TOX_TABLES == aCurType.eType @@ -1508,6 +1511,8 @@ IMPL_LINK(SwTOXSelectTabPage, MenuExecuteHdl, const OUString&, rIdent, void) if (RET_OK != aAutoMarkDlg.run() && bNew) m_sAutoMarkURL = sSaveAutoMarkURL; } + // tdf#164847 - update menu items based on concordance file presence + MenuEnableHdl(*m_xAutoMarkPB); } class SwTOXWidget @@ -2739,7 +2744,7 @@ void SwTOXEntryTabPage::SetWrtShell(SwWrtShell& rSh) } } m_xMainEntryStyleLB->set_active_text(SwStyleNameMapper::GetUIName( - RES_POOLCHR_IDX_MAIN_ENTRY, OUString())); + RES_POOLCHR_IDX_MAIN_ENTRY, ProgName())); } const TranslateId STR_TOKEN_ARY[] = diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index 2bc41b0889a4..58a0f1f65621 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -453,7 +453,7 @@ void SwIndexMarkPane::Apply() { InsertUpdate(); if(m_bSelected) - m_pSh->ResetSelect(nullptr, false); + m_pSh->ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); } // apply changes diff --git a/sw/source/ui/misc/docfnote.cxx b/sw/source/ui/misc/docfnote.cxx index a53cbab73814..35c8743ed2a6 100644 --- a/sw/source/ui/misc/docfnote.cxx +++ b/sw/source/ui/misc/docfnote.cxx @@ -33,6 +33,7 @@ #include <uitool.hxx> #include <poolfmt.hxx> #include <SwStyleNameMapper.hxx> +#include <names.hxx> #include <memory> SwFootNoteOptionDlg::SwFootNoteOptionDlg(weld::Window *pParent, SwWrtShell &rS) @@ -195,7 +196,7 @@ void SwEndNoteOptionPage::Reset( const SfxItemSet* ) // page for (sal_uInt16 i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i) - m_xPageTemplBox->append_text(SwStyleNameMapper::GetUIName(i, OUString())); + m_xPageTemplBox->append_text(SwStyleNameMapper::GetUIName(i, ProgName())); const size_t nCount = m_pSh->GetPageDescCnt(); for(size_t i = 0; i < nCount; ++i) diff --git a/sw/source/ui/misc/insfnote.cxx b/sw/source/ui/misc/insfnote.cxx index 8e51c4c232b3..a43bd61eacd8 100644 --- a/sw/source/ui/misc/insfnote.cxx +++ b/sw/source/ui/misc/insfnote.cxx @@ -50,7 +50,7 @@ void SwInsFootNoteDlg::Apply() if (m_rSh.SetCurFootnote( aNote ) && m_bExtCharAvailable) { m_rSh.Right(SwCursorSkipMode::Chars, true, 1, false ); - SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT> aSet(m_rSh.GetAttrPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_FONT, RES_CHRATR_FONT>(m_rSh.GetAttrPool())); m_rSh.GetCurAttr(aSet); const SvxFontItem &rFont = aSet.Get( RES_CHRATR_FONT ); SvxFontItem aFont( rFont.GetFamily(), m_aFontName, @@ -58,7 +58,7 @@ void SwInsFootNoteDlg::Apply() m_eCharSet, RES_CHRATR_FONT ); aSet.Put( aFont ); m_rSh.SetAttrSet( aSet, SetAttrMode::DONTEXPAND ); - m_rSh.ResetSelect(nullptr, false); + m_rSh.ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); m_rSh.Left(SwCursorSkipMode::Chars, false, 1, false ); } m_rSh.EndUndo( SwUndoId::END ); @@ -92,7 +92,7 @@ IMPL_LINK_NOARG(SwInsFootNoteDlg, NumberExtCharHdl, weld::Button&, void) { m_xNumberCharBtn->set_active(true); - SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT> aSet(m_rSh.GetAttrPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_FONT, RES_CHRATR_FONT>(m_rSh.GetAttrPool())); m_rSh.GetCurAttr( aSet ); const SvxFontItem &rFont = aSet.Get( RES_CHRATR_FONT ); @@ -138,7 +138,7 @@ IMPL_LINK( SwInsFootNoteDlg, NextPrevHdl, weld::Button&, rBtn, void ) Apply(); // go to the next foot/endnote here - m_rSh.ResetSelect(nullptr, false); + m_rSh.ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); if (&rBtn == m_xNextBT.get()) m_rSh.GotoNextFootnoteAnchor(); else @@ -188,7 +188,7 @@ void SwInsFootNoteDlg::ImplDestroy() SwViewShell::SetCareDialog(nullptr); if (m_bEdit) - m_rSh.ResetSelect(nullptr, false); + m_rSh.ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); } SwInsFootNoteDlg::~SwInsFootNoteDlg() @@ -212,7 +212,7 @@ void SwInsFootNoteDlg::Init() sNumStr = aFootnoteNote.GetNumStr(); m_rSh.Right(SwCursorSkipMode::Chars, true, 1, false ); - SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT> aSet(m_rSh.GetAttrPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_FONT, RES_CHRATR_FONT>(m_rSh.GetAttrPool())); m_rSh.GetCurAttr(aSet); const SvxFontItem &rFont = aSet.Get( RES_CHRATR_FONT ); aFont = m_xNumberCharEdit->get_font(); diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx index eb68def4c6c6..242a7df4fcfa 100644 --- a/sw/source/ui/misc/outline.cxx +++ b/sw/source/ui/misc/outline.cxx @@ -45,6 +45,7 @@ #include <svtools/colorcfg.hxx> #include <IDocumentOutlineNodes.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -170,9 +171,10 @@ SwOutlineTabDialog::SwOutlineTabDialog(weld::Window* pParent, const SfxItemSet* for( i = 0; i < MAXLEVEL; ++i ) { // if the style wasn't created yet, it's still at this position - if( !m_rWrtSh.GetParaStyle( sHeadline = + sHeadline = SwStyleNameMapper::GetUIName( static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i), - sHeadline )) ) + ProgName() ); + if( !m_rWrtSh.GetParaStyle( sHeadline ) ) m_aCollNames[i] = sHeadline; } @@ -734,7 +736,7 @@ void SwOutlineSettingsTabPage::SetWrtShell(SwWrtShell* pShell) for (sal_uInt16 i = 0; i < MAXLEVEL; ++i) { m_xCollBox->append_text( SwStyleNameMapper::GetUIName( - static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i), OUString())); + static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i), ProgName())); m_xLevelLB->append_text( OUString::number(i + 1) ); } OUString sStr = "1 - " + OUString::number(MAXLEVEL); diff --git a/sw/source/ui/misc/pggrid.cxx b/sw/source/ui/misc/pggrid.cxx index d4a97633feb7..743a108e1d73 100644 --- a/sw/source/ui/misc/pggrid.cxx +++ b/sw/source/ui/misc/pggrid.cxx @@ -169,9 +169,9 @@ void SwTextGridPage::Reset(const SfxItemSet *rSet) weld::RadioButton* pButton = nullptr; switch(rGridItem.GetGridType()) { - case GRID_NONE : pButton = m_xNoGridRB.get(); break; - case GRID_LINES_ONLY : pButton = m_xLinesGridRB.get(); break; - default: pButton = m_xCharsGridRB.get(); + case SwTextGrid::NONE : pButton = m_xNoGridRB.get(); break; + case SwTextGrid::LinesOnly: pButton = m_xLinesGridRB.get(); break; + default: pButton = m_xCharsGridRB.get(); } pButton->set_active(true); m_xDisplayCB->set_active(rGridItem.IsDisplayGrid()); @@ -225,8 +225,8 @@ DeactivateRC SwTextGridPage::DeactivatePage( SfxItemSet* ) void SwTextGridPage::PutGridItem(SfxItemSet& rSet) { SwTextGridItem aGridItem; - aGridItem.SetGridType(m_xNoGridRB->get_active() ? GRID_NONE : - m_xLinesGridRB->get_active() ? GRID_LINES_ONLY : GRID_LINES_CHARS ); + aGridItem.SetGridType(m_xNoGridRB->get_active() ? SwTextGrid::NONE : + m_xLinesGridRB->get_active() ? SwTextGrid::LinesOnly : SwTextGrid::LinesAndChars ); aGridItem.SetSnapToChars(m_xSnapToCharsCB->get_active()); aGridItem.SetLines( static_cast< sal_Int32 >(m_xLinesPerPageNF->get_value()) ); aGridItem.SetBaseHeight( static_cast< sal_uInt16 >( @@ -247,9 +247,9 @@ void SwTextGridPage::PutGridItem(SfxItemSet& rSet) rSet.Put(aGridItem); SwView * pView = ::GetActiveView(); - if (pView && aGridItem.GetGridType() != GRID_NONE) + if (pView && aGridItem.GetGridType() != SwTextGrid::NONE) { - if ( aGridItem.GetGridType() == GRID_LINES_CHARS ) + if ( aGridItem.GetGridType() == SwTextGrid::LinesAndChars ) { m_bHRulerChanged = true; } diff --git a/sw/source/ui/table/tabledlg.cxx b/sw/source/ui/table/tabledlg.cxx index eb680387143c..c2908f22ee59 100644 --- a/sw/source/ui/table/tabledlg.cxx +++ b/sw/source/ui/table/tabledlg.cxx @@ -51,6 +51,7 @@ #include <poolfmt.hxx> #include <swtablerep.hxx> #include <SwStyleNameMapper.hxx> +#include <names.hxx> #include <cmdid.h> #include <svx/dialogs.hrc> @@ -1444,7 +1445,7 @@ void SwTextFlowPage::Reset( const SfxItemSet* rSet ) OUString aFormatName; for (sal_uInt16 i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i) { - aFormatName = SwStyleNameMapper::GetUIName(i, aFormatName); + aFormatName = SwStyleNameMapper::GetUIName(i, ProgName()); if (m_xPageCollLB->find_text(aFormatName) == -1) m_xPageCollLB->append_text(aFormatName); } diff --git a/sw/source/ui/utlui/copyfielddlg.cxx b/sw/source/ui/utlui/copyfielddlg.cxx new file mode 100644 index 000000000000..6625f581e451 --- /dev/null +++ b/sw/source/ui/utlui/copyfielddlg.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/. + * + * 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 <copyfielddlg.hxx> +#include <comphelper/string.hxx> + +using namespace ::com::sun::star; + +CopyFieldDlg::CopyFieldDlg(weld::Widget* pParent, const rtl::OUString& rFieldValue) + : GenericDialogController(pParent, u"modules/swriter/ui/copyfielddialog.ui"_ustr, + u"CopyFieldDialog"_ustr) + , m_xFieldValueED(new ConditionEdit<weld::TextView>(m_xBuilder->weld_text_view(u"value"_ustr))) + , m_xCopy(m_xBuilder->weld_button(u"copy"_ustr)) + , m_xClose(m_xBuilder->weld_button(u"cancel"_ustr)) +{ + m_xClose->connect_clicked(LINK(this, CopyFieldDlg, CloseHdl)); + m_xCopy->connect_clicked(LINK(this, CopyFieldDlg, CopyHdl)); + + m_xFieldValueED->set_text(rFieldValue); + sal_Int32 nRows{ comphelper::string::getTokenCount(rFieldValue, '\n') }; + + m_xFieldValueED->get_widget().set_size_request( + m_xFieldValueED->get_widget().get_preferred_size().Width() * 2, + m_xFieldValueED->get_widget().get_height_rows(std::min<sal_Int32>(nRows + 1, 6))); +} + +IMPL_LINK_NOARG(CopyFieldDlg, CloseHdl, weld::Button&, void) { m_xDialog->response(RET_OK); } + +IMPL_LINK_NOARG(CopyFieldDlg, CopyHdl, weld::Button&, void) +{ + int nStartPos; + int nEndPos; + m_xFieldValueED->get_widget().get_selection_bounds(nStartPos, nEndPos); + if (nStartPos == nEndPos) + m_xFieldValueED->get_widget().select_region(0, -1); + + m_xFieldValueED->get_widget().copy_clipboard(); + if (nStartPos == nEndPos) + m_xFieldValueED->get_widget().select_region(0, 0); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx index 1fe54effc43b..ca6c7eaa8d60 100644 --- a/sw/source/uibase/app/docst.cxx +++ b/sw/source/uibase/app/docst.cxx @@ -86,6 +86,7 @@ #include <svx/svdpage.hxx> #include <officecfg/Office/Common.hxx> #include <fmtfsize.hxx> +#include <names.hxx> #include <svl/ptitem.hxx> #include <editeng/sizeitem.hxx> #include <editeng/ulspitem.hxx> @@ -176,7 +177,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) case SID_STYLE_FAMILY2: if(!pShell->IsFrameSelected()) { - OUString aProgName; + ProgName aProgName; if (pShell->GetSelectionType() == SelectionType::PostIt) { OutlinerView *pOLV = lcl_GetPostItOutlinerView(*pShell); @@ -193,7 +194,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) SwStyleNameMapper::FillProgName(nId, aProgName); } - SfxTemplateItem aItem(nWhich, aName, aProgName); + SfxTemplateItem aItem(nWhich, aName, aProgName.toString()); SfxStyleSearchBits nMask = SfxStyleSearchBits::Auto; if (m_xDoc->getIDocumentSettingAccess().get(DocumentSettingId::HTML_MODE)) diff --git a/sw/source/uibase/app/docstyle.cxx b/sw/source/uibase/app/docstyle.cxx index 31e7b14ab127..59b2d111b0db 100644 --- a/sw/source/uibase/app/docstyle.cxx +++ b/sw/source/uibase/app/docstyle.cxx @@ -69,6 +69,7 @@ #include <svx/xfillit0.hxx> #include <svx/xflftrit.hxx> #include <svx/drawitem.hxx> +#include <names.hxx> using namespace com::sun::star; @@ -500,9 +501,9 @@ static const SwBoxAutoFormat* lcl_FindCellStyle(SwDoc& rDoc, std::u16string_view { const sal_uInt32 nBoxIndex = aTableTemplateMap[nBoxFormat]; const SwBoxAutoFormat& rBoxFormat = rTableStyle.GetBoxFormat(nBoxIndex); - OUString sBoxFormatName; - SwStyleNameMapper::FillProgName(rTableStyle.GetName(), sBoxFormatName, SwGetPoolIdFromName::TabStyle); - sBoxFormatName += rTableStyle.GetTableTemplateCellSubName(rBoxFormat); + ProgName sBoxFormatProgName; + SwStyleNameMapper::FillProgName(rTableStyle.GetName(), sBoxFormatProgName, SwGetPoolIdFromName::TabStyle); + OUString sBoxFormatName = sBoxFormatProgName.toString() + rTableStyle.GetTableTemplateCellSubName(rBoxFormat); if (rName == sBoxFormatName) pFormat = &rBoxFormat; } @@ -2620,6 +2621,25 @@ void SwDocStyleSheet::SetHelpId( const OUString& r, sal_uInt32 nId ) } } +sal_Int32 SwDocStyleSheet::GetSpotlightId() +{ + if (nFamily == SfxStyleFamily::Para) + { + SwTextFormatColl* pColl = m_pColl ? + m_pColl : m_rDoc.FindTextFormatCollByName(aName); + return pColl ? m_rDoc.GetTextFormatColls()->GetPos(pColl) : -1; + } + + if (nFamily == SfxStyleFamily::Char) + { + SwCharFormat* pCharFormat = m_pCharFormat + ? m_pCharFormat : m_rDoc.FindCharFormatByName(aName); + return pCharFormat ? m_rDoc.GetCharFormats()->GetPos(pCharFormat) : -1; + } + + return SfxStyleSheetBase::GetSpotlightId(); +} + // methods for DocStyleSheetPool SwDocStyleSheetPool::SwDocStyleSheetPool( SwDoc& rDocument, bool bOrg ) : SfxStyleSheetBasePool(rDocument.GetAttrPool()) @@ -3100,7 +3120,7 @@ SfxStyleSheetBase* SwStyleSheetIterator::First() { if( !bIsSearchUsed || rDoc.getIDocumentStylePoolAccess().IsPoolTextCollUsed( *pPoolIds ) ) { - s = SwStyleNameMapper::GetUIName( *pPoolIds, s ); + s = SwStyleNameMapper::GetUIName( *pPoolIds, ProgName(s) ); m_aLst.Append( SfxStyleFamily::Para, s); } ++pPoolIds; @@ -3245,9 +3265,9 @@ SfxStyleSheetBase* SwStyleSheetIterator::First() { const sal_uInt32 nBoxIndex = aTableTemplateMap[nBoxFormat]; const SwBoxAutoFormat& rBoxFormat = rTableStyle.GetBoxFormat(nBoxIndex); - OUString sBoxFormatName; - SwStyleNameMapper::FillProgName(rTableStyle.GetName(), sBoxFormatName, SwGetPoolIdFromName::TabStyle); - sBoxFormatName += rTableStyle.GetTableTemplateCellSubName(rBoxFormat); + ProgName sBoxFormatProgName; + SwStyleNameMapper::FillProgName(rTableStyle.GetName(), sBoxFormatProgName, SwGetPoolIdFromName::TabStyle); + OUString sBoxFormatName = sBoxFormatProgName.toString() + rTableStyle.GetTableTemplateCellSubName(rBoxFormat); m_aLst.Append( SfxStyleFamily::Cell, sBoxFormatName ); } } diff --git a/sw/source/uibase/app/swdll.cxx b/sw/source/uibase/app/swdll.cxx index a0d0d35773dd..274b0e50c319 100644 --- a/sw/source/uibase/app/swdll.cxx +++ b/sw/source/uibase/app/swdll.cxx @@ -176,6 +176,9 @@ sw::Filters & SwDLL::getFilters() extern "C" SAL_DLLPUBLIC_EXPORT void lok_preload_hook() { + // msword (any symbol will do) + sw::Filters::GetMswordLibSymbol("ImportDOC"); + // swui SwAbstractDialogFactory::Create(); } diff --git a/sw/source/uibase/config/StoredChapterNumbering.cxx b/sw/source/uibase/config/StoredChapterNumbering.cxx index 6772aa4bcaa0..e29fd58d94e7 100644 --- a/sw/source/uibase/config/StoredChapterNumbering.cxx +++ b/sw/source/uibase/config/StoredChapterNumbering.cxx @@ -34,6 +34,7 @@ #include <comphelper/diagnose_ex.hxx> #include <unosett.hxx> +#include <names.hxx> using namespace ::com::sun::star; @@ -125,7 +126,7 @@ public: return uno::Any(); // the export will ignore this level, yay } assert(pCharStyleName); - OUString dummy; // pass in empty HeadingStyleName - can't import anyway + ProgName dummy; // pass in empty HeadingStyleName - can't import anyway uno::Sequence<beans::PropertyValue> const ret( SwXNumberingRules::GetPropertiesForNumFormat( *pNumFormat, *pCharStyleName, &dummy, u""_ustr)); diff --git a/sw/source/uibase/config/modcfg.cxx b/sw/source/uibase/config/modcfg.cxx index 0eb74b0a0688..a468aa69ad83 100644 --- a/sw/source/uibase/config/modcfg.cxx +++ b/sw/source/uibase/config/modcfg.cxx @@ -20,6 +20,7 @@ #include <memory> #include <comphelper/classids.hxx> #include <o3tl/any.hxx> +#include <o3tl/numeric.hxx> #include <tools/fontenum.hxx> #include <editeng/svxenum.hxx> #include <editeng/editids.hrc> @@ -155,21 +156,15 @@ OUString SwModuleOptions::ConvertWordDelimiter(std::u16string_view aDelim, bool for( sal_Int32 n = 0; n < 2 && i < nDelimLen; ++n, ++i ) { sal_Unicode nVal = aDelim[i]; - if( (nVal >= '0') && ( nVal <= '9') ) - nVal -= '0'; - else if( (nVal >= 'A') && (nVal <= 'F') ) - nVal -= 'A' - 10; - else if( (nVal >= 'a') && (nVal <= 'f') ) - nVal -= 'a' - 10; - else + int nConverted = o3tl::convertToHex<int>(nVal); + if (nConverted == -1) { OSL_FAIL("wrong hex value" ); bValidData = false; break; } - nChar <<= 4; - nChar += nVal; + nChar += nConverted; } if( bValidData ) sReturn.append(nChar); diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx index 082f8f4331dd..162d6a103d66 100644 --- a/sw/source/uibase/config/viewopt.cxx +++ b/sw/source/uibase/config/viewopt.cxx @@ -41,7 +41,6 @@ #include <comphelper/lok.hxx> #include <comphelper/configurationlistener.hxx> -sal_uInt16 SwViewOption::s_nPixelTwips = 0; // one pixel on the screen SwViewColors SwViewOption::s_aInitialColorConfig {}; SwViewColors::SwViewColors() : @@ -212,7 +211,7 @@ void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool b Color aOldLineColor( pOut->GetLineColor() ); pOut->SetLineColor( COL_GRAY ); // to make it look nice, we subtract two pixels everywhere - SwTwips nPix = s_nPixelTwips * 2; + SwTwips nPix = o3tl::narrowing<sal_uInt16>(pOut->PixelToLogic( Size(1,1) ).Height()) * 2; if( rRect.Width() <= 2 * nPix || rRect.Height() <= 2 * nPix ) nPix = 0; const Point aTopLeft( rRect.Left() + nPix, rRect.Top() + nPix ); @@ -387,14 +386,6 @@ SwViewOption::~SwViewOption() { } -void SwViewOption::Init(const OutputDevice* pWin) -{ - if( !s_nPixelTwips && pWin ) - { - s_nPixelTwips = o3tl::narrowing<sal_uInt16>(pWin->PixelToLogic( Size(1,1) ).Height()); - } -} - bool SwViewOption::IsAutoCompleteWords() { const SvxSwAutoFormatFlags& rFlags = SvxAutoCorrCfg::Get().GetAutoCorrect()->GetSwFlags(); diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx b/sw/source/uibase/dochdl/swdtflvr.cxx index 13c7b8f8bc0a..11847f90b53d 100644 --- a/sw/source/uibase/dochdl/swdtflvr.cxx +++ b/sw/source/uibase/dochdl/swdtflvr.cxx @@ -72,6 +72,7 @@ #include <postwin.h> #include <o3tl/char16_t2wchar_t.hxx> #include <osl/file.hxx> +#include <systools/win32/extended_max_path.hxx> #endif #include <svx/unomodel.hxx> @@ -2902,10 +2903,10 @@ bool SwTransferable::PasteGrf( const TransferableDataHelper& rData, SwWrtShell& // tdf#124500: Convert short path to long path which should be used in links OUString sSysPath; osl::FileBase::getSystemPathFromFileURL(sText, sSysPath); - std::unique_ptr<sal_Unicode[]> aBuf(new sal_Unicode[32767]); + std::unique_ptr<sal_Unicode[]> aBuf(new sal_Unicode[EXTENDED_MAX_PATH]); DWORD nCopied = GetLongPathNameW(o3tl::toW(sSysPath.getStr()), - o3tl::toW(aBuf.get()), 32767); - if (nCopied && nCopied < 32767) + o3tl::toW(aBuf.get()), EXTENDED_MAX_PATH); + if (nCopied && nCopied < EXTENDED_MAX_PATH) sText = URIHelper::SmartRel2Abs(INetURLObject(), OUString(aBuf.get()), Link<OUString*, bool>(), false); } @@ -3876,7 +3877,7 @@ bool SwTransferable::PrivatePaste(SwWrtShell& rShell, SwPasteContext* pContext, } if ( nSelection & SelectionType::DrawObject) //unselect hovering graphics { - rShell.ResetSelect(nullptr,false); + rShell.ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); } bool bInWrd = false, bEndWrd = false, bSttWrd = false, diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index 3c20f0b3a675..5e3ccb5857ef 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -82,6 +82,8 @@ #include <annotsh.hxx> #include <swabstdlg.hxx> #include <pagefrm.hxx> +#include <officecfg/Office/Common.hxx> + #include <memory> // distance between Anchor Y and initial note position @@ -183,6 +185,12 @@ namespace { aAnnotation.put("textRange", sRects.getStr()); aAnnotation.put("layoutStatus", pItem->mLayoutStatus); } + if (nType == CommentNotificationType::Remove && comphelper::LibreOfficeKit::isActive()) + { + // Redline author is basically the author which has made the modification rather than author of the comments + // This is important to know who removed the comment + aAnnotation.put("author", SwModule::get()->GetRedlineAuthor(SwModule::get()->GetRedlineAuthor())); + } boost::property_tree::ptree aTree; aTree.add_child("comment", aAnnotation); @@ -1578,11 +1586,40 @@ void SwPostItMgr::RemoveSidebarWin() PreparePageContainer(); } +static bool ConfirmDeleteAll(SwView& pView, const OUString& sText) +{ + const bool bAsk = officecfg::Office::Common::Misc::QueryDeleteAllComments::get(); + bool bConfirm = true; + if (bAsk) + { + VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); + auto pDlg + = pFact->CreateQueryDialog(pView.GetFrameWeld(), + SwResId(STR_QUERY_DELALLCOMMENTS_TITLE), sText, "", true); + sal_Int32 nResult = pDlg->Execute(); + if (pDlg->ShowAgain() == false) + { + std::shared_ptr<comphelper::ConfigurationChanges> xChanges( + comphelper::ConfigurationChanges::create()); + officecfg::Office::Common::Misc::QueryDeleteAllComments::set(false, xChanges); + xChanges->commit(); + } + bConfirm = (nResult == RET_YES); + pDlg->disposeOnce(); + } + return bConfirm; +} + // copy to new vector, otherwise RemoveItem would operate and delete stuff on mvPostItFields as well // RemoveItem will clean up the core field and visible postit if necessary // we cannot just delete everything as before, as postits could move into change tracking void SwPostItMgr::Delete(const OUString& rAuthor) { + OUString sQuestion = SwResId(STR_QUERY_DELALLCOMMENTSAUTHOR_QUESTION); + sQuestion = sQuestion.replaceAll("%AUTHOR", rAuthor); + if (!ConfirmDeleteAll(mpWrtShell->GetView(), sQuestion)) + return; + mpWrtShell->StartAllAction(); if (HasActiveSidebarWin() && (GetActiveSidebarWin()->GetAuthor() == rAuthor)) { @@ -1713,6 +1750,9 @@ void SwPostItMgr::ToggleResolvedForThread(sal_uInt32 nPostItId) void SwPostItMgr::Delete() { + if (!ConfirmDeleteAll(mpWrtShell->GetView(), SwResId(STR_QUERY_DELALLCOMMENTS_QUESTION))) + return; + mpWrtShell->StartAllAction(); SetActiveSidebarWin(nullptr); SwRewriter aRewriter; diff --git a/sw/source/uibase/docvw/edtdd.cxx b/sw/source/uibase/docvw/edtdd.cxx index 72e50a65599e..89f93144919d 100644 --- a/sw/source/uibase/docvw/edtdd.cxx +++ b/sw/source/uibase/docvw/edtdd.cxx @@ -371,7 +371,7 @@ sal_Int8 SwEditWin::AcceptDrop( const AcceptDropEvent& rEvt ) if(aPixPt.Y() < aWin.Top()) aPixPt.AdjustY( -nMargin ); Point aDocPt(PixelToLogic(aPixPt)); SwRect rect(aDocPt,Size(1,1)); - rSh.MakeVisible(rect); + rSh.MakeVisible(rect, ScrollSizeMode::ScrollSizeTimer2); } } @@ -461,7 +461,7 @@ sal_Int8 SwEditWin::AcceptDrop( const AcceptDropEvent& rEvt ) CleanupDropUserMarker(); SwContentAtPos aCont( IsAttrAtPos::ContentCheck ); if(rSh.GetContentAtPos(aDocPt, aCont)) - rSh.SwCursorShell::SetVisibleCursor( aDocPt ); + rSh.SwCursorShell::SetVisibleCursor( aDocPt, ScrollSizeMode::ScrollSizeMouseSelection ); } else { diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index f8ce91be0426..efaf125578e9 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -682,7 +682,7 @@ IMPL_LINK_NOARG(SwEditWin, TimerHandler, Timer *, void) rSh.SelectTableRowCol( *m_xRowColumnSelectionStart, &aPos, m_bIsRowDrag ); } else - rSh.CallSetCursor( &aModPt, false ); + rSh.CallSetCursor( &aModPt, false, m_eScrollSizeMode ); // It can be that a "jump" over a table cannot be accomplished like // that. So we jump over the table by Up/Down here. @@ -706,15 +706,20 @@ void SwEditWin::JustifyAreaTimer() { const tools::Rectangle &rVisArea = GetView().GetVisArea(); #ifdef UNX - const tools::Long coMinLen = 100; + const tools::Long coMinLen = 40; #else - const tools::Long coMinLen = 50; + const tools::Long coMinLen = 20; #endif tools::Long const nTimeout = 800, nDiff = std::max( std::max( m_aMovePos.Y() - rVisArea.Bottom(), rVisArea.Top() - m_aMovePos.Y() ), std::max( m_aMovePos.X() - rVisArea.Right(), rVisArea.Left() - m_aMovePos.X())); - m_aTimer.SetTimeout( std::max( coMinLen, nTimeout - nDiff*2L) ); + m_aTimer.SetTimeout( std::max( coMinLen, nTimeout - nDiff) ); + m_eScrollSizeMode = m_aTimer.GetTimeout() < 100 ? + ScrollSizeMode::ScrollSizeTimer2 : + m_aTimer.GetTimeout() < 400 ? + ScrollSizeMode::ScrollSizeTimer : + ScrollSizeMode::ScrollSizeMouseSelection; } void SwEditWin::LeaveArea(const Point &rPos) @@ -3970,7 +3975,7 @@ void SwEditWin::MouseButtonDown(const MouseEvent& _rMEvt) if ( !bOverSelect || rSh.IsInSelect() ) { - MoveCursor( rSh, aDocPos, bOnlyText, bLockView ); + MoveCursor( rSh, aDocPos, bOnlyText, bLockView); bCallBase = false; } if (!bOverURLGrf && !bExecDrawTextLink && !bOnlyText) @@ -4569,8 +4574,8 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) rSh.IsAddMode() ) ) { rSh.Drag( &aDocPt, false ); - - g_bValidCursorPos = !(CRSR_POSCHG & rSh.CallSetCursor(&aDocPt, false)); + g_bValidCursorPos = !(CRSR_POSCHG & rSh.CallSetCursor(&aDocPt, false, + ScrollSizeMode::ScrollSizeMouseSelection)); EnterArea(); } } @@ -5498,6 +5503,7 @@ SwEditWin::SwEditWin(vcl::Window *pParent, SwView &rMyView): m_aTimer("SwEditWin"), m_aKeyInputFlushTimer("SwEditWin m_aKeyInputFlushTimer"), m_eBufferLanguage(LANGUAGE_DONTKNOW), + m_eScrollSizeMode(ScrollSizeMode::ScrollSizeMouseSelection), m_aTemplateTimer("SwEditWin m_aTemplateTimer"), m_pUserMarkerObj( nullptr ), @@ -6312,7 +6318,7 @@ void SwEditWin::SelectMenuPosition(SwWrtShell& rSh, const Point& rMousePos ) // the query against the content form doesn't work!!! SwMvContext aMvContext( &rSh ); if (rSh.HasSelection()) - rSh.ResetSelect(&aDocPos, false); + rSh.ResetSelect(&aDocPos, false, ScrollSizeMode::ScrollSizeDefault); rSh.SwCursorShell::SetCursor(aDocPos, false, /*Block=*/false, /*FieldInfo=*/true); } if( !bOverURLGrf ) diff --git a/sw/source/uibase/docvw/edtwin2.cxx b/sw/source/uibase/docvw/edtwin2.cxx index 11b3b3d4d9d1..0ac0fc0344b7 100644 --- a/sw/source/uibase/docvw/edtwin2.cxx +++ b/sw/source/uibase/docvw/edtwin2.cxx @@ -62,6 +62,7 @@ #include <editeng/unoprnms.hxx> #include <rootfrm.hxx> #include <unomap.hxx> +#include <names.hxx> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <LibreOfficeKit/LibreOfficeKitEnums.h> @@ -102,8 +103,8 @@ bool PSCSDFPropsQuickHelp(const HelpEvent &rEvt, SwWrtShell& rSh) OUString sText; SwView& rView = rSh.GetView(); - if (rView.IsHighlightCharDF() || rView.GetStylesHighlighterParaColorMap().size() - || rView.GetStylesHighlighterCharColorMap().size()) + if (rView.IsHighlightCharDF() || rView.IsSpotlightParaStyles() + || rView.IsSpotlightCharStyles()) { SwPosition aPos(rSh.GetDoc()->GetNodes()); Point aPt(rSh.GetWin()->PixelToLogic( @@ -138,13 +139,13 @@ bool PSCSDFPropsQuickHelp(const HelpEvent &rEvt, SwWrtShell& rSh) if (bContainsPt) { - if (rView.GetStylesHighlighterCharColorMap().size()) + if (rView.IsSpotlightCharStyles()) { // check if in CS formatting highlighted area OUString sCharStyle; xRange->getPropertyValue(u"CharStyleName"_ustr) >>= sCharStyle; if (!sCharStyle.isEmpty()) - sText = SwStyleNameMapper::GetUIName(sCharStyle, SwGetPoolIdFromName::ChrFmt); + sText = SwStyleNameMapper::GetUIName(ProgName(sCharStyle), SwGetPoolIdFromName::ChrFmt); } if (sText.isEmpty() && rView.IsHighlightCharDF()) @@ -196,7 +197,7 @@ bool PSCSDFPropsQuickHelp(const HelpEvent &rEvt, SwWrtShell& rSh) } } } - else if (rView.GetStylesHighlighterParaColorMap().size()) + else if (rView.IsSpotlightParaStyles()) { // check if in paragraph style formatting highlighted area pContentFrame = aPos.GetContentNode()->GetTextNode()->getLayoutFrame( @@ -218,7 +219,7 @@ bool PSCSDFPropsQuickHelp(const HelpEvent &rEvt, SwWrtShell& rSh) { OUString sParaStyle; xRange->getPropertyValue(u"ParaStyleName"_ustr) >>= sParaStyle; - sText = SwStyleNameMapper::GetUIName(sParaStyle, SwGetPoolIdFromName::TxtColl); + sText = SwStyleNameMapper::GetUIName(ProgName(sParaStyle), SwGetPoolIdFromName::TxtColl); // check for paragraph direct formatting if (SwDoc::HasParagraphDirectFormatting(aPos)) sText = sText + " + " + SwResId(STR_PARAGRAPH_DIRECT_FORMATTING); diff --git a/sw/source/uibase/docvw/edtwin3.cxx b/sw/source/uibase/docvw/edtwin3.cxx index 4a60637c9624..432e58fc2d5e 100644 --- a/sw/source/uibase/docvw/edtwin3.cxx +++ b/sw/source/uibase/docvw/edtwin3.cxx @@ -33,12 +33,13 @@ // Core-Notify void ScrollMDI( SwViewShell const * pVwSh, const SwRect &rRect, - sal_uInt16 nRangeX, sal_uInt16 nRangeY) + sal_uInt16 nRangeX, sal_uInt16 nRangeY, + ScrollSizeMode eScrollSizeMode) { SfxViewShell *pSfxViewShell = pVwSh->GetSfxViewShell(); if (SwView* pSwView = dynamic_cast<SwView *>(pSfxViewShell)) - pSwView->Scroll(rRect.SVRect(), nRangeX, nRangeY); + pSwView->Scroll(rRect.SVRect(), nRangeX, nRangeY, eScrollSizeMode); } // Docmdi - movable diff --git a/sw/source/uibase/docvw/romenu.cxx b/sw/source/uibase/docvw/romenu.cxx index ae59afcc1abc..c5b0eb271569 100644 --- a/sw/source/uibase/docvw/romenu.cxx +++ b/sw/source/uibase/docvw/romenu.cxx @@ -96,6 +96,7 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView &rV) , m_nReadonlyLoadGraphic(m_xMenu->GetItemId(u"loadgraphic")) , m_nReadonlyGraphicoff(m_xMenu->GetItemId(u"imagesoff")) , m_nReadonlyFullscreen(m_xMenu->GetItemId(u"fullscreen")) + , m_nReadonlyCopyField(m_xMenu->GetItemId(u"copyfield")) , m_nReadonlyCopy(m_xMenu->GetItemId(u"copy")) , m_rView(rV) , m_xBrushItem(std::make_unique<SvxBrushItem>(RES_BACKGROUND)) @@ -213,7 +214,8 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView &rV) m_xMenu->EnableItem(m_nReadonlyCopylink, false); } Check(m_nReadonlyFullscreen, SID_WIN_FULLSCREEN, rDis); - + eState = rVFrame.GetBindings().QueryState(FN_COPY_FIELD, pState); + m_xMenu->EnableItem(m_nReadonlyCopyField, eState > SfxItemState::DISABLED); m_xMenu->RemoveDisabledEntries( true ); } @@ -284,6 +286,8 @@ void SwReadOnlyPopup::Execute( vcl::Window* pWin, sal_uInt16 nId ) nExecId = SID_BROWSE_FORWARD; else if (nId == m_nReadonlySourceview) nExecId = SID_SOURCEVIEW; + else if (nId == m_nReadonlyCopyField) + nExecId = FN_COPY_FIELD; else if (nId == m_nReadonlySaveGraphic || nId == m_nReadonlySaveBackground) SaveGraphic(nId); else if (nId == m_nReadonlyCopylink) diff --git a/sw/source/uibase/docvw/romenu.hxx b/sw/source/uibase/docvw/romenu.hxx index 1af58d3dee6d..fed747f33d18 100644 --- a/sw/source/uibase/docvw/romenu.hxx +++ b/sw/source/uibase/docvw/romenu.hxx @@ -55,6 +55,7 @@ class SwReadOnlyPopup sal_uInt16 m_nReadonlyLoadGraphic; sal_uInt16 m_nReadonlyGraphicoff; sal_uInt16 m_nReadonlyFullscreen; + sal_uInt16 m_nReadonlyCopyField; sal_uInt16 m_nReadonlyCopy; SwView & m_rView; diff --git a/sw/source/uibase/fldui/fldmgr.cxx b/sw/source/uibase/fldui/fldmgr.cxx index 74ac10c03e78..7d4d4e251b67 100644 --- a/sw/source/uibase/fldui/fldmgr.cxx +++ b/sw/source/uibase/fldui/fldmgr.cxx @@ -1444,7 +1444,7 @@ bool SwFieldMgr::InsertField( { &aFormat }); } - SfxItemSetFixed<RES_BOXATR_FORMULA, RES_BOXATR_FORMULA> aBoxSet( pCurShell->GetAttrPool() ); + SfxItemSet aBoxSet(SfxItemSet::makeFixedSfxItemSet<RES_BOXATR_FORMULA, RES_BOXATR_FORMULA>(pCurShell->GetAttrPool())); OUString sFormula(comphelper::string::stripStart(rData.m_sPar2, ' ')); if ( sFormula.startsWith("=") ) diff --git a/sw/source/uibase/frmdlg/colex.cxx b/sw/source/uibase/frmdlg/colex.cxx index d8843596d87b..e0aaed8904f1 100644 --- a/sw/source/uibase/frmdlg/colex.cxx +++ b/sw/source/uibase/frmdlg/colex.cxx @@ -495,7 +495,7 @@ void SwPageGridExample::DrawPage(vcl::RenderContext& rRenderContext, const Point { SwPageExample::DrawPage(rRenderContext, rOrg, bSecond, bEnabled); - if (!m_pGridItem || !m_pGridItem->GetGridType()) + if (!m_pGridItem || m_pGridItem->GetGridType() == SwTextGrid::NONE) return; //paint the grid now @@ -563,7 +563,7 @@ void SwPageGridExample::DrawPage(vcl::RenderContext& rRenderContext, const Point m_bVertical ? aCharRect.Move(nRubyHeight, 0) : aCharRect.Move(0, nRubyHeight); //vertical lines - bool bBothLines = m_pGridItem->GetGridType() == GRID_LINES_CHARS; + bool bBothLines = m_pGridItem->GetGridType() == SwTextGrid::LinesAndChars; rRenderContext.SetFillColor(COL_TRANSPARENT); sal_Int32 nXMove = m_bVertical ? nLineHeight : 0; sal_Int32 nYMove = m_bVertical ? 0 : nLineHeight; diff --git a/sw/source/uibase/frmdlg/frmmgr.cxx b/sw/source/uibase/frmdlg/frmmgr.cxx index 275bd4a8cb66..d9213858eed3 100644 --- a/sw/source/uibase/frmdlg/frmmgr.cxx +++ b/sw/source/uibase/frmdlg/frmmgr.cxx @@ -171,7 +171,7 @@ void SwFlyFrameAttrMgr::UpdateFlyFrame() const SwFormatAnchor *pGItem, *pItem; if( (pItem = m_aSet.GetItemIfSet( RES_ANCHOR, false )) ) { - SfxItemSetFixed<RES_ANCHOR, RES_ANCHOR> aGetSet( *m_aSet.GetPool() ); + SfxItemSet aGetSet(SfxItemSet::makeFixedSfxItemSet<RES_ANCHOR, RES_ANCHOR>(*m_aSet.GetPool())); if( m_pOwnSh->GetFlyFrameAttr( aGetSet ) && 1 == aGetSet.Count() && (pGItem = aGetSet.GetItemIfSet( RES_ANCHOR, false )) && pGItem->GetAnchorId() == pItem->GetAnchorId() ) diff --git a/sw/source/uibase/inc/copyfielddlg.hxx b/sw/source/uibase/inc/copyfielddlg.hxx new file mode 100644 index 000000000000..d255930e8ea8 --- /dev/null +++ b/sw/source/uibase/inc/copyfielddlg.hxx @@ -0,0 +1,37 @@ +/* -*- 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 . + */ +#pragma once + +#include <vcl/weld.hxx> +#include <condedit.hxx> + +class CopyFieldDlg final : public weld::GenericDialogController +{ + std::unique_ptr<ConditionEdit<weld::TextView>> m_xFieldValueED; + std::unique_ptr<weld::Button> m_xCopy; + std::unique_ptr<weld::Button> m_xClose; + + DECL_LINK(CloseHdl, weld::Button&, void); + DECL_LINK(CopyHdl, weld::Button&, void); + +public: + CopyFieldDlg(weld::Widget* pParent, const rtl::OUString& rFieldValue); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/inc/edtwin.hxx b/sw/source/uibase/inc/edtwin.hxx index 53e7ddf16568..bb87a61a39ca 100644 --- a/sw/source/uibase/inc/edtwin.hxx +++ b/sw/source/uibase/inc/edtwin.hxx @@ -28,6 +28,7 @@ #include <vcl/transfer.hxx> #include <swevent.hxx> #include <swtypes.hxx> +#include <viewsh.hxx> class SwWrtShell; class SwView; @@ -81,6 +82,7 @@ class SAL_DLLPUBLIC_RTTI SwEditWin final : public vcl::DocWindow, LanguageType m_eBufferLanguage; Point m_aStartPos; Point m_aMovePos; + ScrollSizeMode m_eScrollSizeMode; Point m_aRszMvHdlPt; Timer m_aTemplateTimer; @@ -171,7 +173,7 @@ class SAL_DLLPUBLIC_RTTI SwEditWin final : public vcl::DocWindow, DECL_LINK( TemplateTimerHdl, Timer *, void ); void MoveCursor( SwWrtShell &rSh, const Point& rDocPos, - const bool bOnlyText, bool bLockView ); + const bool bOnlyText, bool bLockView); virtual void DataChanged( const DataChangedEvent& ) override; virtual void PrePaint(vcl::RenderContext& rRenderContext) override; diff --git a/sw/source/uibase/inc/wrtsh.hxx b/sw/source/uibase/inc/wrtsh.hxx index bc9763c0b1e0..21a59b8c039b 100644 --- a/sw/source/uibase/inc/wrtsh.hxx +++ b/sw/source/uibase/inc/wrtsh.hxx @@ -108,7 +108,7 @@ private: using SwEditShell::AutoCorrect; using SwCursorShell::GotoMark; - typedef tools::Long (SwWrtShell::*SELECTFUNC)(const Point *, bool bProp ); + typedef tools::Long (SwWrtShell::*SELECTFUNC)(const Point *, bool bProp, ScrollSizeMode eScrollSizeMode ); typedef void (SwWrtShell::*SELECTFUNC2)(const Point *, bool bProp ); SELECTFUNC2 m_fnDrag = &SwWrtShell::BeginDrag; @@ -120,16 +120,20 @@ public: using SwCursorShell::GotoFootnoteAnchor; using SwEditShell::Insert; - tools::Long CallSetCursor(const Point* pPt, bool bProp) { return (this->*m_fnSetCursor)(pPt, bProp); } + tools::Long CallSetCursor(const Point* pPt, bool bProp, + ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault) + { return (this->*m_fnSetCursor)(pPt, bProp, eScrollSizeMode); } void Drag (const Point* pPt, bool bProp) { (this->*m_fnDrag)(pPt, bProp); } void EndDrag (const Point* pPt, bool bProp) { (this->*m_fnEndDrag)(pPt, bProp); } - tools::Long KillSelection(const Point* pPt, bool bProp) { return (this->*m_fnKillSel)(pPt, bProp); } + tools::Long KillSelection(const Point* pPt, bool bProp, + ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault) + { return (this->*m_fnKillSel)(pPt, bProp, eScrollSizeMode ); } bool IsSplitVerticalByDefault() const; void SetSplitVerticalByDefault(bool value); // reset all selections - SW_DLLPUBLIC tools::Long ResetSelect( const Point *, bool ); + SW_DLLPUBLIC tools::Long ResetSelect( const Point *, bool, ScrollSizeMode ); // resets the cursorstack after movement with PageUp/-Down if a stack is built up inline void ResetCursorStack(); @@ -614,9 +618,11 @@ private: void ResetCursorStack_(); using SwCursorShell::SetCursor; - tools::Long SetCursor(const Point *, bool bProp=false ); + tools::Long SetCursor(const Point *, bool bProp=false, + ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); - tools::Long SetCursorKillSel(const Point *, bool bProp ); + tools::Long SetCursorKillSel(const Point *, bool bProp, + ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); void BeginDrag(const Point *, bool bProp ); void DefaultDrag(const Point *, bool bProp ); @@ -632,7 +638,7 @@ private: void SttLeaveSelect(); void AddLeaveSelect(); - tools::Long Ignore(const Point *, bool bProp ); + tools::Long Ignore(const Point *, bool bProp, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); void LeaveExtSel() { m_bSelWrd = m_bSelLn = false;} diff --git a/sw/source/uibase/lingu/hhcwrp.cxx b/sw/source/uibase/lingu/hhcwrp.cxx index 47bf47d0f537..9cfb85ba725b 100644 --- a/sw/source/uibase/lingu/hhcwrp.cxx +++ b/sw/source/uibase/lingu/hhcwrp.cxx @@ -312,7 +312,7 @@ void SwHHCWrapper::ChangeText_impl( const OUString &rNewText, bool bKeepAttribut if (bKeepAttributes) { // get item set with all relevant attributes - SfxItemSetFixed<RES_CHRATR_BEGIN, RES_FRMATR_END> aItemSet( m_rWrtShell.GetAttrPool() ); + SfxItemSet aItemSet(SfxItemSet::makeFixedSfxItemSet<RES_CHRATR_BEGIN, RES_FRMATR_END>(m_rWrtShell.GetAttrPool())); // get all attributes spanning the whole selection in order to // restore those for the new text m_rWrtShell.GetCurAttr( aItemSet ); @@ -461,10 +461,9 @@ void SwHHCWrapper::ReplaceUnit( OSL_ENSURE( GetTargetLanguage() == LANGUAGE_CHINESE_SIMPLIFIED || GetTargetLanguage() == LANGUAGE_CHINESE_TRADITIONAL, "SwHHCWrapper::ReplaceUnit : unexpected target language" ); - SfxItemSetFixed< - RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, - RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_LANGUAGE> - aSet( m_rWrtShell.GetAttrPool() ); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet< + RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, + RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_LANGUAGE>(m_rWrtShell.GetAttrPool())); if (pNewUnitLanguage) { aSet.Put( SvxLanguageItem( *pNewUnitLanguage, RES_CHRATR_CJK_LANGUAGE ) ); diff --git a/sw/source/uibase/lingu/olmenu.cxx b/sw/source/uibase/lingu/olmenu.cxx index acf36d89a113..b501bd45fc14 100644 --- a/sw/source/uibase/lingu/olmenu.cxx +++ b/sw/source/uibase/lingu/olmenu.cxx @@ -361,6 +361,7 @@ SwSpellPopup::SwSpellPopup( } } } + m_xPopupMenu->EnableItem(m_nAddMenuId, (nItemId - MN_DICTIONARIES_START) > 1); m_xPopupMenu->EnableItem(m_nAddId, (nItemId - MN_DICTIONARIES_START) == 1); @@ -595,9 +596,8 @@ void SwSpellPopup::InitItemCommands(const css::uno::Sequence< OUString >& aSugge m_xPopupMenu->SetItemCommand(nItemId, sCommandString); } - PopupMenu *pMenu = m_xPopupMenu->GetPopupMenu(m_nLangSelectionMenuId); m_xPopupMenu->SetItemCommand(m_nLangSelectionMenuId, u".uno:SetSelectionLanguageMenu"_ustr); - if(pMenu) + if (PopupMenu *pMenu = m_xPopupMenu->GetPopupMenu(m_nLangSelectionMenuId)) { for (const auto& item : m_aLangTable_Text) { @@ -610,9 +610,8 @@ void SwSpellPopup::InitItemCommands(const css::uno::Sequence< OUString >& aSugge pMenu->SetItemCommand(MN_SET_SELECTION_MORE, u".uno:FontDialog?Page:string=font"_ustr); } - pMenu = m_xPopupMenu->GetPopupMenu(m_nLangParaMenuId); m_xPopupMenu->SetItemCommand(m_nLangParaMenuId, u".uno:SetParagraphLanguageMenu"_ustr); - if(pMenu) + if (PopupMenu* pMenu = m_xPopupMenu->GetPopupMenu(m_nLangParaMenuId)) { for (const auto& item : m_aLangTable_Paragraph) { @@ -624,6 +623,20 @@ void SwSpellPopup::InitItemCommands(const css::uno::Sequence< OUString >& aSugge pMenu->SetItemCommand(MN_SET_PARA_RESET, u".uno:LanguageStatus?Language:string=Paragraph_RESET_LANGUAGES"_ustr); pMenu->SetItemCommand(MN_SET_PARA_MORE, u".uno:FontDialogForParagraph"_ustr); } + + OUString sCommandString = ".uno:AddToWordbook?Wordbook:string=" + m_aDicNameSingle; + m_xPopupMenu->SetItemCommand(m_nAddId, sCommandString); + m_xPopupMenu->SetItemCommand(m_nAddMenuId, sCommandString); + if (PopupMenu *pMenu = m_xPopupMenu->GetPopupMenu(m_nAddMenuId)) + { + for (sal_uInt16 i = 0, nItemCount = pMenu->GetItemCount(); i < nItemCount; ++i) + { + sal_uInt16 nItemId = pMenu->GetItemId(i); + OUString sDict = pMenu->GetItemText(nItemId); + sCommandString = ".uno:AddToWordbook?Wordbook:string=" + sDict; + pMenu->SetItemCommand(nItemId, sCommandString); + } + } } void SwSpellPopup::checkRedline() diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx index 0231546f1504..a0f889e69406 100644 --- a/sw/source/uibase/shells/annotsh.cxx +++ b/sw/source/uibase/shells/annotsh.cxx @@ -96,8 +96,8 @@ #include <swabstdlg.hxx> #include <comphelper/string.hxx> +#include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> -#include <cppuhelper/bootstrap.hxx> #include <langhelper.hxx> @@ -499,7 +499,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq ) FieldUnit eMetric = ::GetDfltMetric(dynamic_cast<SwWebView*>( pView) != nullptr ); SwModule::get()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, eMetric)); */ - SfxItemSetFixed<XATTR_FILLSTYLE, XATTR_FILLCOLOR, EE_ITEMS_START, EE_ITEMS_END> aDlgAttr(GetPool()); + SfxItemSet aDlgAttr(SfxItemSet::makeFixedSfxItemSet<XATTR_FILLSTYLE, XATTR_FILLCOLOR, EE_ITEMS_START, EE_ITEMS_END>(GetPool())); // util::Language does not exist in the EditEngine! Therefore not included in the set. @@ -552,10 +552,9 @@ void SwAnnotationShell::Exec( SfxRequest &rReq ) FieldUnit eMetric = ::GetDfltMetric(dynamic_cast<SwWebView*>( pView) != nullptr ); SwModule::get()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, eMetric)); */ - SfxItemSetFixed< - EE_ITEMS_START, EE_ITEMS_END, - SID_ATTR_PARA_HYPHENZONE, SID_ATTR_PARA_WIDOWS> - aDlgAttr( GetPool() ); + SfxItemSet aDlgAttr(SfxItemSet::makeFixedSfxItemSet< + EE_ITEMS_START, EE_ITEMS_END, + SID_ATTR_PARA_HYPHENZONE, SID_ATTR_PARA_WIDOWS>(GetPool())); aDlgAttr.Put(aEditAttr); @@ -597,10 +596,9 @@ void SwAnnotationShell::Exec( SfxRequest &rReq ) if( !static_cast<const SfxBoolItem*>(pPoolItem)->GetValue() ) bLeftToRight = !bLeftToRight; } - SfxItemSetFixed< - EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR, - EE_PARA_JUST, EE_PARA_JUST> - aAttr( *aNewAttr.GetPool() ); + SfxItemSet aAttr(SfxItemSet::makeFixedSfxItemSet< + EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR, + EE_PARA_JUST, EE_PARA_JUST>(*aNewAttr.GetPool())); SvxAdjust nAdjust = SvxAdjust::Left; if( const SvxAdjustItem* pAdjustItem = aEditAttr.GetItemIfSet(EE_PARA_JUST ) ) @@ -1363,8 +1361,7 @@ void SwAnnotationShell::ExecLingu(SfxRequest &rReq) case SID_CHINESE_CONVERSION: { //open ChineseTranslationDialog - Reference< XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if(xContext.is()) { Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() ); @@ -1867,10 +1864,9 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq) pOutliner->SetUpdateLayout(false); SfxItemSet aOldSet( pOLV->GetAttribs() ); - SfxItemSetFixed< - EE_CHAR_FONTINFO, EE_CHAR_FONTINFO, - EE_CHAR_FONTINFO_CJK, EE_CHAR_FONTINFO_CTL> - aFontSet( *aOldSet.GetPool() ); + SfxItemSet aFontSet(SfxItemSet::makeFixedSfxItemSet< + EE_CHAR_FONTINFO, EE_CHAR_FONTINFO, EE_CHAR_FONTINFO_CJK, + EE_CHAR_FONTINFO_CTL>(*aOldSet.GetPool())); aFontSet.Set( aOldSet ); // Insert string diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx index e75bb001df08..3664e17c50de 100644 --- a/sw/source/uibase/shells/tabsh.cxx +++ b/sw/source/uibase/shells/tabsh.cxx @@ -858,7 +858,7 @@ void SwTableShell::Execute(SfxRequest &rReq) break; case FN_TABLE_SET_READ_ONLY_CELLS: rSh.ProtectCells(); - rSh.ResetSelect( nullptr, false ); + rSh.ResetSelect( nullptr, false, ScrollSizeMode::ScrollSizeDefault ); bCallDone = true; break; case FN_TABLE_UNSET_READ_ONLY_CELLS: diff --git a/sw/source/uibase/shells/textfld.cxx b/sw/source/uibase/shells/textfld.cxx index 42fd111f2684..ea69fe7e8064 100644 --- a/sw/source/uibase/shells/textfld.cxx +++ b/sw/source/uibase/shells/textfld.cxx @@ -201,6 +201,24 @@ void SwTextShell::ExecField(SfxRequest &rReq) } break; } + case FN_COPY_FIELD: + { + //call copy field dialog with field string - if there is any! + SwField* pField = rSh.GetCurField(true); + if( pField && pField->GetFieldName().getLength()) + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + VclPtr<AbstractCopyFieldDlg> pDlg(pFact->CreateCopyFieldDlg( + GetView().GetFrameWeld(), pField->ExpandField(true, nullptr))); + pDlg->StartExecuteAsync( + [pDlg] (sal_Int32 /*nResult*/)->void + { + pDlg->disposeOnce(); + } + ); + } + break; + } case FN_UPDATE_SEL_FIELD: { SwField *pField = rSh.GetCurField(); @@ -1594,7 +1612,19 @@ void SwTextShell::StateField( SfxItemSet &rSet ) } } break; - + case FN_COPY_FIELD: + { + if( !bGetField ) + { + pField = rSh.GetCurField(true); + bGetField = true; + } + SwFieldIds nTempWhich = pField ? pField->GetTyp()->Which() : SwFieldIds::Unknown; + if (SwFieldIds::Unknown == nTempWhich + || !pField->ExpandField(true, nullptr).getLength()) + rSet.DisableItem( nWhich ); + } + break; case FN_UPDATE_SEL_FIELD: { pField = rSh.GetCurField(); diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx index 27806d9d688a..bc6e8b74254d 100644 --- a/sw/source/uibase/shells/textsh.cxx +++ b/sw/source/uibase/shells/textsh.cxx @@ -692,7 +692,7 @@ void SwTextShell::StateInsert( SfxItemSet &rSet ) case SID_HYPERLINK_GETLINK: { - SfxItemSetFixed<RES_TXTATR_INETFMT, RES_TXTATR_INETFMT> aSet(GetPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<RES_TXTATR_INETFMT, RES_TXTATR_INETFMT>(GetPool())); rSh.GetCurAttr( aSet ); SvxHyperlinkItem aHLinkItem; @@ -981,9 +981,10 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq ) } SwWrtShell &rSh = GetShell(); - SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT, - RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, - RES_CHRATR_CTL_FONT, RES_CHRATR_CTL_FONT> aSet( GetPool() ); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet< + RES_CHRATR_FONT, RES_CHRATR_FONT, + RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, + RES_CHRATR_CTL_FONT, RES_CHRATR_CTL_FONT>(GetPool())); rSh.GetCurAttr( aSet ); SvtScriptType nScript = rSh.GetScriptType(); @@ -1080,9 +1081,10 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq ) aNewFontItem->SetPitch( aNewFont.GetPitch()); aNewFontItem->SetCharSet( aNewFont.GetCharSet() ); - SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT, - RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, - RES_CHRATR_CTL_FONT, RES_CHRATR_CTL_FONT> aRestoreSet( GetPool() ); + SfxItemSet aRestoreSet(SfxItemSet::makeFixedSfxItemSet< + RES_CHRATR_FONT, RES_CHRATR_FONT, + RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT, + RES_CHRATR_CTL_FONT, RES_CHRATR_CTL_FONT>(GetPool())); nScript = g_pBreakIt->GetAllScriptsOfText( aChars ); if( SvtScriptType::LATIN & nScript ) diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx index 0c357d1d77d0..6ec961fcac00 100644 --- a/sw/source/uibase/shells/textsh1.cxx +++ b/sw/source/uibase/shells/textsh1.cxx @@ -1144,7 +1144,7 @@ void SwTextShell::Execute(SfxRequest &rReq) SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONT> aSet( rWrtSh.GetAttrPool() ); rWrtSh.GetCurAttr( aSet ); rWrtSh.SetAttrSet( aSet, SetAttrMode::DONTEXPAND ); - rWrtSh.ResetSelect(nullptr, false); + rWrtSh.ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); rWrtSh.EndSelect(); rWrtSh.GotoFootnoteText(); } diff --git a/sw/source/uibase/table/chartins.cxx b/sw/source/uibase/table/chartins.cxx index cb10778be9bb..f7290820da35 100644 --- a/sw/source/uibase/table/chartins.cxx +++ b/sw/source/uibase/table/chartins.cxx @@ -36,7 +36,7 @@ #include <cmdid.h> #include <anchoredobject.hxx> -#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> #include <com/sun/star/awt/Point.hpp> #include <com/sun/star/awt/Size.hpp> @@ -159,9 +159,7 @@ SwInsertChart::SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*, v xChartModel.set( SwTableFUNC( &rWrtShell ).InsertChart( xDataProvider, xDataProvider.is(), aRangeString, &pFlyFrameFormat )); //open wizard - //@todo get context from writer if that has one - uno::Reference< uno::XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if( !(xContext.is() && xChartModel.is() && xDataProvider.is())) return; diff --git a/sw/source/uibase/uiview/view0.cxx b/sw/source/uibase/uiview/view0.cxx index e4e89e76c1eb..dab7f898fe51 100644 --- a/sw/source/uibase/uiview/view0.cxx +++ b/sw/source/uibase/uiview/view0.cxx @@ -29,6 +29,7 @@ #include <viewopt.hxx> #include <globals.h> #include <sfx2/infobar.hxx> +#include <sfx2/lokhelper.hxx> #include <sfx2/request.hxx> #include <svl/whiter.hxx> #include <svx/srchdlg.hxx> @@ -37,9 +38,11 @@ #include <sfx2/dispatch.hxx> #include <sfx2/sidebar/SidebarChildWindow.hxx> #include <uivwimp.hxx> +#include <unotxdoc.hxx> #include <avmedia/mediaplayer.hxx> #include <swmodule.hxx> #include <com/sun/star/linguistic2/XLinguProperties.hpp> +#include <comphelper/servicehelper.hxx> #include <osl/diagnose.h> #include <sfx2/objface.hxx> @@ -570,10 +573,13 @@ void SwView::ExecViewOptions(SfxRequest &rReq) break; case SID_SPOTLIGHT_PARASTYLES: - if (!pArgs || (pArgs && !pArgs->HasItem(FN_PARAM_1))) + if (!comphelper::LibreOfficeKit::isActive()) { - const SfxStringItem sDeckName(SID_SIDEBAR_DECK, u"StyleListDeck"_ustr); - GetDispatcher().ExecuteList(SID_SIDEBAR_DECK, SfxCallMode::SYNCHRON, { &sDeckName }); + if (!pArgs || !pArgs->HasItem(FN_PARAM_1)) + { + const SfxStringItem sDeckName(SID_SIDEBAR_DECK, u"StyleListDeck"_ustr); + GetDispatcher().ExecuteList(SID_SIDEBAR_DECK, SfxCallMode::SYNCHRON, { &sDeckName }); + } } if (STATE_TOGGLE == eState) bFlag = !m_bIsSpotlightParaStyles; @@ -581,10 +587,13 @@ void SwView::ExecViewOptions(SfxRequest &rReq) break; case SID_SPOTLIGHT_CHARSTYLES: - if (!pArgs || (pArgs && !pArgs->HasItem(FN_PARAM_1))) + if (!comphelper::LibreOfficeKit::isActive()) { - const SfxStringItem sDeckName(SID_SIDEBAR_DECK, u"StyleListDeck"_ustr); - GetDispatcher().ExecuteList(SID_SIDEBAR_DECK, SfxCallMode::SYNCHRON, { &sDeckName }); + if (!pArgs || !pArgs->HasItem(FN_PARAM_1)) + { + const SfxStringItem sDeckName(SID_SIDEBAR_DECK, u"StyleListDeck"_ustr); + GetDispatcher().ExecuteList(SID_SIDEBAR_DECK, SfxCallMode::SYNCHRON, { &sDeckName }); + } } if (STATE_TOGGLE == eState) bFlag = !m_bIsSpotlightCharStyles; @@ -755,6 +764,14 @@ void SwView::ExecViewOptions(SfxRequest &rReq) pModule->ApplyUsrPref( *pOpt, this, bWebView ? SvViewOpt::DestWeb : SvViewOpt::DestText ); + if (nSlot == SID_SPOTLIGHT_CHARSTYLES || nSlot == SID_SPOTLIGHT_PARASTYLES) + { + SwXTextDocument* pModel = comphelper::getFromUnoTunnel<SwXTextDocument>(GetCurrentDocument()); + SfxLokHelper::notifyViewRenderState(this, pModel); + if (vcl::Window *pMyWin = rSh.GetWin()) + pMyWin->Invalidate(); + } + // #i6193# let postits know about new spellcheck setting if ( nSlot == SID_AUTOSPELL_CHECK ) GetPostItMgr()->SetSpellChecking(); @@ -787,7 +804,7 @@ void SwView::ExecFormatFootnote() void SwView::ExecNumberingOutline(SfxItemPool & rPool) { - SfxItemSetFixed<FN_PARAM_1, FN_PARAM_1> aTmp(rPool); + SfxItemSet aTmp(SfxItemSet::makeFixedSfxItemSet<FN_PARAM_1, FN_PARAM_1>(rPool)); SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); VclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateOutlineTabDialog(GetFrameWeld(), &aTmp, GetWrtShell())); pDlg->StartExecuteAsync( diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx index 74b2b9f738ab..a566915a7e16 100644 --- a/sw/source/uibase/uiview/view2.cxx +++ b/sw/source/uibase/uiview/view2.cxx @@ -157,6 +157,7 @@ #include <basegfx/utils/zoomtools.hxx> #include <ndtxt.hxx> +#include <grfatr.hxx> #include <svx/srchdlg.hxx> #include <o3tl/string_view.hxx> @@ -330,19 +331,13 @@ ErrCode SwView::InsertGraphic( const OUString &rPath, const OUString &rFilter, if( ERRCODE_NONE == aResult ) { + Degree10 aRotation; GraphicNativeMetadata aMetadata; if ( aMetadata.read(aGraphic) ) - { - const Degree10 aRotation = aMetadata.getRotation(); - if (aRotation) - { - GraphicNativeTransform aTransform( aGraphic ); - aTransform.rotate( aRotation ); - } - } + aRotation = aMetadata.getRotation(); - SwFlyFrameAttrMgr aFrameManager( true, GetWrtShellPtr(), Frmmgr_Type::GRF, nullptr ); SwWrtShell& rShell = GetWrtShell(); + SwFlyFrameAttrMgr aFrameManager( true, &rShell, Frmmgr_Type::GRF, nullptr ); // #i123922# determine if we really want to insert or replace the graphic at a selected object const bool bReplaceMode(rShell.HasSelection() && SelectionType::Frame == rShell.GetSelectionType()); @@ -376,6 +371,14 @@ ErrCode SwView::InsertGraphic( const OUString &rPath, const OUString &rFilter, rShell.InsertGraphic( OUString(), OUString(), aGraphic, &aFrameManager ); } + if (aRotation) + { + SfxItemSetFixed<RES_GRFATR_ROTATION, RES_GRFATR_ROTATION> aSet( rShell.GetAttrPool() ); + rShell.GetCurAttr( aSet ); + const SwRotationGrf& rRotation = aSet.Get(RES_GRFATR_ROTATION); + aFrameManager.SetRotation(rRotation.GetValue(), aRotation, rRotation.GetUnrotatedSize()); + } + // it is too late after "EndAction" because the Shell can already be destroyed. rShell.EndAction(); } diff --git a/sw/source/uibase/uiview/viewling.cxx b/sw/source/uibase/uiview/viewling.cxx index 0a237988fed0..ef7c2dfbc77c 100644 --- a/sw/source/uibase/uiview/viewling.cxx +++ b/sw/source/uibase/uiview/viewling.cxx @@ -31,11 +31,11 @@ #include <comphelper/scopeguard.hxx> #include <toolkit/helper/vclunohelper.hxx> #include <vcl/weld.hxx> -#include <svtools/ehdl.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/request.hxx> #include <svx/dialmgr.hxx> +#include <svx/ehdl.hxx> #include <svx/svxerr.hxx> #include <svx/svxdlg.hxx> #include <osl/diagnose.h> @@ -76,7 +76,6 @@ #include <vcl/unohelp.hxx> #include <rtl/ustring.hxx> -#include <cppuhelper/bootstrap.hxx> #include <svtools/langtab.hxx> #include <editeng/editerr.hxx> @@ -107,8 +106,7 @@ void SwView::ExecLingu(SfxRequest &rReq) case SID_CHINESE_CONVERSION: { //open ChineseTranslationDialog - Reference< XComponentContext > xContext( - ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one + uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext()); if(xContext.is()) { Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() ); @@ -409,8 +407,7 @@ void SwView::HyphenateDocument() return; } - SfxErrorContext aContext( ERRCTX_SVX_LINGU_HYPHENATION, OUString(), m_pEditWin->GetFrameWeld(), - RID_SVXERRCTX, SvxResLocale() ); + SvxErrorContext aContext(ERRCTX_SVX_LINGU_HYPHENATION, OUString(), m_pEditWin->GetFrameWeld()); Reference< XHyphenator > xHyph( ::GetHyphenator() ); if (!xHyph.is()) @@ -533,8 +530,7 @@ void SwView::StartThesaurus() if (!IsValidSelectionForThesaurus()) return; - SfxErrorContext aContext( ERRCTX_SVX_LINGU_THESAURUS, OUString(), m_pEditWin->GetFrameWeld(), - RID_SVXERRCTX, SvxResLocale() ); + SvxErrorContext aContext(ERRCTX_SVX_LINGU_THESAURUS, OUString(), m_pEditWin->GetFrameWeld()); // Determine language LanguageType eLang = m_pWrtShell->GetCurLang(); diff --git a/sw/source/uibase/uiview/viewport.cxx b/sw/source/uibase/uiview/viewport.cxx index f511f4a8e354..4fab16ff7755 100644 --- a/sw/source/uibase/uiview/viewport.cxx +++ b/sw/source/uibase/uiview/viewport.cxx @@ -339,14 +339,29 @@ void SwView::CheckVisArea() // within the new visible area. // sal_uInt16 nRange optional accurate indication of the // range by which to scroll if necessary. +// eScrollSizeMode mouse selection should only bring the selected part +// into the visible area, timer call needs increased size -void SwView::CalcPt( Point *pPt, const tools::Rectangle &rRect, - sal_uInt16 nRangeX, sal_uInt16 nRangeY) +void SwView::CalcPt( Point *pPt, const tools::Rectangle &rRect, sal_uInt16 nRangeX, + sal_uInt16 nRangeY, ScrollSizeMode eScrollSizeMode) { const SwTwips lMin = IsDocumentBorder() ? DOCUMENTBORDER : 0; - tools::Long nYScroll = GetYScroll(); + const tools::Long nDefaultYScroll = GetYScroll(); + tools::Long nYScroll; + if (eScrollSizeMode != ScrollSizeMode::ScrollSizeDefault) + { + nYScroll = m_aVisArea.Top() > rRect.Top() ? + m_aVisArea.Top() - rRect.Top() : + rRect.Bottom() - m_aVisArea.Bottom(); + if (eScrollSizeMode == ScrollSizeMode::ScrollSizeTimer) + nYScroll = std::min(nDefaultYScroll, nYScroll * 5); + else if (eScrollSizeMode == ScrollSizeMode::ScrollSizeTimer2) + nYScroll = 2 * nDefaultYScroll; + } + else + nYScroll = nDefaultYScroll; tools::Long nDesHeight = rRect.GetHeight(); tools::Long nCurHeight = m_aVisArea.GetHeight(); nYScroll = std::min(nYScroll, nCurHeight - nDesHeight); // If it is scarce, then scroll not too much. @@ -391,7 +406,8 @@ bool SwView::IsScroll( const tools::Rectangle &rRect ) const return m_bCenterCursor || m_bTopCursor || !m_aVisArea.Contains(rRect); } -void SwView::Scroll( const tools::Rectangle &rRect, sal_uInt16 nRangeX, sal_uInt16 nRangeY ) +void SwView::Scroll( const tools::Rectangle &rRect, sal_uInt16 nRangeX, sal_uInt16 nRangeY + , ScrollSizeMode eScrollSizeMode ) { if ( m_aVisArea.IsEmpty() ) return; @@ -463,7 +479,8 @@ void SwView::Scroll( const tools::Rectangle &rRect, sal_uInt16 nRangeX, sal_uInt CalcPt( &aPt, tools::Rectangle( rRect.TopLeft(), aSize ), static_cast< sal_uInt16 >((aVisSize.Width() - aSize.Width()) / 2), - static_cast< sal_uInt16 >((aVisSize.Height()- aSize.Height())/ 2) ); + static_cast< sal_uInt16 >((aVisSize.Height()- aSize.Height())/ 2), + eScrollSizeMode ); if( m_bTopCursor ) { @@ -480,7 +497,7 @@ void SwView::Scroll( const tools::Rectangle &rRect, sal_uInt16 nRangeX, sal_uInt if( !m_bCenterCursor ) { Point aPt( m_aVisArea.TopLeft() ); - CalcPt( &aPt, rRect, nRangeX, nRangeY ); + CalcPt( &aPt, rRect, nRangeX, nRangeY, eScrollSizeMode ); if( m_bTopCursor ) { diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 7052d22ca1c1..865c789be815 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -3647,6 +3647,15 @@ OString SwXTextDocument::getViewRenderState(SfxViewShell* pViewShell) if (pVOpt->GetDocColor() == svtools::ColorConfig::GetDefaultColor(svtools::DOCCOLOR, 1)) aState.append('D'); + if (pView->IsSpotlightParaStyles() || pView->IsSpotlightCharStyles()) + { + aState.append('H'); + if (pView->IsSpotlightParaStyles()) + aState.append('P'); + if (pView->IsSpotlightCharStyles()) + aState.append('C'); + } + aState.append(';'); OString aThemeName = OUStringToOString(pVOpt->GetThemeName(), RTL_TEXTENCODING_UTF8); @@ -4072,7 +4081,7 @@ void SwXTextDocument::resetSelection() SolarMutexGuard aGuard; SwWrtShell* pWrtShell = m_pDocShell->GetWrtShell(); - pWrtShell->ResetSelect(nullptr, false); + pWrtShell->ResetSelect(nullptr, false, ScrollSizeMode::ScrollSizeDefault); } void SAL_CALL SwXTextDocument::paintTile( const ::css::uno::Any& Parent, ::sal_Int32 nOutputWidth, ::sal_Int32 nOutputHeight, ::sal_Int32 nTilePosX, ::sal_Int32 nTilePosY, ::sal_Int32 nTileWidth, ::sal_Int32 nTileHeight ) diff --git a/sw/source/uibase/uno/unotxvw.cxx b/sw/source/uibase/uno/unotxvw.cxx index d6910105529e..373be4bab8ab 100644 --- a/sw/source/uibase/uno/unotxvw.cxx +++ b/sw/source/uibase/uno/unotxvw.cxx @@ -74,6 +74,7 @@ #include <tools/UnitConversion.hxx> #include <comphelper/dumpxmltostring.hxx> #include <fmtanchr.hxx> +#include <names.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -501,7 +502,7 @@ Sequence< Sequence< PropertyValue > > SwXTextView::getRubyList( sal_Bool /*bAuto const sal_uInt16 nCount = SwDoc::FillRubyList( *rSh.GetCursor(), aList ); Sequence< Sequence< PropertyValue > > aRet(nCount); Sequence< PropertyValue >* pRet = aRet.getArray(); - OUString aString; + ProgName aString; for(sal_uInt16 n = 0; n < nCount; n++) { const SwRubyListEntry* pEntry = aList[n].get(); @@ -517,7 +518,7 @@ Sequence< Sequence< PropertyValue > > SwXTextView::getRubyList( sal_Bool /*bAuto pValues[1].Value <<= rAttr.GetText(); pValues[2].Name = UNO_NAME_RUBY_CHAR_STYLE_NAME; SwStyleNameMapper::FillProgName(rAttr.GetCharFormatName(), aString, SwGetPoolIdFromName::ChrFmt ); - pValues[2].Value <<= aString; + pValues[2].Value <<= aString.toString(); pValues[3].Name = UNO_NAME_RUBY_ADJUST; pValues[3].Value <<= static_cast<sal_Int16>(rAttr.GetAdjustment()); pValues[4].Name = UNO_NAME_RUBY_IS_ABOVE; @@ -566,7 +567,7 @@ void SAL_CALL SwXTextView::setRubyList( if(rProperty.Value >>= sTmp) { OUString sName; - SwStyleNameMapper::FillUIName(sTmp, sName, SwGetPoolIdFromName::ChrFmt ); + SwStyleNameMapper::FillUIName(ProgName(sTmp), sName, SwGetPoolIdFromName::ChrFmt ); const sal_uInt16 nPoolId = sName.isEmpty() ? 0 : SwStyleNameMapper::GetPoolIdFromUIName(sName, SwGetPoolIdFromName::ChrFmt ); diff --git a/sw/source/uibase/utlui/attrdesc.cxx b/sw/source/uibase/utlui/attrdesc.cxx index 71fdd4ab5436..f134ca7f2707 100644 --- a/sw/source/uibase/utlui/attrdesc.cxx +++ b/sw/source/uibase/utlui/attrdesc.cxx @@ -645,13 +645,13 @@ bool SwTextGridItem::GetPresentation switch ( GetGridType() ) { - case GRID_NONE : + case SwTextGrid::NONE : pId = STR_GRID_NONE; break; - case GRID_LINES_ONLY : + case SwTextGrid::LinesOnly : pId = STR_GRID_LINES_ONLY; break; - case GRID_LINES_CHARS : + case SwTextGrid::LinesAndChars : pId = STR_GRID_LINES_CHARS; break; } diff --git a/sw/source/uibase/wrtsh/move.cxx b/sw/source/uibase/wrtsh/move.cxx index 784a3992d584..a2c50dae8582 100644 --- a/sw/source/uibase/wrtsh/move.cxx +++ b/sw/source/uibase/wrtsh/move.cxx @@ -84,7 +84,7 @@ void SwWrtShell::MoveCursor( bool bWithSelect ) else { EndSelect(); - (this->*m_fnKillSel)( nullptr, false ); + (this->*m_fnKillSel)( nullptr, false, ScrollSizeMode::ScrollSizeDefault ); } } @@ -498,7 +498,7 @@ bool SwWrtShell::PushCursor(SwTwips lOffset, bool bSelect) CallChgLnk(); } - (this->*m_fnSetCursor)( &m_aDest, true ); + (this->*m_fnSetCursor)( &m_aDest, true, ScrollSizeMode::ScrollSizeDefault ); bDiff = aOldRect != GetCharRect(); @@ -539,7 +539,7 @@ bool SwWrtShell::PopCursor(bool bUpdate, bool bSelect) else EndSelect(); - (this->*m_fnSetCursor)(&m_pCursorStack->aDocPos, !m_pCursorStack->bIsFrameSel); + (this->*m_fnSetCursor)(&m_pCursorStack->aDocPos, !m_pCursorStack->bIsFrameSel, ScrollSizeMode::ScrollSizeDefault); if( m_pCursorStack->bIsFrameSel && IsObjSelectable(m_pCursorStack->aDocPos)) { HideCursor(); diff --git a/sw/source/uibase/wrtsh/select.cxx b/sw/source/uibase/wrtsh/select.cxx index 7d15d2cb4d68..701cb23d487a 100644 --- a/sw/source/uibase/wrtsh/select.cxx +++ b/sw/source/uibase/wrtsh/select.cxx @@ -41,11 +41,8 @@ #include <vcl/uitest/logger.hxx> #include <vcl/uitest/eventdescription.hxx> -#include <vcl/weld.hxx> -#include <vcl/builder.hxx> #include <officecfg/Office/Common.hxx> -#include <unotools/configmgr.hxx> -#include <bitmaps.hlst> +#include <strings.hrc> #include <svx/svdview.hxx> @@ -318,7 +315,7 @@ void SwWrtShell::PopMode() // eponymous methods in the CursorShell, the second removes // all selections at first. -tools::Long SwWrtShell::SetCursor(const Point *pPt, bool bTextOnly) +tools::Long SwWrtShell::SetCursor(const Point *pPt, bool bTextOnly, ScrollSizeMode eScrollSizeMode) { // Remove a possibly present selection at the position // of the mouseclick @@ -327,14 +324,14 @@ tools::Long SwWrtShell::SetCursor(const Point *pPt, bool bTextOnly) ClearMark(); } - return SwCursorShell::SetCursor(*pPt, bTextOnly); + return SwCursorShell::SetCursor(*pPt, bTextOnly, true, false, eScrollSizeMode ); } -tools::Long SwWrtShell::SetCursorKillSel(const Point *pPt, bool bTextOnly ) +tools::Long SwWrtShell::SetCursorKillSel(const Point *pPt, bool bTextOnly, ScrollSizeMode eScrollSizeMode ) { SwActContext aActContext(this); - ResetSelect(pPt,false); - return SwCursorShell::SetCursor(*pPt, bTextOnly); + ResetSelect(pPt, false, ScrollSizeMode::ScrollSizeDefault); + return SwCursorShell::SetCursor(*pPt, bTextOnly, true, false, eScrollSizeMode); } void SwWrtShell::UnSelectFrame() @@ -347,7 +344,7 @@ void SwWrtShell::UnSelectFrame() // Remove of all selections -tools::Long SwWrtShell::ResetSelect(const Point *,bool) +tools::Long SwWrtShell::ResetSelect(const Point *, bool, ScrollSizeMode) { if(IsSelFrameMode()) { @@ -393,7 +390,8 @@ void SwWrtShell::SetSplitVerticalByDefault(bool value) // Do nothing -tools::Long SwWrtShell::Ignore(const Point *, bool ) { +tools::Long SwWrtShell::Ignore(const Point *, bool, ScrollSizeMode ) +{ return 1; } @@ -674,7 +672,6 @@ void SwWrtShell::EnterAddMode() if(IsTableMode()) return; if(m_bBlockMode) LeaveBlockMode(); - m_fnKillSel = &SwWrtShell::Ignore; m_fnSetCursor = &SwWrtShell::SetCursor; m_bAddMode = true; m_bBlockMode = false; @@ -724,44 +721,27 @@ void SwWrtShell::ImplSetInsMode(bool bOn) Invalidate(); } -namespace -{ - class QuerySetInsModeDialog : public weld::GenericDialogController - { - std::unique_ptr<weld::Image> m_xImage; - std::unique_ptr<weld::CheckButton> m_xCheckBox; - public: - QuerySetInsModeDialog(weld::Window* pParent) - : GenericDialogController(pParent, u"cui/ui/querysetinsmodedialog.ui"_ustr, u"SetInsModeDialog"_ustr) - , m_xImage(m_xBuilder->weld_image(u"imSetInsMode"_ustr)) - , m_xCheckBox(m_xBuilder->weld_check_button(u"cbDontShowAgain"_ustr)) - { - m_xImage->set_from_icon_name(RID_BMP_QUERYINSMODE); - } - bool GetDoNotShowAgain() const - { - return m_xCheckBox->get_active(); - } - }; -} - void SwWrtShell::SetInsMode( bool bOn ) { const bool bDoAsk = officecfg::Office::Common::Misc::QuerySetInsMode::get(); if (!bOn && bDoAsk) { - auto xDialog = std::make_shared<QuerySetInsModeDialog>(GetView().GetFrameWeld()); - weld::DialogController::runAsync(xDialog, [this, bOn, xDialog](sal_Int32 nResult){ - - std::shared_ptr<comphelper::ConfigurationChanges> xChanges( - comphelper::ConfigurationChanges::create()); - officecfg::Office::Common::Misc::QuerySetInsMode::set(!xDialog->GetDoNotShowAgain(), xChanges); - xChanges->commit(); - - if ( nResult == static_cast<int>(RET_NO) ) - return; - - ImplSetInsMode(bOn); + VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); + auto pDlg = pFact->CreateQueryDialog( + GetView().GetFrameWeld(), SwResId(STR_QUERY_INSMODE_TITLE), + SwResId(STR_QUERY_INSMODE_TEXT), SwResId(STR_QUERY_INSMODE_QUESTION), true); + pDlg->StartExecuteAsync( [this, pDlg] (sal_Int32 nResult)->void + { + if (pDlg->ShowAgain() == false) + { + std::shared_ptr<comphelper::ConfigurationChanges> xChanges( + comphelper::ConfigurationChanges::create()); + officecfg::Office::Common::Misc::QuerySetInsMode::set(false, xChanges); + xChanges->commit(); + } + if (nResult == RET_YES) + ImplSetInsMode(false); + pDlg->disposeOnce(); }); return; } diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx index dcbeefc2a14b..cd5572e44d6a 100644 --- a/sw/source/uibase/wrtsh/wrtsh1.cxx +++ b/sw/source/uibase/wrtsh/wrtsh1.cxx @@ -36,6 +36,7 @@ #include <tools/bigint.hxx> #include <svtools/insdlg.hxx> #include <sfx2/ipclient.hxx> +#include <editeng/editeng.hxx> #include <editeng/editobj.hxx> #include <editeng/formatbreakitem.hxx> #include <editeng/svxacorr.hxx> @@ -2278,6 +2279,7 @@ void SwWrtShell::InsertPostIt(SwFieldMgr& rFieldMgr, const SfxRequest& rReq) Outliner aOutliner(&pDocSh->GetPool(), OutlinerMode::TextObject); SwPostItHelper::ImportHTML(aOutliner, pHtmlItem->GetValue()); oTextPara = aOutliner.CreateParaObject(); + sText = aOutliner.GetEditEngine().GetText(); } // If we have a text already registered for answer, use that @@ -2291,7 +2293,10 @@ void SwWrtShell::InsertPostIt(SwFieldMgr& rFieldMgr, const SfxRequest& rReq) } const EditTextObject& rTextObject = pAnswer->GetTextObject(); if (rTextObject.GetParagraphCount() != 1 || !rTextObject.GetText(0).isEmpty()) + { oTextPara = *pAnswer; + sText = rTextObject.GetText(); + } } if ( HasSelection() && !IsTableMode() ) diff --git a/sw/source/uibase/wrtsh/wrtsh3.cxx b/sw/source/uibase/wrtsh/wrtsh3.cxx index 36c12ebee17c..2a83ebaeb48f 100644 --- a/sw/source/uibase/wrtsh/wrtsh3.cxx +++ b/sw/source/uibase/wrtsh/wrtsh3.cxx @@ -49,7 +49,7 @@ using namespace ::com::sun::star; bool SwWrtShell::MoveBookMark( BookMarkMove eFuncId, const ::sw::mark::MarkBase* const pMark) { addCurrentPosition(); - (this->*m_fnKillSel)( nullptr, false ); + (this->*m_fnKillSel)( nullptr, false, ScrollSizeMode::ScrollSizeDefault ); bool bRet = true; switch(eFuncId) @@ -75,7 +75,7 @@ bool SwWrtShell::MoveBookMark( BookMarkMove eFuncId, const ::sw::mark::MarkBase* bool SwWrtShell::GotoField( const SwFormatField& rField ) { - (this->*m_fnKillSel)( nullptr, false ); + (this->*m_fnKillSel)( nullptr, false, ScrollSizeMode::ScrollSizeDefault ); bool bRet = SwCursorShell::GotoFormatField( rField ); if( bRet && IsSelFrameMode() ) @@ -122,7 +122,7 @@ bool SwWrtShell::GotoContentControl(const SwFormatContentControl& rContentContro return true; } - (this->*m_fnKillSel)(nullptr, false); + (this->*m_fnKillSel)(nullptr, false, ScrollSizeMode::ScrollSizeDefault); bool bRet = SwCursorShell::GotoFormatContentControl(rContentControl); @@ -223,7 +223,7 @@ bool SwWrtShell::GotoContentControl(const SwFormatContentControl& rContentContro bool SwWrtShell::GotoFieldmark(::sw::mark::Fieldmark const * const pMark) { - (this->*m_fnKillSel)( nullptr, false ); + (this->*m_fnKillSel)( nullptr, false, ScrollSizeMode::ScrollSizeDefault ); bool bRet = SwCursorShell::GotoFieldmark(pMark); if( bRet && IsSelFrameMode() ) { diff --git a/sw/source/writerfilter/dmapper/DomainMapper.cxx b/sw/source/writerfilter/dmapper/DomainMapper.cxx index 86e785a0dd4c..1f48a0eb2b00 100644 --- a/sw/source/writerfilter/dmapper/DomainMapper.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapper.cxx @@ -2426,11 +2426,11 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) if (aAnyComplexColor.has_value()) return; + model::ComplexColor aComplexColor; + auto eType = TDefTableHandler::getThemeColorTypeIndex(pThemeColorHandler->mnIndex); if (eType != model::ThemeColorType::Unknown) { - - model::ComplexColor aComplexColor; aComplexColor.setThemeColor(eType); auto eUsage = TDefTableHandler::getThemeColorUsage(pThemeColorHandler->mnIndex); @@ -2446,11 +2446,11 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) sal_Int16 nShade = sal_Int16((255 - pThemeColorHandler->mnShade) * 10000 / 255); aComplexColor.addTransformation({model::TransformationType::Shade, nShade}); } - - auto xComplexColor = model::color::createXComplexColor(aComplexColor); - m_pImpl->GetTopContext()->Insert(PROP_CHAR_COMPLEX_COLOR, uno::Any(xComplexColor)); } + auto xComplexColor = model::color::createXComplexColor(aComplexColor); + m_pImpl->GetTopContext()->Insert(PROP_CHAR_COMPLEX_COLOR, uno::Any(xComplexColor)); + uno::Any aColorAny(msfilter::util::ConvertColorOU(Color(ColorTransparency, pThemeColorHandler->mnColor))); m_pImpl->GetTopContext()->Insert(PROP_CHAR_THEME_ORIGINAL_COLOR, aColorAny, true, CHAR_GRAB_BAG); diff --git a/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx b/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx index 58658ba927c8..ad8db564e13c 100644 --- a/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx @@ -1634,7 +1634,8 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel) if (it != aFrameProperties.end()) { it->Value >>= nVertOrientRelation; - if (nVertOrientRelation == text::RelOrientation::PAGE_FRAME) + bool bInHeaderFooter = m_rDMapper_Impl.IsInHeaderFooter(); + if (nVertOrientRelation == text::RelOrientation::PAGE_FRAME && bInHeaderFooter) { // If vertical relation is page, follow-text-flow is not useful and causes // unwanted wrap of body text around in-header floating table, so avoid it. diff --git a/sw/source/writerfilter/dmapper/PropertyMap.cxx b/sw/source/writerfilter/dmapper/PropertyMap.cxx index ce373b092890..efd038964444 100644 --- a/sw/source/writerfilter/dmapper/PropertyMap.cxx +++ b/sw/source/writerfilter/dmapper/PropertyMap.cxx @@ -1478,11 +1478,22 @@ void SectionPropertyMap::CreateEvenOddPageStyleCopy(DomainMapper_Impl& rDM_Impl, { OUString evenOddStyleName = rDM_Impl.GetUnusedPageStyleName(); rtl::Reference<SwXPageStyle> evenOddStyle = rDM_Impl.GetTextDocument()->createPageStyle(); - // Unfortunately using setParent() does not work for page styles, so make a deep copy of the page style. + rDM_Impl.GetPageStyles()->insertStyleByName(evenOddStyleName, evenOddStyle); + rtl::Reference<SwXPageStyle> pageProperties(m_aPageStyle); uno::Reference<beans::XPropertySetInfo> pagePropertiesInfo(pageProperties->getPropertySetInfo()); const uno::Sequence<beans::Property> propertyList(pagePropertiesInfo->getProperties()); + if (rDM_Impl.IsNewDoc()) + { + bool const bEvenAndOdd(rDM_Impl.GetSettingsTable()->GetEvenAndOddHeaders()); + completeCopyHeaderFooter(pageProperties, evenOddStyle, + !rDM_Impl.SeenHeaderFooter(PagePartType::Header, PageType::RIGHT) + && (!bEvenAndOdd || !rDM_Impl.SeenHeaderFooter(PagePartType::Header, PageType::LEFT)), + !rDM_Impl.SeenHeaderFooter(PagePartType::Footer, PageType::RIGHT) + && (!bEvenAndOdd || !rDM_Impl.SeenHeaderFooter(PagePartType::Footer, PageType::LEFT))); + } + // Ignore write-only properties. static constexpr auto staticDenylist = frozen::make_unordered_set<std::u16string_view>({ u"FooterBackGraphicURL", u"BackGraphicURL", u"HeaderBackGraphicURL", @@ -1492,6 +1503,7 @@ void SectionPropertyMap::CreateEvenOddPageStyleCopy(DomainMapper_Impl& rDM_Impl, u"FooterText", u"FooterTextLeft", u"FooterTextFirst" }); + // Unfortunately page styles can't inherit from a parent, so make a deep copy of the page style. bool isMirrorMargins = PageBreakType::Even == eBreakType && rDM_Impl.GetSettingsTable()->GetMirrorMarginSettings(); for (const auto& rProperty : propertyList) { @@ -1507,26 +1519,21 @@ void SectionPropertyMap::CreateEvenOddPageStyleCopy(DomainMapper_Impl& rDM_Impl, else if (rProperty.Name == u"RightMargin"_ustr) sSetName = u"LeftMargin"_ustr; } - evenOddStyle->setPropertyValue( - sSetName, - pageProperties->getPropertyValue(rProperty.Name)); + try + { + evenOddStyle->setPropertyValue( + sSetName, + pageProperties->getPropertyValue(rProperty.Name)); + } + catch (uno::Exception&) + { + DBG_UNHANDLED_EXCEPTION("writerfilter", "failed to copy page style property"); + } } } } evenOddStyle->setPropertyValue(u"FollowStyle"_ustr, uno::Any(m_sPageStyleName)); - rDM_Impl.GetPageStyles()->insertStyleByName(evenOddStyleName, evenOddStyle); - - if (rDM_Impl.IsNewDoc()) - { - bool const bEvenAndOdd(rDM_Impl.GetSettingsTable()->GetEvenAndOddHeaders()); - completeCopyHeaderFooter(pageProperties, evenOddStyle, - !rDM_Impl.SeenHeaderFooter(PagePartType::Header, PageType::RIGHT) - && (!bEvenAndOdd || !rDM_Impl.SeenHeaderFooter(PagePartType::Header, PageType::LEFT)), - !rDM_Impl.SeenHeaderFooter(PagePartType::Footer, PageType::RIGHT) - && (!bEvenAndOdd || !rDM_Impl.SeenHeaderFooter(PagePartType::Footer, PageType::LEFT))); - } - if (eBreakType == PageBreakType::Even) evenOddStyle->setPropertyValue(getPropertyName(PROP_PAGE_STYLE_LAYOUT), uno::Any(style::PageStyleLayout_LEFT)); else if (eBreakType == PageBreakType::Odd) diff --git a/sw/source/writerfilter/rtftok/rtfdocumentimpl.cxx b/sw/source/writerfilter/rtftok/rtfdocumentimpl.cxx index ce391551c719..ce5b87f4f20c 100644 --- a/sw/source/writerfilter/rtftok/rtfdocumentimpl.cxx +++ b/sw/source/writerfilter/rtftok/rtfdocumentimpl.cxx @@ -28,6 +28,7 @@ #include <com/sun/star/drawing/XDrawPageSupplier.hpp> #include <filter/msfilter/util.hxx> #include <filter/msfilter/rtfutil.hxx> +#include <o3tl/numeric.hxx> #include <comphelper/string.hxx> #include <comphelper/diagnose_ex.hxx> #include <tools/globname.hxx> @@ -891,7 +892,7 @@ void RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XS if (ch != 0x0d && ch != 0x0a && ch != 0x20) { b = b << 4; - sal_Int8 parsed = msfilter::rtfutil::AsHex(ch); + sal_Int8 parsed = o3tl::convertToHex<sal_Int8>(ch); if (parsed == -1) return; b += parsed; @@ -2640,7 +2641,7 @@ RTFError RTFDocumentImpl::beforePopState(RTFParserState& rState) if (ch != 0x0d && ch != 0x0a) { b = b << 4; - sal_Int8 parsed = msfilter::rtfutil::AsHex(ch); + sal_Int8 parsed = o3tl::convertToHex<sal_Int8>(ch); if (parsed == -1) return RTFError::HEX_INVALID; b += parsed; diff --git a/sw/source/writerfilter/rtftok/rtftokenizer.cxx b/sw/source/writerfilter/rtftok/rtftokenizer.cxx index 994f5d73e735..0f3829e7dd95 100644 --- a/sw/source/writerfilter/rtftok/rtftokenizer.cxx +++ b/sw/source/writerfilter/rtftok/rtftokenizer.cxx @@ -9,6 +9,7 @@ #include "rtftokenizer.hxx" #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <oox/token/namespaces.hxx> #include <tools/stream.hxx> #include <svx/dialmgr.hxx> @@ -2046,7 +2047,7 @@ RTFError RTFTokenizer::resolveParse() || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F')) { b = b << 4; - sal_Int8 parsed = msfilter::rtfutil::AsHex(ch); + sal_Int8 parsed = o3tl::convertToHex<sal_Int8>(ch); if (parsed == -1) return RTFError::HEX_INVALID; b += parsed; diff --git a/sw/uiconfig/swriter/ui/copyfielddialog.ui b/sw/uiconfig/swriter/ui/copyfielddialog.ui new file mode 100644 index 000000000000..90d33e601b1c --- /dev/null +++ b/sw/uiconfig/swriter/ui/copyfielddialog.ui @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.40.0 --> +<interface domain="sw"> + <requires lib="gtk+" version="3.20"/> + <object class="GtkDialog" id="CopyFieldDialog"> + <property name="can-focus">False</property> + <property name="border-width">6</property> + <property name="title" translatable="yes" context="copyfielddialog|CopyFieldDialog">Copy field content</property> + <property name="modal">True</property> + <property name="default-width">0</property> + <property name="default-height">0</property> + <property name="type-hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can-focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can-focus">False</property> + <property name="layout-style">end</property> + <child> + <object class="GtkButton" id="cancel"> + <property name="label" translatable="yes" context="stock">_Cancel</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="use-underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="help"> + <property name="label" translatable="yes" context="stock">_Help</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="use-underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + <property name="secondary">True</property> + </packing> + </child> + <child> + <object class="GtkButton" id="copy"> + <property name="label" translatable="yes" context="stock">_Copy</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="use-underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack-type">end</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame1"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="label-xalign">0</property> + <property name="shadow-type">none</property> + <child> + <!-- n-columns=2 n-rows=1 --> + <object class="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="margin-start">12</property> + <property name="margin-top">6</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="row-spacing">6</property> + <property name="column-spacing">12</property> + <child> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="copyfielddialog|label2">Content: </property> + <property name="use-underline">True</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow-type">in</property> + <child> + <object class="GtkTextView" id="value"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="value-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="copyfielddialog|extended_tip|value">Copy the contents of the field for reuse in other documents.</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="copyfielddialog|label1">Field content</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-6">cancel</action-widget> + <action-widget response="-11">help</action-widget> + </action-widgets> + </object> +</interface> diff --git a/sw/uiconfig/swriter/ui/readonlymenu.ui b/sw/uiconfig/swriter/ui/readonlymenu.ui index 96ffe24346c2..0f94bea34d51 100644 --- a/sw/uiconfig/swriter/ui/readonlymenu.ui +++ b/sw/uiconfig/swriter/ui/readonlymenu.ui @@ -226,6 +226,20 @@ </object> </child> <child> + <object class="GtkSeparatorMenuItem" id="menuitem9"> + <property name="visible">True</property> + <property name="can-focus">False</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="copyfield"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="readonlymenu|copyfield">Copy _Field Contents...</property> + <property name="use-underline">True</property> + </object> + </child> + <child> <object class="GtkSeparatorMenuItem" id="menuitem7"> <property name="visible">True</property> <property name="can-focus">False</property> diff --git a/test/source/vclbootstrapprotector.cxx b/test/source/vclbootstrapprotector.cxx index 568a1928887e..b0e9518a392d 100644 --- a/test/source/vclbootstrapprotector.cxx +++ b/test/source/vclbootstrapprotector.cxx @@ -26,18 +26,9 @@ public: private: virtual ~Protector() override { -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - try { -#endif - DeInitVCL(); - // for the 6 tests that use it - comphelper::ThreadPool::getSharedOptimalPool().shutdown(); -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - } catch (const std::exception& e) { - SAL_WARN("vcl.app", "Fatal exception: " << e.what()); - std::terminate(); - } -#endif + DeInitVCL(); + // for the 6 tests that use it + comphelper::ThreadPool::getSharedOptimalPool().shutdown(); } virtual bool protect( diff --git a/toolkit/Library_tk.mk b/toolkit/Library_tk.mk index 2f676872ef50..fb88abcab4c8 100644 --- a/toolkit/Library_tk.mk +++ b/toolkit/Library_tk.mk @@ -97,6 +97,13 @@ $(eval $(call gb_Library_add_exception_objects,tk,\ toolkit/source/controls/tkspinbutton \ toolkit/source/controls/animatedimages \ toolkit/source/controls/spinningprogress \ + toolkit/source/controls/table/AccessibleGridControl \ + toolkit/source/controls/table/AccessibleGridControlBase \ + toolkit/source/controls/table/AccessibleGridControlHeader \ + toolkit/source/controls/table/AccessibleGridControlHeaderCell \ + toolkit/source/controls/table/AccessibleGridControlTable \ + toolkit/source/controls/table/AccessibleGridControlTableBase \ + toolkit/source/controls/table/AccessibleGridControlTableCell \ toolkit/source/controls/table/cellvalueconversion \ toolkit/source/controls/table/defaultinputhandler \ toolkit/source/controls/table/gridtablerenderer \ diff --git a/toolkit/inc/controls/table/AccessibleGridControl.hxx b/toolkit/inc/controls/table/AccessibleGridControl.hxx new file mode 100644 index 000000000000..47bbd611e0f0 --- /dev/null +++ b/toolkit/inc/controls/table/AccessibleGridControl.hxx @@ -0,0 +1,128 @@ +/* -*- 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 . + */ + +#pragma once + +#include "AccessibleGridControlBase.hxx" +#include "AccessibleGridControlTable.hxx" +#include "tablecontrol.hxx" + +#include <cppuhelper/weakref.hxx> +#include <rtl/ref.hxx> + +namespace accessibility { + + class AccessibleGridControlHeader; + + +/** This class represents the complete accessible Grid Control object. */ + class AccessibleGridControl final : public AccessibleGridControlBase +{ + virtual ~AccessibleGridControl() override = default; + + /** Cleans up members. */ + using AccessibleGridControlBase::disposing; + virtual void SAL_CALL disposing() override; + + // XAccessibleContext ----------------------------------------------------- + + /** @return The count of visible children. */ + virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; + + /** @return The XAccessible interface of the specified child. */ + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL + getAccessibleChild( sal_Int64 nChildIndex ) override; + + /** @return The role of this object (a table). */ + virtual sal_Int16 SAL_CALL getAccessibleRole() override; + + // XAccessibleComponent --------------------------------------------------- + + /** @return + The accessible child rendered under the given point. + */ + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL + getAccessibleAtPoint( const css::awt::Point& rPoint ) override; + + /** Grabs the focus to the Grid Control. */ + virtual void SAL_CALL grabFocus() override; + + // XServiceInfo ----------------------------------------------------------- + + /** @return + The name of this class. + */ + virtual OUString SAL_CALL getImplementationName() override; + +public: + AccessibleGridControl( + const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + svt::table::TableControl& _rTable); + + // helper functions + + /** commitCellEvent commit the event at all listeners of the table + @param nEventId + the event id + @param rNewValue + the new value + @param rOldValue + the old value + */ + void commitCellEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, + const css::uno::Any& rOldValue); + + /** commitTableEvent commit the event at all listeners of the table + @param nEventId + the event id + @param rNewValue + the new value + @param rOldValue + the old value + */ + void commitTableEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, + const css::uno::Any& rOldValue); + +private: + // internal virtual methods ----------------------------------------------- + + /** @attention This method requires locked mutex's and a living object. + @return The bounding box (VCL rect.) in screen coordinates. */ + virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; + + // internal helper methods ------------------------------------------------ + + /** The data table child. */ + rtl::Reference<AccessibleGridControlTable> m_xTable; + + /** The header bar for rows. */ + rtl::Reference<AccessibleGridControlHeader> m_xRowHeaderBar; + + /** The header bar for columns (first row of the table). */ + rtl::Reference<AccessibleGridControlHeader> m_xColumnHeaderBar; + + /** @return The count of visible children. */ + inline sal_Int64 implGetAccessibleChildCount(); +}; + +} // namespace accessibility + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlBase.hxx b/toolkit/inc/controls/table/AccessibleGridControlBase.hxx index 4e30bddda541..f2f7a2785f84 100644 --- a/vcl/inc/accessibility/AccessibleGridControlBase.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlBase.hxx @@ -20,7 +20,8 @@ #pragma once -#include <vcl/accessibletable.hxx> +#include <controls/table/tablecontrol.hxx> + #include <rtl/ustring.hxx> #include <rtl/ref.hxx> #include <tools/gen.hxx> @@ -33,6 +34,7 @@ #include <com/sun/star/accessibility/XAccessibleComponent.hpp> #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> #include <comphelper/accessibleeventnotifier.hxx> +#include <comphelper/accessiblecomponenthelper.hxx> #include <comphelper/uno3.hxx> @@ -41,19 +43,11 @@ namespace vcl { class Window; } namespace accessibility { -typedef ::cppu::WeakComponentImplHelper< - css::accessibility::XAccessibleContext, - css::accessibility::XAccessibleComponent, - css::accessibility::XAccessibleEventBroadcaster, - css::lang::XServiceInfo > - AccessibleGridControlImplHelper; - /** The GridControl accessible objects inherit from this base class. It - implements basic functionality for various Accessibility interfaces and - the event broadcaster and contains the osl::Mutex. */ -class AccessibleGridControlBase : - public ::cppu::BaseMutex, - public AccessibleGridControlImplHelper + implements basic functionality. */ +class AccessibleGridControlBase + : public cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, + css::accessibility::XAccessible, css::lang::XServiceInfo> { public: /** Constructor. @@ -62,25 +56,25 @@ public: @param eObjType Type of accessible table control. */ AccessibleGridControlBase( css::uno::Reference< css::accessibility::XAccessible > xParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); + svt::table::TableControl& rTable, + AccessibleTableControlObjType eObjType); protected: - virtual ~AccessibleGridControlBase() override; - - /** Commits DeFunc event to listeners and cleans up members. */ + virtual ~AccessibleGridControlBase() = default; virtual void SAL_CALL disposing() override; public: + // XAccessible + /** @return The XAccessibleContext interface of this object. */ + virtual css::uno::Reference<css::accessibility::XAccessibleContext> SAL_CALL + getAccessibleContext() override; + // XAccessibleContext /** @return A reference to the parent accessible object. */ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override; - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - /** @return The description of this object. */ @@ -116,25 +110,6 @@ public: performance. */ // XAccessibleComponent - - /** @return - TRUE, if the point lies within the bounding box of this object. */ - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& rPoint ) override; - - /** @return The bounding box of this object. */ - virtual css::awt::Rectangle SAL_CALL getBounds() override; - - /** @return - The upper left corner of the bounding box relative to the parent. */ - virtual css::awt::Point SAL_CALL getLocation() override; - - /** @return - The upper left corner of the bounding box in screen coordinates. */ - virtual css::awt::Point SAL_CALL getLocationOnScreen() override; - - /** @return The size of the bounding box. */ - virtual css::awt::Size SAL_CALL getSize() override; - virtual sal_Int32 SAL_CALL getForeground( ) override; virtual sal_Int32 SAL_CALL getBackground( ) override; @@ -149,16 +124,6 @@ public: virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - // XAccessibleEventBroadcaster - - /** Adds a new event listener */ - virtual void SAL_CALL addAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& rxListener ) override; - - /** Removes an event listener. */ - virtual void SAL_CALL removeAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& rxListener ) override; - // XTypeProvider /** @return a unique implementation ID. */ @@ -179,15 +144,15 @@ public: // helper methods /** @return The GridControl object type. */ - inline ::vcl::table::AccessibleTableControlObjType getType() const; + inline AccessibleTableControlObjType getType() const; /** Commits an event to all listeners. */ virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, const css::uno::Any& rOldValue); - /** @return TRUE, if the object is not disposed or disposing. */ - bool isAlive() const; protected: + virtual css::awt::Rectangle implGetBounds() override; + // internal virtual methods /** Determines whether the Grid control is really showing inside of @@ -197,10 +162,11 @@ protected: @return TRUE, if the object is really showing. */ bool implIsShowing(); - /** Derived classes return the bounding box relative to the parent window. + /** Return the bounding box relative to the parent. @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() = 0; + @return The bounding box (VCL rect.) relative to the parent. */ + tools::Rectangle implGetBoundingBox(); + ///** Derived classes return the bounding box in screen coordinates. // @attention This method requires locked mutex's and a living object. // @return The bounding box (VCL rect.) in screen coordinates. */ @@ -214,79 +180,20 @@ protected: */ virtual sal_Int64 implCreateStateSet(); - // internal helper methods - - /** @throws <type>DisposedException</type> If the object is not alive. */ - void ensureIsAlive() const; - - /** Locks all mutex's and calculates the bounding box relative to the - parent window. - @return The bounding box (VCL rect.) relative to the parent object. - @throws css::lang::DisposedException - */ - tools::Rectangle getBoundingBox(); - ///** Locks all mutex's and calculates the bounding box in screen - // coordinates. - // @return The bounding box (VCL rect.) in screen coordinates. */ - /// @throws css::lang::DisposedException - AbsoluteScreenPixelRectangle getBoundingBoxOnScreen(); - - ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; } - void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; } - protected: // members /** The parent accessible object. */ css::uno::Reference< css::accessibility::XAccessible > m_xParent; /** The SVT Table control. */ - ::vcl::table::IAccessibleTable& m_aTable; + svt::table::TableControl& m_aTable; /** The type of this object (for names, descriptions, state sets, ...). */ - ::vcl::table::AccessibleTableControlObjType m_eObjType; - -private: - ::comphelper::AccessibleEventNotifier::TClientId m_aClientId; -}; - - -// a version of AccessibleGridControlBase which implements not only the XAccessibleContext, -// but also the XAccessible - -typedef cppu::ImplInheritanceHelper <AccessibleGridControlBase, css::accessibility::XAccessible> - GridControlAccessibleElement_Base; - -class GridControlAccessibleElement : public GridControlAccessibleElement_Base -{ -protected: - /** Constructor sets specified name and description. - - @param rxParent XAccessible interface of the parent object. - @param rTable The Table control. - @param eObjType Type of table control - */ - GridControlAccessibleElement( - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); - -protected: - virtual ~GridControlAccessibleElement() override; - -protected: - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - -private: - GridControlAccessibleElement( const GridControlAccessibleElement& ) = delete; - GridControlAccessibleElement& operator=( const GridControlAccessibleElement& ) = delete; + AccessibleTableControlObjType m_eObjType; }; // inlines -inline ::vcl::table::AccessibleTableControlObjType AccessibleGridControlBase::getType() const +inline AccessibleTableControlObjType AccessibleGridControlBase::getType() const { return m_eObjType; } diff --git a/vcl/inc/accessibility/AccessibleGridControlHeader.hxx b/toolkit/inc/controls/table/AccessibleGridControlHeader.hxx index d1cabbeb4aeb..f4fa9c20fe37 100644 --- a/vcl/inc/accessibility/AccessibleGridControlHeader.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlHeader.hxx @@ -20,7 +20,8 @@ #pragma once -#include <accessibility/AccessibleGridControlTableBase.hxx> +#include <controls/table/AccessibleGridControlTableBase.hxx> +#include <controls/table/tablecontrol.hxx> namespace accessibility { @@ -38,8 +39,8 @@ public: AccessibleGridControlHeader( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); + svt::table::TableControl& rTable, + AccessibleTableControlObjType eObjType); private: virtual ~AccessibleGridControlHeader() override = default; @@ -120,9 +121,6 @@ private: @return The XAccessible interface of the specified column/row. */ css::uno::Reference< css::accessibility::XAccessible > implGetChild( sal_Int32 nRow, sal_uInt32 nColumnPos ); - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; /** @attention This method requires locked mutex's and a living object. @return The bounding box (VCL rect.) in screen coordinates. */ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; @@ -139,12 +137,12 @@ private: inline bool AccessibleGridControlHeader::isRowBar() const { - return getType() == ::vcl::table::AccessibleTableControlObjType::ROWHEADERBAR; + return getType() == AccessibleTableControlObjType::ROWHEADERBAR; } inline bool AccessibleGridControlHeader::isColumnBar() const { - return getType() == ::vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR; + return getType() == AccessibleTableControlObjType::COLUMNHEADERBAR; } diff --git a/vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx b/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx index cd59894b92bb..25e6c3dd06ca 100644 --- a/vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx @@ -18,18 +18,19 @@ */ #pragma once -#include <accessibility/AccessibleGridControlTableCell.hxx> +#include <controls/table/AccessibleGridControlTableCell.hxx> +#include <controls/table/tablecontrol.hxx> namespace accessibility { - class AccessibleGridControlHeaderCell final : public AccessibleGridControlCell, public css::accessibility::XAccessible + class AccessibleGridControlHeaderCell final : public AccessibleGridControlCell { sal_Int32 m_nColumnRowId; public: AccessibleGridControlHeaderCell(sal_Int32 _nColumnRowId, const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& _rTable, - ::vcl::table::AccessibleTableControlObjType _eObjType); + svt::table::TableControl& _rTable, + AccessibleTableControlObjType _eObjType); /** @return The count of visible children. */ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; @@ -43,22 +44,6 @@ namespace accessibility /** Grabs the focus to the GridControl. */ virtual void SAL_CALL grabFocus() override; - // XInterface - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - /** @return The name of this class. */ @@ -69,8 +54,6 @@ namespace accessibility sal_Int64 implCreateStateSet() override; private: - virtual tools::Rectangle implGetBoundingBox() override; - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; }; } diff --git a/vcl/inc/accessibility/AccessibleGridControlTable.hxx b/toolkit/inc/controls/table/AccessibleGridControlTable.hxx index 5c043f8860a9..e9e29fc40e89 100644 --- a/vcl/inc/accessibility/AccessibleGridControlTable.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlTable.hxx @@ -20,26 +20,25 @@ #pragma once -#include <accessibility/AccessibleGridControlTableBase.hxx> +#include <controls/table/AccessibleGridControlTableBase.hxx> +#include <controls/table/AccessibleGridControlTableCell.hxx> + #include <cppuhelper/implbase1.hxx> #include <com/sun/star/accessibility/XAccessibleSelection.hpp> -#include <accessibility/AccessibleGridControlTableCell.hxx> namespace accessibility { - -typedef ::cppu::ImplHelper1 < css::accessibility::XAccessibleSelection > - AccessibleGridControlTableSelectionImplHelper; /** This class represents the accessible object of the data table of a Grid control. */ -class AccessibleGridControlTable final : public AccessibleGridControlTableBase, - public AccessibleGridControlTableSelectionImplHelper +class AccessibleGridControlTable final + : public cppu::ImplInheritanceHelper<AccessibleGridControlTableBase, + css::accessibility::XAccessibleSelection> { public: AccessibleGridControlTable( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable); + svt::table::TableControl& rTable); private: virtual ~AccessibleGridControlTable() override = default; @@ -124,16 +123,7 @@ public: /** Removes the specified row/column from the selection. */ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - // XInterface - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; // XServiceInfo /** @return The name of this class. */ @@ -148,14 +138,10 @@ public: private: // internal virtual methods - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; ///** @attention This method requires locked mutex's and a living object. // @return The bounding box (VCL rect.) in screen coordinates. */ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - //// internal helper methods ///** @attention This method requires a locked mutex. // @return The XAccessibleTable interface of the specified header bar. */ diff --git a/vcl/inc/accessibility/AccessibleGridControlTableBase.hxx b/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx index 53ca49307e6b..6c12bde959e4 100644 --- a/vcl/inc/accessibility/AccessibleGridControlTableBase.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx @@ -20,14 +20,16 @@ #pragma once -#include <accessibility/AccessibleGridControlBase.hxx> +#include <controls/table/AccessibleGridControlBase.hxx> +#include <controls/table/tablecontrol.hxx> + #include <cppuhelper/implbase1.hxx> #include <com/sun/star/accessibility/XAccessibleTable.hpp> namespace accessibility { -typedef cppu::ImplInheritanceHelper<GridControlAccessibleElement, css::accessibility::XAccessibleTable> +typedef cppu::ImplInheritanceHelper<AccessibleGridControlBase, css::accessibility::XAccessibleTable> AccessibleGridControlTableImplHelper; /** The Grid Control accessible table objects inherit from this base class. It @@ -44,8 +46,8 @@ public: @param eObjType Type of table control object */ AccessibleGridControlTableBase( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); + svt::table::TableControl& rTable, + AccessibleTableControlObjType eObjType); protected: virtual ~AccessibleGridControlTableBase() override = default; diff --git a/vcl/inc/accessibility/AccessibleGridControlTableCell.hxx b/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx index 7d9053932a36..6c31f6729274 100644 --- a/vcl/inc/accessibility/AccessibleGridControlTableCell.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx @@ -18,10 +18,11 @@ */ #pragma once +#include <controls/table/AccessibleGridControlBase.hxx> +#include <controls/table/tablecontrol.hxx> + #include <comphelper/accessibletexthelper.hxx> #include <cppuhelper/implbase2.hxx> -#include <accessibility/AccessibleGridControlBase.hxx> -#include <vcl/accessibletable.hxx> #include <com/sun/star/accessibility/AccessibleScrollType.hpp> namespace accessibility @@ -47,10 +48,10 @@ namespace accessibility protected: AccessibleGridControlCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::table::IAccessibleTable& _rTable, + svt::table::TableControl& _rTable, sal_Int32 _nRowPos, sal_uInt16 _nColPos, - ::vcl::table::AccessibleTableControlObjType _eType + AccessibleTableControlObjType _eType ); virtual ~AccessibleGridControlCell() override = default; @@ -60,39 +61,24 @@ namespace accessibility AccessibleGridControlCell& operator=( const AccessibleGridControlCell& ) = delete; }; - typedef ::cppu::ImplHelper2 < css::accessibility::XAccessibleText - , css::accessibility::XAccessible - > AccessibleTextHelper_BASE; // implementation of a table cell of GridControl - class AccessibleGridControlTableCell final :public AccessibleGridControlCell - ,public AccessibleTextHelper_BASE - ,public ::comphelper::OCommonAccessibleText + class AccessibleGridControlTableCell final + : public cppu::ImplInheritanceHelper<AccessibleGridControlCell, css::accessibility::XAccessibleText>, + public ::comphelper::OCommonAccessibleText { private: // OCommonAccessibleText virtual OUString implGetText() override; virtual css::lang::Locale implGetLocale() override; virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override final; - virtual tools::Rectangle implGetBoundingBox() override; virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; public: AccessibleGridControlTableCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::table::IAccessibleTable& _rTable, + svt::table::TableControl& _rTable, sal_Int32 _nRowId, sal_uInt16 _nColId); - // XInterface ------------------------------------------------------------- - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - /** @return The index of this object among the parent's children. */ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; @@ -116,12 +102,6 @@ namespace accessibility */ sal_Int64 implCreateStateSet() override; - // XAccessible ------------------------------------------------------------ - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - // XAccessibleText virtual sal_Int32 SAL_CALL getCaretPosition() override; virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; diff --git a/toolkit/inc/controls/table/defaultinputhandler.hxx b/toolkit/inc/controls/table/defaultinputhandler.hxx index 3f3d425a69cb..40acc4a7a809 100644 --- a/toolkit/inc/controls/table/defaultinputhandler.hxx +++ b/toolkit/inc/controls/table/defaultinputhandler.hxx @@ -20,26 +20,30 @@ #pragma once #include <controls/table/mousefunction.hxx> -#include <controls/table/tableinputhandler.hxx> #include <rtl/ref.hxx> +#include <memory> #include <vector> +class KeyEvent; +class MouseEvent; + namespace svt::table { - class DefaultInputHandler final : public ITableInputHandler + class DefaultInputHandler final { public: DefaultInputHandler(); - virtual ~DefaultInputHandler() override; + ~DefaultInputHandler(); - virtual bool MouseMove ( ITableControl& _rControl, const MouseEvent& rMEvt ) override; - virtual bool MouseButtonDown ( ITableControl& _rControl, const MouseEvent& rMEvt ) override; - virtual bool MouseButtonUp ( ITableControl& _rControl, const MouseEvent& rMEvt ) override; - virtual bool KeyInput ( ITableControl& _rControl, const KeyEvent& rKEvt ) override; - virtual bool GetFocus ( ITableControl& _rControl ) override; - virtual bool LoseFocus ( ITableControl& _rControl ) override; + // all those methods have the same semantics as the equal-named methods of ->Window, + // with the additional option to return a boolean value indicating whether + // the event should be further processed by the ->Window implementations (<FALSE/>), + // or whether it has been sufficiently handled by this class (<FALSE/>). + bool MouseMove(ITableControl& _rControl, const MouseEvent& rMEvt); + bool MouseButtonDown(ITableControl& _rControl, const MouseEvent& rMEvt); + bool MouseButtonUp(ITableControl& _rControl, const MouseEvent& rMEvt); private: bool delegateMouseEvent( ITableControl& i_control, const MouseEvent& i_event, @@ -49,6 +53,7 @@ namespace svt::table std::vector< rtl::Reference< MouseFunction > > aMouseFunctions; }; + typedef std::shared_ptr<DefaultInputHandler> PTableInputHandler; } // namespace svt::table diff --git a/toolkit/inc/controls/table/tablecontrol.hxx b/toolkit/inc/controls/table/tablecontrol.hxx index 9d9f98ff11e3..af5b1e2d9d1f 100644 --- a/toolkit/inc/controls/table/tablecontrol.hxx +++ b/toolkit/inc/controls/table/tablecontrol.hxx @@ -19,19 +19,29 @@ #pragma once +#include <controls/table/tablecontrolinterface.hxx> #include <controls/table/tablemodel.hxx> -#include <vcl/accessibletable.hxx> #include <vcl/ctrl.hxx> #include <vcl/seleng.hxx> #include <memory> +enum class AccessibleTableControlObjType +{ + GRIDCONTROL, /// The GridControl itself. + TABLE, /// The data table. + ROWHEADERBAR, /// The row header bar. + COLUMNHEADERBAR, /// The horizontal column header bar. + TABLECELL, /// A cell of the data table. + ROWHEADERCELL, /// A cell of the row header bar. + COLUMNHEADERCELL, /// A cell of the column header bar. +}; + namespace svt::table { class TableControl_Impl; - //= TableControl /** a basic control which manages table-like data, i.e. a number of cells @@ -48,9 +58,8 @@ namespace svt::table The control supports the concept of a <em>current</em> (or <em>active</em> cell). - The control supports accessibility, this is encapsulated in IAccessibleTable */ - class TableControl final : public Control, public vcl::table::IAccessibleTable + class TableControl final : public Control { private: std::shared_ptr<TableControl_Impl> m_pImpl; @@ -75,10 +84,7 @@ namespace svt::table if there is no active cell, e.g. because the table does not contain any rows or columns. */ - sal_Int32 GetCurrentRow() const override; - - ITableControl& - getTableControlInterface(); + sal_Int32 GetCurrentRow() const; /** retrieves the current column @@ -89,7 +95,7 @@ namespace svt::table if there is no active cell, e.g. because the table does not contain any rows or columns. */ - sal_Int32 GetCurrentColumn() const override; + sal_Int32 GetCurrentColumn() const; /** activates the cell at the given position */ @@ -112,51 +118,46 @@ namespace svt::table /** Creates and returns the accessible object of the whole GridControl. */ virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override; - virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl( sal_Int32 _nIndex ) override; - virtual OUString GetAccessibleObjectName(vcl::table::AccessibleTableControlObjType eObjType, sal_Int32 _nRow, sal_Int32 _nCol) const override; - virtual void GoToCell( sal_Int32 _nColumnPos, sal_Int32 _nRow ) override; - virtual OUString GetAccessibleObjectDescription(vcl::table::AccessibleTableControlObjType eObjType) const override; - virtual void FillAccessibleStateSet( sal_Int64& rStateSet, vcl::table::AccessibleTableControlObjType eObjType ) const override; + OUString GetAccessibleObjectName(AccessibleTableControlObjType eObjType, + sal_Int32 _nRow, sal_Int32 _nCol) const; + void GoToCell(sal_Int32 _nColumnPos, sal_Int32 _nRow); + OUString + GetAccessibleObjectDescription(AccessibleTableControlObjType eObjType) const; + void FillAccessibleStateSet(sal_Int64& rStateSet, + AccessibleTableControlObjType eObjType) const; // temporary methods // Those do not really belong into the public API - they're intended for firing A11Y-related events. However, // firing those events should be an implementation internal to the TableControl resp. TableControl_Impl, // instead of something triggered externally. - void commitCellEventIfAccessibleAlive( sal_Int16 const i_eventID, const css::uno::Any& i_newValue, const css::uno::Any& i_oldValue ); - void commitTableEventIfAccessibleAlive( sal_Int16 const i_eventID, const css::uno::Any& i_newValue, const css::uno::Any& i_oldValue ); - - - // IAccessibleTable - virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() const override; - virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window& rRelativeWindow) const override; - virtual void GrabFocus() override; - virtual css::uno::Reference< css::accessibility::XAccessible > GetAccessible() override; - virtual vcl::Window* GetAccessibleParentWindow() const override; - virtual vcl::Window* GetWindowInstance() override; - virtual sal_Int32 GetAccessibleControlCount() const override; - virtual bool ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint ) override; - virtual sal_Int32 GetRowCount() const override; - virtual sal_Int32 GetColumnCount() const override; - virtual bool ConvertPointToCellAddress( sal_Int32& _rnRow, sal_Int32& _rnColPos, const Point& _rPoint ) override; - virtual tools::Rectangle calcHeaderRect( bool _bIsColumnBar ) override; - virtual tools::Rectangle calcHeaderCellRect( bool _bIsColumnBar, sal_Int32 nPos) override; - virtual tools::Rectangle calcTableRect() override; - virtual tools::Rectangle calcCellRect( sal_Int32 _nRowPos, sal_Int32 _nColPos ) override; - virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex) override; - virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,const Point& _rPoint) override; - virtual void FillAccessibleStateSetForCell( sal_Int64& _rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const override; - virtual OUString GetRowName(sal_Int32 _nIndex) const override; - virtual OUString GetColumnName( sal_Int32 _nIndex ) const override; - virtual bool HasRowHeader() override; - virtual bool HasColHeader() override; - virtual OUString GetAccessibleCellText(sal_Int32 _nRowPos, sal_Int32 _nColPos) const override; - - virtual sal_Int32 GetSelectedRowCount() const override; - virtual sal_Int32 GetSelectedRowIndex( sal_Int32 const i_selectionIndex ) const override; - virtual bool IsRowSelected( sal_Int32 const i_rowIndex ) const override; - virtual void SelectRow( sal_Int32 const i_rowIndex, bool const i_select ) override; - virtual void SelectAllRows( bool const i_select ) override; - + void commitCellEvent(sal_Int16 const i_eventID, const css::uno::Any& i_newValue, const css::uno::Any& i_oldValue); + void commitTableEvent(sal_Int16 const i_eventID, const css::uno::Any& i_newValue, const css::uno::Any& i_oldValue); + + sal_Int32 GetAccessibleControlCount() const; + sal_Int32 GetRowCount() const; + sal_Int32 GetColumnCount() const; + bool ConvertPointToCellAddress(sal_Int32& _rnRow, sal_Int32& _rnColPos, + const Point& _rPoint); + tools::Rectangle calcHeaderRect(bool _bIsColumnBar); + tools::Rectangle calcHeaderCellRect(bool _bIsColumnBar, sal_Int32 nPos); + tools::Rectangle calcTableRect(); + tools::Rectangle calcCellRect(sal_Int32 _nRowPos, sal_Int32 _nColPos); + void FillAccessibleStateSetForCell(sal_Int64& _rStateSet, sal_Int32 _nRow, + sal_uInt16 _nColumnPos) const; + OUString GetRowName(sal_Int32 _nIndex) const; + OUString GetColumnName(sal_Int32 _nIndex) const; + bool HasRowHeader(); + bool HasColHeader(); + OUString GetAccessibleCellText(sal_Int32 _nRowPos, sal_Int32 _nColPos) const; + + sal_Int32 GetSelectedRowCount() const; + sal_Int32 GetSelectedRowIndex(sal_Int32 const i_selectionIndex) const; + bool IsRowSelected(sal_Int32 const i_rowIndex) const; + void SelectRow(sal_Int32 const i_rowIndex, bool const i_select); + void SelectAllRows(bool const i_select); + + TableCell hitTest(const Point& rPoint) const; + void invalidate(const TableArea aArea); private: DECL_LINK( ImplSelectHdl, LinkParamNone*, void ); diff --git a/toolkit/inc/controls/table/tablecontrolinterface.hxx b/toolkit/inc/controls/table/tablecontrolinterface.hxx index 8f5dca676375..e5ff0cd88303 100644 --- a/toolkit/inc/controls/table/tablecontrolinterface.hxx +++ b/toolkit/inc/controls/table/tablecontrolinterface.hxx @@ -29,7 +29,7 @@ namespace svt::table { //= TableControlAction - enum TableControlAction + enum class TableControlAction { /// moves the cursor in the table control one row up, if possible, by keeping the current column cursorUp, @@ -163,18 +163,6 @@ namespace svt::table */ virtual void showCursor() = 0; - /** dispatches an action to the table control - - @return - <TRUE/> if the action could be dispatched successfully, <FALSE/> otherwise. Usual - failure conditions include some other instance vetoing the action, or impossibility - to execute the action at all (for instance moving up one row when already positioned - on the very first row). - - @see TableControlAction - */ - virtual bool dispatchAction( TableControlAction _eAction ) = 0; - /** returns selection engine*/ virtual SelectionEngine* getSelEngine() = 0; diff --git a/toolkit/inc/controls/table/tableinputhandler.hxx b/toolkit/inc/controls/table/tableinputhandler.hxx deleted file mode 100644 index 9d11df38db3d..000000000000 --- a/toolkit/inc/controls/table/tableinputhandler.hxx +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- 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 . - */ - -#pragma once - -#include <memory> - -class MouseEvent; -class KeyEvent; - - -namespace svt::table -{ - - - class ITableControl; - - - //= ITableInputHandler - - /** interface for components handling input in a ->TableControl - */ - class ITableInputHandler - { - public: - // all those methods have the same semantics as the equal-named methods of ->Window, - // with the additional option to return a boolean value indicating whether - // the event should be further processed by the ->Window implementations (<FALSE/>), - // or whether it has been sufficiently handled by the ->ITableInputHandler instance - // (<FALSE/>). - - virtual bool MouseMove ( ITableControl& _rControl, const MouseEvent& rMEvt ) = 0; - virtual bool MouseButtonDown ( ITableControl& _rControl, const MouseEvent& rMEvt ) = 0; - virtual bool MouseButtonUp ( ITableControl& _rControl, const MouseEvent& rMEvt ) = 0; - virtual bool KeyInput ( ITableControl& _rControl, const KeyEvent& rKEvt ) = 0; - virtual bool GetFocus ( ITableControl& _rControl ) = 0; - virtual bool LoseFocus ( ITableControl& _rControl ) = 0; - - virtual ~ITableInputHandler() { } - }; - typedef std::shared_ptr< ITableInputHandler > PTableInputHandler; - - -} // namespace svt::table - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/toolkit/inc/controls/table/tablemodel.hxx b/toolkit/inc/controls/table/tablemodel.hxx index 7add49629a2a..97d0c56c9ea7 100644 --- a/toolkit/inc/controls/table/tablemodel.hxx +++ b/toolkit/inc/controls/table/tablemodel.hxx @@ -20,9 +20,9 @@ #pragma once #include <toolkit/dllapi.h> +#include <controls/table/defaultinputhandler.hxx> #include <controls/table/tabletypes.hxx> #include <controls/table/tablerenderer.hxx> -#include <controls/table/tableinputhandler.hxx> #include <com/sun/star/style/VerticalAlignment.hpp> #include <com/sun/star/style/HorizontalAlignment.hpp> diff --git a/toolkit/source/controls/svtxgridcontrol.cxx b/toolkit/source/controls/svtxgridcontrol.cxx index 0f2c3f6c1cb5..33468dd3c3f2 100644 --- a/toolkit/source/controls/svtxgridcontrol.cxx +++ b/toolkit/source/controls/svtxgridcontrol.cxx @@ -112,7 +112,7 @@ sal_Int32 SAL_CALL SVTXGridControl::getRowAtPoint(::sal_Int32 x, ::sal_Int32 y) VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN( pTable, "SVTXGridControl::getRowAtPoint: no control (anymore)!", -1 ); - TableCell const tableCell = pTable->getTableControlInterface().hitTest( Point( x, y ) ); + TableCell const tableCell = pTable->hitTest(Point(x, y)); return ( tableCell.nRow >= 0 ) ? tableCell.nRow : -1; } @@ -124,7 +124,7 @@ sal_Int32 SAL_CALL SVTXGridControl::getColumnAtPoint(::sal_Int32 x, ::sal_Int32 VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN( pTable, "SVTXGridControl::getColumnAtPoint: no control (anymore)!", -1 ); - TableCell const tableCell = pTable->getTableControlInterface().hitTest( Point( x, y ) ); + TableCell const tableCell = pTable->hitTest(Point(x, y)); return ( tableCell.nColumn >= 0 ) ? tableCell.nColumn : -1; } @@ -620,7 +620,7 @@ void SAL_CALL SVTXGridControl::dataChanged( const GridDataEvent& i_event ) // So, just in case, invalidate the column header area, too. VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN_VOID( pTable, "SVTXGridControl::dataChanged: no control (anymore)!" ); - pTable->getTableControlInterface().invalidate( TableArea::ColumnHeaders ); + pTable->invalidate(TableArea::ColumnHeaders); } @@ -631,8 +631,7 @@ void SAL_CALL SVTXGridControl::rowHeadingChanged( const GridDataEvent& ) VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN_VOID( pTable, "SVTXGridControl::rowHeadingChanged: no control (anymore)!" ); - // TODO: we could do better than this - invalidate the header area only - pTable->getTableControlInterface().invalidate( TableArea::RowHeaders ); + pTable->invalidate(TableArea::RowHeaders); } @@ -791,14 +790,14 @@ void SVTXGridControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent { // TODO: this doesn't belong here. It belongs into the TableControl/_Impl, so A11Y also // works when the control is used outside the UNO context - if ( pTable->GetRowCount()>0 ) + if (pTable->GetCurrentRow() != ROW_INVALID && pTable->GetCurrentColumn() != COL_INVALID) { - pTable->commitCellEventIfAccessibleAlive( + pTable->commitCellEvent( AccessibleEventId::STATE_CHANGED, Any( AccessibleStateType::FOCUSED ), Any() ); - pTable->commitTableEventIfAccessibleAlive( + pTable->commitTableEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), Any() @@ -806,7 +805,7 @@ void SVTXGridControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent } else { - pTable->commitTableEventIfAccessibleAlive( + pTable->commitTableEvent( AccessibleEventId::STATE_CHANGED, Any( AccessibleStateType::FOCUSED ), Any() @@ -819,9 +818,9 @@ void SVTXGridControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent { // TODO: this doesn't belong here. It belongs into the TableControl/_Impl, so A11Y also // works when the control is used outside the UNO context - if ( pTable->GetRowCount()>0 ) + if (pTable->GetCurrentRow() != ROW_INVALID && pTable->GetCurrentColumn() != COL_INVALID) { - pTable->commitCellEventIfAccessibleAlive( + pTable->commitCellEvent( AccessibleEventId::STATE_CHANGED, Any(), Any( AccessibleStateType::FOCUSED ) @@ -829,7 +828,7 @@ void SVTXGridControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent } else { - pTable->commitTableEventIfAccessibleAlive( + pTable->commitTableEvent( AccessibleEventId::STATE_CHANGED, Any(), Any( AccessibleStateType::FOCUSED ) diff --git a/toolkit/source/controls/table/AccessibleGridControl.cxx b/toolkit/source/controls/table/AccessibleGridControl.cxx new file mode 100644 index 000000000000..30710e27aa10 --- /dev/null +++ b/toolkit/source/controls/table/AccessibleGridControl.cxx @@ -0,0 +1,224 @@ +/* -*- 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 <controls/table/AccessibleGridControl.hxx> +#include <controls/table/AccessibleGridControlTable.hxx> +#include <controls/table/AccessibleGridControlHeader.hxx> + +#include <com/sun/star/accessibility/AccessibleEventId.hpp> +#include <com/sun/star/accessibility/AccessibleRole.hpp> +#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> +#include <utility> +#include <vcl/svapp.hxx> +#include <vcl/unohelp.hxx> + +namespace accessibility +{ + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::accessibility; +using namespace ::vcl; + +AccessibleGridControl::AccessibleGridControl( + const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + svt::table::TableControl& _rTable) + : AccessibleGridControlBase(_rxParent, _rTable, AccessibleTableControlObjType::GRIDCONTROL) +{ +} + + +void SAL_CALL AccessibleGridControl::disposing() +{ + SolarMutexGuard g; + + if ( m_xTable.is() ) + { + m_xTable->dispose(); + m_xTable.clear(); + } + if ( m_xRowHeaderBar.is() ) + { + m_xRowHeaderBar->dispose(); + m_xRowHeaderBar.clear(); + } + if ( m_xColumnHeaderBar.is() ) + { + m_xColumnHeaderBar->dispose(); + m_xColumnHeaderBar.clear(); + } + AccessibleGridControlBase::disposing(); +} + +sal_Int64 AccessibleGridControl::implGetAccessibleChildCount() +{ + return m_aTable.GetAccessibleControlCount(); +} + +// css::accessibility::XAccessibleContext --------------------------------------------------------- + + +sal_Int64 SAL_CALL AccessibleGridControl::getAccessibleChildCount() +{ + SolarMutexGuard aSolarGuard; + ensureAlive(); + return implGetAccessibleChildCount(); +} + + +css::uno::Reference< css::accessibility::XAccessible > SAL_CALL +AccessibleGridControl::getAccessibleChild( sal_Int64 nChildIndex ) +{ + SolarMutexGuard aSolarGuard; + + if (nChildIndex<0 || nChildIndex>=implGetAccessibleChildCount()) + throw IndexOutOfBoundsException(); + + css::uno::Reference< css::accessibility::XAccessible > xChild; + if (isAlive()) + { + if(nChildIndex == 0 && m_aTable.HasColHeader()) + { + if(!m_xColumnHeaderBar.is()) + { + m_xColumnHeaderBar = new AccessibleGridControlHeader( + this, m_aTable, AccessibleTableControlObjType::COLUMNHEADERBAR); + } + xChild = m_xColumnHeaderBar.get(); + } + else if(m_aTable.HasRowHeader() && (nChildIndex == 1 || nChildIndex == 0)) + { + if(!m_xRowHeaderBar.is()) + { + m_xRowHeaderBar = new AccessibleGridControlHeader( + this, m_aTable, AccessibleTableControlObjType::ROWHEADERBAR); + } + xChild = m_xRowHeaderBar.get(); + } + else + { + if(!m_xTable.is()) + { + m_xTable = new AccessibleGridControlTable(this, m_aTable); + } + xChild = m_xTable.get(); + } + } + return xChild; +} + + +sal_Int16 SAL_CALL AccessibleGridControl::getAccessibleRole() +{ + SolarMutexGuard g; + + ensureAlive(); + return AccessibleRole::PANEL; +} + + +// css::accessibility::XAccessibleComponent ------------------------------------------------------- + +css::uno::Reference< css::accessibility::XAccessible > SAL_CALL +AccessibleGridControl::getAccessibleAtPoint( const awt::Point& rPoint ) +{ + SolarMutexGuard aSolarGuard; + ensureAlive(); + + // try whether point is in one of the fixed children + // (table, header bars, corner control) + Point aPoint(vcl::unohelper::ConvertToVCLPoint(rPoint)); + const sal_Int64 nChildCount = implGetAccessibleChildCount(); + for (sal_Int64 nIndex = 0; nIndex < nChildCount; ++nIndex) + { + css::uno::Reference<css::accessibility::XAccessible> xCurrChild = getAccessibleChild(nIndex); + css::uno::Reference<css::accessibility::XAccessibleComponent> xCurrChildComp( + xCurrChild, uno::UNO_QUERY); + + if (xCurrChildComp.is() + && vcl::unohelper::ConvertToVCLRect(xCurrChildComp->getBounds()).Contains(aPoint)) + return xCurrChild; + } + return nullptr; +} + + +void SAL_CALL AccessibleGridControl::grabFocus() +{ + SolarMutexGuard aSolarGuard; + ensureAlive(); + m_aTable.GrabFocus(); +} + +// XServiceInfo --------------------------------------------------------------- +OUString SAL_CALL AccessibleGridControl::getImplementationName() +{ + return u"com.sun.star.accessibility.AccessibleGridControl"_ustr; +} + +// internal virtual methods --------------------------------------------------- + +AbsoluteScreenPixelRectangle AccessibleGridControl::implGetBoundingBoxOnScreen() +{ + return m_aTable.GetWindowExtentsAbsolute(); +} + +// internal helper methods ---------------------------------------------------- + +void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue) +{ + sal_Int64 nChildCount = implGetAccessibleChildCount(); + assert(nChildCount != 0); + for (sal_Int64 i = 0; i < nChildCount; i++) + { + css::uno::Reference<css::accessibility::XAccessible> xAccessible = getAccessibleChild(i); + if (css::uno::Reference<css::accessibility::XAccessible>(m_xTable) == xAccessible) + { + Reference<XAccessible> xCell = m_xTable->getAccessibleCellAt( + m_aTable.GetCurrentRow(), m_aTable.GetCurrentColumn()); + AccessibleGridControlTableCell* pCell + = static_cast<AccessibleGridControlTableCell*>(xCell.get()); + pCell->commitEvent(_nEventId, _rNewValue, _rOldValue); + } + } +} + +void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue) +{ + if ( !m_xTable.is() ) + return; + + if(_nEventId == AccessibleEventId::ACTIVE_DESCENDANT_CHANGED) + { + const sal_Int32 nCurrentRow = m_aTable.GetCurrentRow(); + const sal_Int32 nCurrentCol = m_aTable.GetCurrentColumn(); + css::uno::Reference< css::accessibility::XAccessible > xChild; + if (nCurrentRow > -1 && nCurrentCol > -1) + xChild = m_xTable->getAccessibleCellAt(nCurrentRow, nCurrentCol); + + m_xTable->commitEvent(_nEventId, Any(xChild),_rOldValue); + } + else + m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue); +} + +} // namespace accessibility + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/toolkit/source/controls/table/AccessibleGridControlBase.cxx b/toolkit/source/controls/table/AccessibleGridControlBase.cxx new file mode 100644 index 000000000000..2e90287260d7 --- /dev/null +++ b/toolkit/source/controls/table/AccessibleGridControlBase.cxx @@ -0,0 +1,285 @@ +/* -*- 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 <controls/table/AccessibleGridControlBase.hxx> + +#include <utility> +#include <vcl/svapp.hxx> +#include <vcl/unohelp.hxx> +#include <vcl/window.hxx> +#include <cppuhelper/supportsservice.hxx> +#include <sal/types.h> + +#include <com/sun/star/accessibility/AccessibleRole.hpp> +#include <com/sun/star/accessibility/AccessibleStateType.hpp> +#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp> +#include <unotools/accessiblerelationsethelper.hxx> +#include <sal/log.hxx> + +using ::com::sun::star::uno::Sequence; +using ::com::sun::star::uno::Any; + +using namespace ::com::sun::star; +using namespace ::com::sun::star::accessibility; +using namespace ::comphelper; +using namespace ::vcl; + + +namespace accessibility { + +using namespace com::sun::star::accessibility::AccessibleStateType; + +AccessibleGridControlBase::AccessibleGridControlBase( + css::uno::Reference<css::accessibility::XAccessible> xParent, svt::table::TableControl& rTable, + AccessibleTableControlObjType eObjType) + : m_xParent(std::move(xParent)) + , m_aTable(rTable) + , m_eObjType(eObjType) +{ +} + +void SAL_CALL AccessibleGridControlBase::disposing() +{ + SolarMutexGuard g; + + OAccessibleComponentHelper::disposing(); + + m_xParent = nullptr; + //m_aTable = NULL; +} + +// css::accessibility::XAccessible + +css::uno::Reference<css::accessibility::XAccessibleContext> SAL_CALL AccessibleGridControlBase::getAccessibleContext() +{ + SolarMutexGuard g; + + ensureAlive(); + return this; +} + +// css::accessibility::XAccessibleContext + +css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent() +{ + SolarMutexGuard g; + + ensureAlive(); + return m_xParent; +} + +OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription() +{ + SolarMutexGuard g; + + ensureAlive(); + return m_aTable.GetAccessibleObjectDescription(m_eObjType); +} + +OUString SAL_CALL AccessibleGridControlBase::getAccessibleName() +{ + SolarMutexGuard g; + + ensureAlive(); + return m_aTable.GetAccessibleObjectName(m_eObjType, 0, 0); +} + +css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL +AccessibleGridControlBase::getAccessibleRelationSet() +{ + SolarMutexGuard g; + + ensureAlive(); + // GridControl does not have relations. + return new utl::AccessibleRelationSetHelper; +} + +sal_Int64 SAL_CALL +AccessibleGridControlBase::getAccessibleStateSet() +{ + SolarMutexGuard aSolarGuard; + + // don't check whether alive -> StateSet may contain DEFUNC + return implCreateStateSet(); +} + +lang::Locale SAL_CALL AccessibleGridControlBase::getLocale() +{ + SolarMutexGuard g; + + ensureAlive(); + if( m_xParent.is() ) + { + css::uno::Reference< css::accessibility::XAccessibleContext > + xParentContext( m_xParent->getAccessibleContext() ); + if( xParentContext.is() ) + return xParentContext->getLocale(); + } + throw IllegalAccessibleComponentStateException(); +} + +// XTypeProvider + +Sequence< sal_Int8 > SAL_CALL AccessibleGridControlBase::getImplementationId() +{ + return css::uno::Sequence<sal_Int8>(); +} + +// XServiceInfo + +sal_Bool SAL_CALL AccessibleGridControlBase::supportsService( + const OUString& rServiceName ) +{ + return cppu::supportsService(this, rServiceName); +} + +Sequence< OUString > SAL_CALL AccessibleGridControlBase::getSupportedServiceNames() +{ + return { u"com.sun.star.accessibility.AccessibleContext"_ustr }; +} +// internal virtual methods + +bool AccessibleGridControlBase::implIsShowing() +{ + bool bShowing = false; + if( m_xParent.is() ) + { + css::uno::Reference< css::accessibility::XAccessibleComponent > + xParentComp( m_xParent->getAccessibleContext(), uno::UNO_QUERY ); + if( xParentComp.is() ) + bShowing = implGetBoundingBox().Overlaps( + vcl::unohelper::ConvertToVCLRect(xParentComp->getBounds())); + } + return bShowing; +} + +tools::Rectangle AccessibleGridControlBase::implGetBoundingBox() +{ + // calculate parent-relative position from own and parent's absolute position + tools::Rectangle aBound(implGetBoundingBoxOnScreen()); + if (!m_xParent.is()) + return aBound; + + uno::Reference<css::accessibility::XAccessibleComponent> xParentComponent(m_xParent->getAccessibleContext(), uno::UNO_QUERY); + if (!xParentComponent.is()) + return aBound; + + awt::Point aParentPos = xParentComponent->getLocationOnScreen(); + aBound.Move(-aParentPos.X, -aParentPos.Y); + return aBound; +} + +sal_Int64 AccessibleGridControlBase::implCreateStateSet() +{ + sal_Int64 nStateSet = 0; + + if( isAlive() ) + { + // SHOWING done with m_xParent + if( implIsShowing() ) + nStateSet |= AccessibleStateType::SHOWING; + // GridControl fills StateSet with states depending on object type + m_aTable.FillAccessibleStateSet( nStateSet, getType() ); + } + else + nStateSet |= AccessibleStateType::DEFUNC; + return nStateSet; +} + +css::awt::Rectangle AccessibleGridControlBase::implGetBounds() +{ + return vcl::unohelper::ConvertToAWTRect(implGetBoundingBox()); +} + +void AccessibleGridControlBase::commitEvent( + sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue ) +{ + NotifyAccessibleEvent(_nEventId, _rOldValue, _rNewValue); +} + +sal_Int16 SAL_CALL AccessibleGridControlBase::getAccessibleRole() +{ + ensureAlive(); + sal_Int16 nRole = AccessibleRole::UNKNOWN; + switch ( m_eObjType ) + { + case AccessibleTableControlObjType::ROWHEADERCELL: + nRole = AccessibleRole::ROW_HEADER; + break; + case AccessibleTableControlObjType::COLUMNHEADERCELL: + nRole = AccessibleRole::COLUMN_HEADER; + break; + case AccessibleTableControlObjType::COLUMNHEADERBAR: + case AccessibleTableControlObjType::ROWHEADERBAR: + case AccessibleTableControlObjType::TABLE: + nRole = AccessibleRole::TABLE; + break; + case AccessibleTableControlObjType::TABLECELL: + nRole = AccessibleRole::TABLE_CELL; + break; + case AccessibleTableControlObjType::GRIDCONTROL: + nRole = AccessibleRole::PANEL; + break; + } + return nRole; +} + +css::uno::Reference<css::accessibility::XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleAtPoint( const css::awt::Point& ) +{ + return nullptr; +} + +sal_Int32 SAL_CALL AccessibleGridControlBase::getForeground( ) +{ + SolarMutexGuard aSolarGuard; + + ensureAlive(); + + Color nColor; + if (m_aTable.IsControlForeground()) + nColor = m_aTable.GetControlForeground(); + else + { + vcl::Font aFont; + if (m_aTable.IsControlFont() ) + aFont = m_aTable.GetControlFont(); + else + aFont = m_aTable.GetFont(); + nColor = aFont.GetColor(); + } + return sal_Int32(nColor); +} + +sal_Int32 SAL_CALL AccessibleGridControlBase::getBackground( ) +{ + SolarMutexGuard aSolarGuard; + + ensureAlive(); + Color nColor; + if (m_aTable.IsControlBackground()) + nColor = m_aTable.GetControlBackground(); + else + nColor = m_aTable.GetBackground().GetColor(); + return sal_Int32(nColor); +} + +} // namespace accessibility + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/accessibility/AccessibleGridControlHeader.cxx b/toolkit/source/controls/table/AccessibleGridControlHeader.cxx index 9a0c81539049..36606111424e 100644 --- a/vcl/source/accessibility/AccessibleGridControlHeader.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlHeader.cxx @@ -17,10 +17,10 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <controls/table/AccessibleGridControlHeader.hxx> +#include <controls/table/AccessibleGridControlHeaderCell.hxx> + #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <accessibility/AccessibleGridControlHeader.hxx> -#include <accessibility/AccessibleGridControlHeaderCell.hxx> -#include <vcl/accessibletable.hxx> #include <vcl/svapp.hxx> #include <vcl/unohelp.hxx> @@ -32,7 +32,6 @@ using namespace ::com::sun::star; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::accessibility; using namespace ::vcl; -using namespace ::vcl::table; namespace accessibility { @@ -40,12 +39,12 @@ namespace accessibility { AccessibleGridControlHeader::AccessibleGridControlHeader( const Reference< XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType): + svt::table::TableControl& rTable, + AccessibleTableControlObjType eObjType): AccessibleGridControlTableBase( rxParent, rTable, eObjType ) { OSL_ENSURE( isRowBar() || isColumnBar(), - "accessibility/AccessibleGridControlHeaderBar - invalid object type" ); + "AccessibleGridControlHeaderBar - invalid object type" ); } // XAccessibleContext --------------------------------------------------------- @@ -55,31 +54,18 @@ AccessibleGridControlHeader::getAccessibleChild( sal_Int64 nChildIndex ) { SolarMutexGuard aSolarGuard; - if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount()) - throw IndexOutOfBoundsException(); - ensureIsAlive(); - Reference< XAccessible > xChild; - if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR) - { - rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, - vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL); - xChild = pColHeaderCell; - } - else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR) - { - rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, - vcl::table::AccessibleTableControlObjType::ROWHEADERCELL); - xChild = pRowHeaderCell; - } - return xChild; + ensureIsValidIndex(nChildIndex); + ensureAlive(); + + return implGetChild(implGetRow(nChildIndex), implGetColumn(nChildIndex)); } sal_Int64 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); - if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR && m_aTable.HasColHeader()) + ensureAlive(); + if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR && m_aTable.HasColHeader()) return 1; else return 0; @@ -92,7 +78,7 @@ AccessibleGridControlHeader::getAccessibleAtPoint( const awt::Point& rPoint ) { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); sal_Int32 nRow = 0; sal_Int32 nColumnPos = 0; @@ -103,7 +89,7 @@ AccessibleGridControlHeader::getAccessibleAtPoint( const awt::Point& rPoint ) void SAL_CALL AccessibleGridControlHeader::grabFocus() { - ensureIsAlive(); + ensureAlive(); // focus on header not supported } @@ -113,7 +99,7 @@ OUString SAL_CALL AccessibleGridControlHeader::getAccessibleRowDescription( sal_ { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidRow( nRow ); return OUString(); // no headers in headers } @@ -122,7 +108,7 @@ OUString SAL_CALL AccessibleGridControlHeader::getAccessibleColumnDescription( s { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidColumn( nColumn ); return OUString(); // no headers in headers } @@ -131,7 +117,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibl { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return nullptr; // no headers in headers } @@ -139,7 +125,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibl { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return nullptr; // no headers in headers } //not selectable @@ -168,7 +154,7 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlHeader::getAccessibleCell { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress(nRow, nColumn); return implGetChild(nRow, nColumn); } @@ -193,18 +179,6 @@ Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId() // internal virtual methods --------------------------------------------------- -tools::Rectangle AccessibleGridControlHeader::implGetBoundingBox() -{ - vcl::Window* pParent = m_aTable.GetAccessibleParentWindow(); - tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ) ); - tools::Rectangle aHeaderRect (m_aTable.calcHeaderRect(isColumnBar())); - if(isColumnBar()) - return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getOpenWidth(),aHeaderRect.getOpenHeight())); - else - return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getOpenWidth(),aGridRect.getOpenHeight())); - -} - AbsoluteScreenPixelRectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen() { AbsoluteScreenPixelRectangle aGridRect( m_aTable.GetWindowExtentsAbsolute() ); @@ -220,16 +194,16 @@ Reference< XAccessible > AccessibleGridControlHeader::implGetChild( sal_Int32 nRow, sal_uInt32 nColumnPos ) { Reference< XAccessible > xChild; - if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR) + if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR) { rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable, - vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL); + AccessibleTableControlObjType::COLUMNHEADERCELL); xChild = pColHeaderCell; } - else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR) + else if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR) { rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable, - vcl::table::AccessibleTableControlObjType::ROWHEADERCELL); + AccessibleTableControlObjType::ROWHEADERCELL); xChild = pRowHeaderCell; } return xChild; diff --git a/vcl/source/accessibility/AccessibleGridControlHeaderCell.cxx b/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx index a85897b83873..522a0a6dbbda 100644 --- a/vcl/source/accessibility/AccessibleGridControlHeaderCell.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx @@ -19,8 +19,7 @@ #include <com/sun/star/accessibility/AccessibleStateType.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <accessibility/AccessibleGridControlHeaderCell.hxx> -#include <vcl/accessibletable.hxx> +#include <controls/table/AccessibleGridControlHeaderCell.hxx> #include <vcl/svapp.hxx> namespace accessibility @@ -29,20 +28,20 @@ namespace accessibility using namespace ::com::sun::star::lang; using namespace ::com::sun::star::uno; using namespace ::vcl; - using namespace ::vcl::table; AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, - IAccessibleTable& rTable, + svt::table::TableControl& rTable, AccessibleTableControlObjType eObjType) -: AccessibleGridControlCell(rxParent, rTable, + : AccessibleGridControlCell(rxParent, rTable, (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? _nColumnRowId : 0, (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? 0 : _nColumnRowId, eObjType) -, m_nColumnRowId(_nColumnRowId) + , m_nColumnRowId(_nColumnRowId) { assert(eObjType == AccessibleTableControlObjType::ROWHEADERCELL || eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL); } + /** Return a bitset of states of the current object. */ sal_Int64 AccessibleGridControlHeaderCell::implCreateStateSet() @@ -85,33 +84,6 @@ Reference<XAccessible > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleC { throw IndexOutOfBoundsException(); } -// XInterface ------------------------------------------------------------- - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL AccessibleGridControlHeaderCell::queryInterface( const css::uno::Type& rType ) - { - Any aRet = AccessibleGridControlCell::queryInterface(rType); - return aRet; - } - - /** Acquires the object (calls acquire() on base class). */ - void SAL_CALL AccessibleGridControlHeaderCell::acquire() noexcept - { - AccessibleGridControlCell::acquire(); - } - - /** Releases the object (calls release() on base class). */ - void SAL_CALL AccessibleGridControlHeaderCell::release() noexcept - { - AccessibleGridControlCell::release(); - } - /** @return The XAccessibleContext interface of this object. */ - Reference< css::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleContext() - { - ensureIsAlive(); - return this; - } - /** Grabs the focus to the column header. */ void SAL_CALL AccessibleGridControlHeaderCell::grabFocus() @@ -126,20 +98,6 @@ OUString SAL_CALL AccessibleGridControlHeaderCell::getImplementationName() return u"com.sun.star.accessibility.AccessibleGridControlHeaderCell"_ustr; } -tools::Rectangle AccessibleGridControlHeaderCell::implGetBoundingBox() -{ - vcl::Window* pParent = m_aTable.GetAccessibleParentWindow(); - tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ) ); - sal_Int32 nIndex = getAccessibleIndexInParent(); - tools::Rectangle aCellRect; - if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL) - aCellRect = m_aTable.calcHeaderCellRect(true, nIndex); - else - aCellRect = m_aTable.calcHeaderCellRect(false, nIndex); - return tools::Rectangle(Point(aGridRect.Left()+aCellRect.Left(),aGridRect.Top()+aCellRect.Top()), aCellRect.GetSize()); -} - - AbsoluteScreenPixelRectangle AccessibleGridControlHeaderCell::implGetBoundingBoxOnScreen() { AbsoluteScreenPixelRectangle aGridRect( m_aTable.GetWindowExtentsAbsolute() ); @@ -156,7 +114,7 @@ sal_Int64 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleIndexInParent() { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return m_nColumnRowId; } diff --git a/vcl/source/accessibility/AccessibleGridControlTable.cxx b/toolkit/source/controls/table/AccessibleGridControlTable.cxx index ba3fb0d2b728..0f4435bf5cf1 100644 --- a/vcl/source/accessibility/AccessibleGridControlTable.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlTable.cxx @@ -21,9 +21,8 @@ #include <com/sun/star/accessibility/AccessibleTableModelChange.hpp> #include <com/sun/star/accessibility/AccessibleTableModelChangeType.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <accessibility/AccessibleGridControlTable.hxx> -#include <accessibility/AccessibleGridControlTableCell.hxx> -#include <vcl/accessibletable.hxx> +#include <controls/table/AccessibleGridControlTable.hxx> +#include <controls/table/AccessibleGridControlTableCell.hxx> #include <vcl/svapp.hxx> #include <vcl/unohelp.hxx> #include <tools/debug.hxx> @@ -35,16 +34,13 @@ using ::com::sun::star::uno::Any; using namespace ::com::sun::star; using namespace ::com::sun::star::accessibility; using namespace ::vcl; -using namespace ::vcl::table; namespace accessibility { - -AccessibleGridControlTable::AccessibleGridControlTable( - const Reference< XAccessible >& rxParent, - IAccessibleTable& rTable) : - AccessibleGridControlTableBase(rxParent, rTable, AccessibleTableControlObjType::TABLE) +AccessibleGridControlTable::AccessibleGridControlTable(const Reference<XAccessible>& rxParent, + svt::table::TableControl& rTable) + : ImplInheritanceHelper(rxParent, rTable, AccessibleTableControlObjType::TABLE) { } @@ -55,7 +51,7 @@ AccessibleGridControlTable::getAccessibleChild( sal_Int64 nChildIndex ) { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidIndex( nChildIndex ); sal_Int64 nCount = getAccessibleChildCount(); if(m_aCellVector.empty() || m_aCellVector.size() != static_cast<unsigned>(nCount)) @@ -74,7 +70,7 @@ sal_Int64 SAL_CALL AccessibleGridControlTable::getAccessibleIndexInParent() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); if(m_aTable.HasRowHeader() && m_aTable.HasColHeader()) return 0; else if(m_aTable.HasRowHeader() != m_aTable.HasColHeader()) @@ -90,22 +86,23 @@ AccessibleGridControlTable::getAccessibleAtPoint( const awt::Point& rPoint ) { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); - Reference< XAccessible > xChild; + // convert position relative to this AccessibleGridControlTable to position relative to + // the parent TableControl by adding own relative position within the TableControl parent + Point aPosInTableControl = vcl::unohelper::ConvertToVCLPoint(rPoint) + implGetBoundingBox().TopLeft(); sal_Int32 nRow = 0; sal_Int32 nColumnPos = 0; - if (m_aTable.ConvertPointToCellAddress(nRow, nColumnPos, - vcl::unohelper::ConvertToVCLPoint(rPoint))) - xChild = new AccessibleGridControlTableCell(this, m_aTable, nRow, nColumnPos); - return xChild; + if (m_aTable.ConvertPointToCellAddress(nRow, nColumnPos, aPosInTableControl)) + return getAccessibleCellAt(nRow, nColumnPos); + return nullptr; } void SAL_CALL AccessibleGridControlTable::grabFocus() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); m_aTable.GrabFocus(); } @@ -115,7 +112,7 @@ OUString SAL_CALL AccessibleGridControlTable::getAccessibleRowDescription( sal_I { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidRow( nRow ); return u"row description"_ustr; } @@ -124,7 +121,7 @@ OUString SAL_CALL AccessibleGridControlTable::getAccessibleColumnDescription( sa { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidColumn( nColumn ); return u"col description"_ustr; } @@ -133,7 +130,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessible { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); if(m_aTable.HasColHeader()) return implGetHeaderBar( 1 ); else @@ -144,7 +141,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessible { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return implGetHeaderBar( 0 ); } @@ -152,7 +149,7 @@ Sequence< sal_Int32 > SAL_CALL AccessibleGridControlTable::getSelectedAccessible { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); Sequence< sal_Int32 > aSelSeq; implGetSelectedRows( aSelSeq ); return aSelSeq; @@ -168,7 +165,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleRowSelected( sal_Int32 { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidRow( nRow ); Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows(); return comphelper::findValue(selectedRows, nRow) != -1; @@ -185,7 +182,7 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTable::getAccessibleCellA { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress( nRow, nColumn ); sal_Int64 nChildIndex = static_cast<sal_Int64>(nRow) * static_cast<sal_Int64>(m_aTable.GetColumnCount()) + nColumn; return getAccessibleChild(nChildIndex); @@ -196,7 +193,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleSelected( { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress( nRow, nColumn ); //selection of single cells not possible, so if row is selected, the cell will be selected too return isAccessibleRowSelected(nRow); @@ -205,7 +202,7 @@ void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int64 nChil { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidIndex( nChildIndex ); sal_Int32 nColumns = m_aTable.GetColumnCount(); sal_Int32 nRow = nChildIndex / nColumns; @@ -215,7 +212,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleChildSelected( sal_Int { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidIndex( nChildIndex ); sal_Int32 nColumns = m_aTable.GetColumnCount(); sal_Int32 nRow = nChildIndex / nColumns; @@ -225,14 +222,14 @@ void SAL_CALL AccessibleGridControlTable::clearAccessibleSelection() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); m_aTable.SelectAllRows( false ); } void SAL_CALL AccessibleGridControlTable::selectAllAccessibleChildren() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows(); auto selectedRowsRange = asNonConstRange(selectedRows); for(tools::Long i=0; i<m_aTable.GetRowCount(); i++) @@ -242,7 +239,7 @@ sal_Int64 SAL_CALL AccessibleGridControlTable::getSelectedAccessibleChildCount() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows(); sal_Int32 nColumns = m_aTable.GetColumnCount(); return static_cast<sal_Int64>(selectedRows.getLength()) * static_cast<sal_Int64>(nColumns); @@ -252,7 +249,7 @@ AccessibleGridControlTable::getSelectedAccessibleChild( sal_Int64 nSelectedChild { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); if (nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount()) throw lang::IndexOutOfBoundsException(u"Invalid index into selection"_ustr, *this); @@ -270,26 +267,9 @@ void SAL_CALL AccessibleGridControlTable::deselectAccessibleChild( { SolarMutexGuard aSolarGuard; - ensureIsAlive(); -} -// XInterface ----------------------------------------------------------------- - -Any SAL_CALL AccessibleGridControlTable::queryInterface( const uno::Type& rType ) -{ - Any aAny( AccessibleGridControlTableBase::queryInterface( rType ) ); - return aAny.hasValue() ? - aAny : AccessibleGridControlTableSelectionImplHelper::queryInterface( rType ); -} - -void SAL_CALL AccessibleGridControlTable::acquire() noexcept -{ - AccessibleGridControlTableBase::acquire(); + ensureAlive(); } -void SAL_CALL AccessibleGridControlTable::release() noexcept -{ - AccessibleGridControlTableBase::release(); -} // XServiceInfo --------------------------------------------------------------- OUString SAL_CALL AccessibleGridControlTable::getImplementationName() @@ -342,20 +322,6 @@ void AccessibleGridControlTable::commitEvent(sal_Int16 nEventId, const css::uno: // internal virtual methods --------------------------------------------------- -tools::Rectangle AccessibleGridControlTable::implGetBoundingBox() -{ - vcl::Window* pParent = m_aTable.GetAccessibleParentWindow(); - assert(pParent && "implGetBoundingBox - missing parent window"); - tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent )); - tools::Rectangle aTableRect( m_aTable.calcTableRect() ); - tools::Long nX = aGridRect.Left() + aTableRect.Left(); - tools::Long nY = aGridRect.Top() + aTableRect.Top(); - tools::Long nWidth = aGridRect.GetSize().Width()-aTableRect.Left(); - tools::Long nHeight = aGridRect.GetSize().Height()-aTableRect.Top(); - tools::Rectangle aTable( Point( nX, nY ), Size( nWidth, nHeight )); - return aTable; -} - AbsoluteScreenPixelRectangle AccessibleGridControlTable::implGetBoundingBoxOnScreen() { tools::Rectangle aGridRect( m_aTable.GetWindowExtentsAbsolute()); @@ -367,6 +333,7 @@ AbsoluteScreenPixelRectangle AccessibleGridControlTable::implGetBoundingBoxOnScr AbsoluteScreenPixelRectangle aTable( AbsoluteScreenPixelPoint( nX, nY ), AbsoluteScreenPixelSize( nWidth, nHeight )); return aTable; } + // internal helper methods ---------------------------------------------------- Reference< XAccessibleTable > AccessibleGridControlTable::implGetHeaderBar( sal_Int32 nChildIndex ) diff --git a/vcl/source/accessibility/AccessibleGridControlTableBase.cxx b/toolkit/source/controls/table/AccessibleGridControlTableBase.cxx index 5cfb904bad5c..36953b900353 100644 --- a/vcl/source/accessibility/AccessibleGridControlTableBase.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlTableBase.cxx @@ -19,8 +19,7 @@ #include <com/sun/star/accessibility/AccessibleRole.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <accessibility/AccessibleGridControlTableBase.hxx> -#include <vcl/accessibletable.hxx> +#include <controls/table/AccessibleGridControlTableBase.hxx> #include <vcl/svapp.hxx> #include <comphelper/sequence.hxx> @@ -31,7 +30,6 @@ using css::uno::Any; using namespace ::com::sun::star; using namespace ::com::sun::star::accessibility; using namespace ::vcl; -using namespace ::vcl::table; namespace accessibility { @@ -39,7 +37,7 @@ namespace accessibility { AccessibleGridControlTableBase::AccessibleGridControlTableBase( const Reference< XAccessible >& rxParent, - IAccessibleTable& rTable, + svt::table::TableControl& rTable, AccessibleTableControlObjType eObjType ) : AccessibleGridControlTableImplHelper( rxParent, rTable, eObjType ) { @@ -51,7 +49,7 @@ sal_Int64 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); sal_Int64 nChildren = 0; if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR) nChildren = m_aTable.GetRowCount(); @@ -66,7 +64,7 @@ sal_Int16 SAL_CALL AccessibleGridControlTableBase::getAccessibleRole() { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return AccessibleRole::TABLE; } @@ -76,7 +74,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowCount() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR) return 1; @@ -87,7 +85,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnCount() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR) return 1; @@ -99,7 +97,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowExtentAt( { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress( nRow, nColumn ); return 1; // merged cells not supported } @@ -109,7 +107,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnExtentAt( { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress( nRow, nColumn ); return 1; // merged cells not supported } @@ -118,7 +116,7 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleC { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return nullptr; // not supported } @@ -126,7 +124,7 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleS { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return nullptr; // not supported } @@ -135,7 +133,7 @@ sal_Int64 SAL_CALL AccessibleGridControlTableBase::getAccessibleIndex( { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidAddress( nRow, nColumn ); return static_cast<sal_Int64>(nRow) * static_cast<sal_Int64>(m_aTable.GetColumnCount()) + nColumn; } @@ -144,7 +142,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int64 n { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidIndex( nChildIndex ); return implGetRow( nChildIndex ); } @@ -153,7 +151,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumn( sal_Int6 { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); ensureIsValidIndex( nChildIndex ); return implGetColumn( nChildIndex ); } @@ -183,13 +181,13 @@ void AccessibleGridControlTableBase::implGetSelectedRows( Sequence< sal_Int32 >& void AccessibleGridControlTableBase::ensureIsValidRow( sal_Int32 nRow ) { - if (nRow >= getAccessibleRowCount()) + if (nRow < 0 || nRow >= getAccessibleRowCount()) throw lang::IndexOutOfBoundsException( u"row index is invalid"_ustr, *this ); } void AccessibleGridControlTableBase::ensureIsValidColumn( sal_Int32 nColumn ) { - if (nColumn >= getAccessibleColumnCount()) + if (nColumn < 0 || nColumn >= getAccessibleColumnCount()) throw lang::IndexOutOfBoundsException( u"column index is invalid"_ustr, *this ); } @@ -202,7 +200,7 @@ void AccessibleGridControlTableBase::ensureIsValidAddress( void AccessibleGridControlTableBase::ensureIsValidIndex( sal_Int64 nChildIndex ) { - if (nChildIndex >= static_cast<sal_Int64>(m_aTable.GetRowCount()) * static_cast<sal_Int64>(m_aTable.GetColumnCount())) + if (nChildIndex < 0 || nChildIndex >= static_cast<sal_Int64>(m_aTable.GetRowCount()) * static_cast<sal_Int64>(m_aTable.GetColumnCount())) throw lang::IndexOutOfBoundsException( u"child index is invalid"_ustr, *this ); } diff --git a/vcl/source/accessibility/AccessibleGridControlTableCell.cxx b/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx index aa76ffe0c533..46bae992325c 100644 --- a/vcl/source/accessibility/AccessibleGridControlTableCell.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <accessibility/AccessibleGridControlTableCell.hxx> -#include <vcl/accessibletable.hxx> +#include <controls/table/AccessibleGridControlTableCell.hxx> #include <vcl/svapp.hxx> #include <vcl/unohelp.hxx> #include <tools/gen.hxx> @@ -45,15 +44,14 @@ namespace accessibility using ::com::sun::star::accessibility::XAccessible; using namespace ::com::sun::star::accessibility; using namespace ::vcl; - using namespace ::vcl::table; // = AccessibleGridControlCell AccessibleGridControlCell::AccessibleGridControlCell( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, ::vcl::table::IAccessibleTable& _rTable, - sal_Int32 _nRowPos, sal_uInt16 _nColPos, ::vcl::table::AccessibleTableControlObjType _eType ) + const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, svt::table::TableControl& _rTable, + sal_Int32 _nRowPos, sal_uInt16 _nColPos, AccessibleTableControlObjType _eType ) :AccessibleGridControlBase( _rxParent, _rTable, _eType ) ,m_nRowPos( _nRowPos ) ,m_nColPos( _nColPos ) @@ -75,20 +73,20 @@ namespace accessibility { SolarMutexGuard g; - ensureIsAlive(); + ensureAlive(); return m_aTable.GetAccessibleObjectName(m_eObjType, m_nRowPos, m_nColPos); } // implementation of a table cell OUString AccessibleGridControlTableCell::implGetText() { - ensureIsAlive(); + ensureAlive(); return m_aTable.GetAccessibleCellText( getRowPos(), getColumnPos() ); } css::lang::Locale AccessibleGridControlTableCell::implGetLocale() { - ensureIsAlive(); + ensureAlive(); return m_aTable.GetAccessible()->getAccessibleContext()->getLocale(); } @@ -98,58 +96,33 @@ namespace accessibility nEndIndex = 0; } - AccessibleGridControlTableCell::AccessibleGridControlTableCell(const css::uno::Reference<XAccessible >& _rxParent, - ::vcl::table::IAccessibleTable& _rTable, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos) - :AccessibleGridControlCell(_rxParent, _rTable, _nRowPos, _nColPos, AccessibleTableControlObjType::TABLECELL) + AccessibleGridControlTableCell::AccessibleGridControlTableCell( + const css::uno::Reference<XAccessible>& _rxParent, svt::table::TableControl& _rTable, + sal_Int32 _nRowPos, sal_uInt16 _nColPos) + : ImplInheritanceHelper(_rxParent, _rTable, _nRowPos, _nColPos, + AccessibleTableControlObjType::TABLECELL) { } - // XInterface - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL AccessibleGridControlTableCell::queryInterface( - const css::uno::Type& rType ) - { - Any aRet = AccessibleGridControlCell::queryInterface(rType); - if ( !aRet.hasValue() ) - aRet = AccessibleTextHelper_BASE::queryInterface(rType); - return aRet; - } - - /** Acquires the object (calls acquire() on base class). */ - void SAL_CALL AccessibleGridControlTableCell::acquire() noexcept - { - AccessibleGridControlCell::acquire(); - } - - /** Releases the object (calls release() on base class). */ - void SAL_CALL AccessibleGridControlTableCell::release() noexcept - { - AccessibleGridControlCell::release(); - } - css::awt::Rectangle SAL_CALL AccessibleGridControlTableCell::getCharacterBounds( sal_Int32 nIndex ) { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); if ( !implIsValidIndex( nIndex, implGetText().getLength() ) ) throw IndexOutOfBoundsException(); return vcl::unohelper::ConvertToAWTRect( - m_aTable.GetFieldCharacterBounds(getRowPos(), getColumnPos(), nIndex)); + m_aTable.GetCharacterBounds(nIndex)); } sal_Int32 SAL_CALL AccessibleGridControlTableCell::getIndexAtPoint( const css::awt::Point& _aPoint ) { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); - return m_aTable.GetFieldIndexAtPoint(getRowPos(), getColumnPos(), - vcl::unohelper::ConvertToVCLPoint(_aPoint)); + return m_aTable.GetIndexForPoint(vcl::unohelper::ConvertToVCLPoint(_aPoint)); } /** @return @@ -192,25 +165,13 @@ namespace accessibility return nStateSet; } - - // css::accessibility::XAccessible - - /** @return The css::accessibility::XAccessibleContext interface of this object. */ - css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlTableCell::getAccessibleContext() - { - SolarMutexGuard g; - - ensureIsAlive(); - return this; - } - // css::accessibility::XAccessibleContext sal_Int64 SAL_CALL AccessibleGridControlTableCell::getAccessibleIndexInParent() { SolarMutexGuard aSolarGuard; - ensureIsAlive(); + ensureAlive(); return (static_cast<sal_Int64>(getRowPos()) * static_cast<sal_Int64>(m_aTable.GetColumnCount())) + getColumnPos(); } @@ -319,24 +280,10 @@ namespace accessibility return false; } - tools::Rectangle AccessibleGridControlTableCell::implGetBoundingBox() - { - vcl::Window* pParent = m_aTable.GetAccessibleParentWindow(); - assert(pParent && "implGetBoundingBox - missing parent window"); - tools::Rectangle aGridRect = m_aTable.GetWindowExtentsRelative( *pParent ); - sal_Int64 nIndex = getAccessibleIndexInParent(); - tools::Rectangle aCellRect = m_aTable.calcCellRect(nIndex%m_aTable.GetColumnCount(), nIndex/m_aTable.GetColumnCount()); - tools::Long nX = aGridRect.Left() + aCellRect.Left(); - tools::Long nY = aGridRect.Top() + aCellRect.Top(); - tools::Rectangle aCell( Point( nX, nY ), aCellRect.GetSize()); - return aCell; - } - AbsoluteScreenPixelRectangle AccessibleGridControlTableCell::implGetBoundingBoxOnScreen() { AbsoluteScreenPixelRectangle aGridRect = m_aTable.GetWindowExtentsAbsolute(); - sal_Int64 nIndex = getAccessibleIndexInParent(); - tools::Rectangle aCellRect = m_aTable.calcCellRect(nIndex%m_aTable.GetColumnCount(), nIndex/m_aTable.GetColumnCount()); + tools::Rectangle aCellRect = m_aTable.calcCellRect(getRowPos(), getColumnPos()); tools::Long nX = aGridRect.Left() + aCellRect.Left(); tools::Long nY = aGridRect.Top() + aCellRect.Top(); AbsoluteScreenPixelRectangle aCell( AbsoluteScreenPixelPoint( nX, nY ), aCellRect.GetSize()); diff --git a/toolkit/source/controls/table/defaultinputhandler.cxx b/toolkit/source/controls/table/defaultinputhandler.cxx index 171458ef7acf..ba00f0bb9384 100644 --- a/toolkit/source/controls/table/defaultinputhandler.cxx +++ b/toolkit/source/controls/table/defaultinputhandler.cxx @@ -114,66 +114,6 @@ namespace svt::table return delegateMouseEvent( i_tableControl, i_event, &MouseFunction::handleMouseUp ); } - - bool DefaultInputHandler::KeyInput( ITableControl& _rControl, const KeyEvent& rKEvt ) - { - bool bHandled = false; - - const vcl::KeyCode& rKeyCode = rKEvt.GetKeyCode(); - sal_uInt16 nKeyCode = rKeyCode.GetCode(); - - struct ActionMapEntry - { - sal_uInt16 nKeyCode; - sal_uInt16 nKeyModifier; - TableControlAction eAction; - } - static const aKnownActions[] = { - { KEY_DOWN, 0, cursorDown }, - { KEY_UP, 0, cursorUp }, - { KEY_LEFT, 0, cursorLeft }, - { KEY_RIGHT, 0, cursorRight }, - { KEY_HOME, 0, cursorToLineStart }, - { KEY_END, 0, cursorToLineEnd }, - { KEY_PAGEUP, 0, cursorPageUp }, - { KEY_PAGEDOWN, 0, cursorPageDown }, - { KEY_PAGEUP, KEY_MOD1, cursorToFirstLine }, - { KEY_PAGEDOWN, KEY_MOD1, cursorToLastLine }, - { KEY_HOME, KEY_MOD1, cursorTopLeft }, - { KEY_END, KEY_MOD1, cursorBottomRight }, - { KEY_SPACE, KEY_MOD1, cursorSelectRow }, - { KEY_UP, KEY_SHIFT, cursorSelectRowUp }, - { KEY_DOWN, KEY_SHIFT, cursorSelectRowDown }, - { KEY_END, KEY_SHIFT, cursorSelectRowAreaBottom }, - { KEY_HOME, KEY_SHIFT, cursorSelectRowAreaTop } - }; - for (const ActionMapEntry& rAction : aKnownActions) - { - if ( ( rAction.nKeyCode == nKeyCode ) && ( rAction.nKeyModifier == rKeyCode.GetModifier() ) ) - { - bHandled = _rControl.dispatchAction( rAction.eAction ); - break; - } - } - - return bHandled; - } - - - bool DefaultInputHandler::GetFocus( ITableControl& _rControl ) - { - _rControl.showCursor(); - return false; // continue processing - } - - - bool DefaultInputHandler::LoseFocus( ITableControl& _rControl ) - { - _rControl.hideCursor(); - return false; // continue processing - } - - } // namespace svt::table diff --git a/toolkit/source/controls/table/tablecontrol.cxx b/toolkit/source/controls/table/tablecontrol.cxx index 7e609601722a..b3582a846d50 100644 --- a/toolkit/source/controls/table/tablecontrol.cxx +++ b/toolkit/source/controls/table/tablecontrol.cxx @@ -78,43 +78,85 @@ namespace svt::table void TableControl::GetFocus() { - if ( !m_pImpl || !m_pImpl->getInputHandler()->GetFocus( *m_pImpl ) ) - Control::GetFocus(); + if (m_pImpl) + m_pImpl->showCursor(); + + Control::GetFocus(); } void TableControl::LoseFocus() { - if ( !m_pImpl || !m_pImpl->getInputHandler()->LoseFocus( *m_pImpl ) ) - Control::LoseFocus(); + if (m_pImpl) + m_pImpl->hideCursor(); + + Control::LoseFocus(); } void TableControl::KeyInput( const KeyEvent& rKEvt ) { - if ( !m_pImpl->getInputHandler()->KeyInput( *m_pImpl, rKEvt ) ) - Control::KeyInput( rKEvt ); - else + bool bHandled = false; + if (m_pImpl) { - if ( m_pImpl->isAccessibleAlive() ) + const vcl::KeyCode& rKeyCode = rKEvt.GetKeyCode(); + sal_uInt16 nKeyCode = rKeyCode.GetCode(); + + struct ActionMapEntry { - m_pImpl->commitCellEvent( AccessibleEventId::STATE_CHANGED, - Any( AccessibleStateType::FOCUSED ), - Any() - ); - // Huh? What the heck? Why do we unconditionally notify a STATE_CHANGE/FOCUSED after each and every - // (handled) key stroke? - - m_pImpl->commitTableEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, - Any(), - Any() - ); - // ditto: Why do we notify this unconditionally? We should find the right place to notify the - // ACTIVE_DESCENDANT_CHANGED event. - // Also, we should check if STATE_CHANGED/FOCUSED is really necessary: finally, the children are - // transient, aren't they? + sal_uInt16 nKeyCode; + sal_uInt16 nKeyModifier; + TableControlAction eAction; + } + static const aKnownActions[] = { + { KEY_DOWN, 0, TableControlAction::cursorDown }, + { KEY_UP, 0, TableControlAction::cursorUp }, + { KEY_LEFT, 0, TableControlAction::cursorLeft }, + { KEY_RIGHT, 0, TableControlAction::cursorRight }, + { KEY_HOME, 0, TableControlAction::cursorToLineStart }, + { KEY_END, 0, TableControlAction::cursorToLineEnd }, + { KEY_PAGEUP, 0, TableControlAction::cursorPageUp }, + { KEY_PAGEDOWN, 0, TableControlAction::cursorPageDown }, + { KEY_PAGEUP, KEY_MOD1, TableControlAction::cursorToFirstLine }, + { KEY_PAGEDOWN, KEY_MOD1, TableControlAction::cursorToLastLine }, + { KEY_HOME, KEY_MOD1, TableControlAction::cursorTopLeft }, + { KEY_END, KEY_MOD1, TableControlAction::cursorBottomRight }, + { KEY_SPACE, KEY_MOD1, TableControlAction::cursorSelectRow }, + { KEY_UP, KEY_SHIFT, TableControlAction::cursorSelectRowUp }, + { KEY_DOWN, KEY_SHIFT, TableControlAction::cursorSelectRowDown }, + { KEY_END, KEY_SHIFT, TableControlAction::cursorSelectRowAreaBottom }, + { KEY_HOME, KEY_SHIFT, TableControlAction::cursorSelectRowAreaTop } + }; + for (const ActionMapEntry& rAction : aKnownActions) + { + if ((rAction.nKeyCode == nKeyCode) && (rAction.nKeyModifier == rKeyCode.GetModifier())) + { + bHandled = m_pImpl->dispatchAction(rAction.eAction); + break; + } } } + + if (!bHandled) + Control::KeyInput( rKEvt ); + else + { + m_pImpl->commitCellEvent( AccessibleEventId::STATE_CHANGED, + Any( AccessibleStateType::FOCUSED ), + Any() + ); + // Huh? What the heck? Why do we unconditionally notify a STATE_CHANGE/FOCUSED after each and every + // (handled) key stroke? + + m_pImpl->commitTableEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, + Any(), + Any() + ); + // ditto: Why do we notify this unconditionally? We should find the right place to notify the + // ACTIVE_DESCENDANT_CHANGED event. + // Also, we should check if STATE_CHANGED/FOCUSED is really necessary: finally, the children are + // transient, aren't they? + } } @@ -257,13 +299,6 @@ namespace svt::table Select(); } - - ITableControl& TableControl::getTableControlInterface() - { - return *m_pImpl; - } - - SelectionEngine* TableControl::getSelEngine() { return m_pImpl->getSelEngine(); @@ -284,33 +319,25 @@ namespace svt::table return m_pImpl->getAccessible( *pParent ); } - - Reference<XAccessible> TableControl::CreateAccessibleControl( sal_Int32 ) - { - SAL_WARN( "svtools", "TableControl::CreateAccessibleControl: to be overwritten!" ); - return nullptr; - } - - - OUString TableControl::GetAccessibleObjectName( vcl::table::AccessibleTableControlObjType eObjType, sal_Int32 _nRow, sal_Int32 _nCol) const + OUString TableControl::GetAccessibleObjectName( AccessibleTableControlObjType eObjType, sal_Int32 _nRow, sal_Int32 _nCol) const { OUString aRetText; //Window* pWin; switch( eObjType ) { - case vcl::table::AccessibleTableControlObjType::GRIDCONTROL: + case AccessibleTableControlObjType::GRIDCONTROL: aRetText = "Grid control"; break; - case vcl::table::AccessibleTableControlObjType::TABLE: + case AccessibleTableControlObjType::TABLE: aRetText = "Grid control"; break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERBAR: + case AccessibleTableControlObjType::ROWHEADERBAR: aRetText = "RowHeaderBar"; break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR: + case AccessibleTableControlObjType::COLUMNHEADERBAR: aRetText = "ColumnHeaderBar"; break; - case vcl::table::AccessibleTableControlObjType::TABLECELL: + case AccessibleTableControlObjType::TABLECELL: //the name of the cell consists of column name and row name if defined //if the name is equal to cell content, it'll be read twice if(GetModel()->hasColumnHeaders()) @@ -323,10 +350,10 @@ namespace svt::table } //aRetText = GetAccessibleCellText(_nRow, _nCol); break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERCELL: + case AccessibleTableControlObjType::ROWHEADERCELL: aRetText = GetRowName(_nRow); break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL: + case AccessibleTableControlObjType::COLUMNHEADERCELL: aRetText = GetColumnName(_nCol); break; default: @@ -336,24 +363,24 @@ namespace svt::table } - OUString TableControl::GetAccessibleObjectDescription( vcl::table::AccessibleTableControlObjType eObjType ) const + OUString TableControl::GetAccessibleObjectDescription( AccessibleTableControlObjType eObjType ) const { OUString aRetText; switch( eObjType ) { - case vcl::table::AccessibleTableControlObjType::GRIDCONTROL: + case AccessibleTableControlObjType::GRIDCONTROL: aRetText = "Grid control description"; break; - case vcl::table::AccessibleTableControlObjType::TABLE: + case AccessibleTableControlObjType::TABLE: aRetText = "TABLE description"; break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERBAR: + case AccessibleTableControlObjType::ROWHEADERBAR: aRetText = "ROWHEADERBAR description"; break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR: + case AccessibleTableControlObjType::COLUMNHEADERBAR: aRetText = "COLUMNHEADERBAR description"; break; - case vcl::table::AccessibleTableControlObjType::TABLECELL: + case AccessibleTableControlObjType::TABLECELL: // the description of the cell consists of column name and row name if defined // if the name is equal to cell content, it'll be read twice if ( GetModel()->hasColumnHeaders() ) @@ -365,10 +392,10 @@ namespace svt::table aRetText += GetRowName( GetCurrentRow() ); } break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERCELL: + case AccessibleTableControlObjType::ROWHEADERCELL: aRetText = "ROWHEADERCELL description"; break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL: + case AccessibleTableControlObjType::COLUMNHEADERCELL: aRetText = "COLUMNHEADERCELL description"; break; } @@ -398,12 +425,12 @@ namespace svt::table void TableControl::FillAccessibleStateSet( sal_Int64& rStateSet, - vcl::table::AccessibleTableControlObjType eObjType ) const + AccessibleTableControlObjType eObjType ) const { switch( eObjType ) { - case vcl::table::AccessibleTableControlObjType::GRIDCONTROL: - case vcl::table::AccessibleTableControlObjType::TABLE: + case AccessibleTableControlObjType::GRIDCONTROL: + case AccessibleTableControlObjType::TABLE: rStateSet |= AccessibleStateType::FOCUSABLE; @@ -425,21 +452,17 @@ namespace svt::table if ( IsReallyVisible() ) rStateSet |= AccessibleStateType::VISIBLE; - if ( eObjType == vcl::table::AccessibleTableControlObjType::TABLE ) + if ( eObjType == AccessibleTableControlObjType::TABLE ) rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERBAR: + case AccessibleTableControlObjType::COLUMNHEADERBAR: + case AccessibleTableControlObjType::ROWHEADERBAR: rStateSet |= AccessibleStateType::VISIBLE; rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR: - rStateSet |= AccessibleStateType::VISIBLE; - rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; - break; - - case vcl::table::AccessibleTableControlObjType::TABLECELL: + case AccessibleTableControlObjType::TABLECELL: { rStateSet |= AccessibleStateType::FOCUSABLE; if ( HasChildPathFocus() ) @@ -455,60 +478,27 @@ namespace svt::table } break; - case vcl::table::AccessibleTableControlObjType::ROWHEADERCELL: + case AccessibleTableControlObjType::ROWHEADERCELL: rStateSet |= AccessibleStateType::VISIBLE; rStateSet |= AccessibleStateType::TRANSIENT; break; - case vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL: + case AccessibleTableControlObjType::COLUMNHEADERCELL: rStateSet |= AccessibleStateType::VISIBLE; break; } } - void TableControl::commitCellEventIfAccessibleAlive( sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue ) - { - if ( m_pImpl->isAccessibleAlive() ) - m_pImpl->commitCellEvent( i_eventID, i_newValue, i_oldValue ); - } - - void TableControl::commitTableEventIfAccessibleAlive( sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue ) - { - if ( m_pImpl->isAccessibleAlive() ) - m_pImpl->commitTableEvent( i_eventID, i_newValue, i_oldValue ); - } - - AbsoluteScreenPixelRectangle TableControl::GetWindowExtentsAbsolute() const + void TableControl::commitCellEvent(sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue) { - return Control::GetWindowExtentsAbsolute(); + m_pImpl->commitCellEvent( i_eventID, i_newValue, i_oldValue ); } - tools::Rectangle TableControl::GetWindowExtentsRelative(const vcl::Window& rRelativeWindow) const + void TableControl::commitTableEvent(sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue) { - return Control::GetWindowExtentsRelative( rRelativeWindow ); + m_pImpl->commitTableEvent( i_eventID, i_newValue, i_oldValue ); } - void TableControl::GrabFocus() - { - Control::GrabFocus(); - } - - Reference< XAccessible > TableControl::GetAccessible() - { - return Control::GetAccessible(); - } - - vcl::Window* TableControl::GetAccessibleParentWindow() const - { - return Control::GetAccessibleParentWindow(); - } - - vcl::Window* TableControl::GetWindowInstance() - { - return this; - } - - bool TableControl::HasRowHeader() { return GetModel()->hasRowHeaders(); @@ -532,16 +522,6 @@ namespace svt::table return count; } - - bool TableControl::ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint ) - { - sal_Int32 nRow = m_pImpl->getRowAtPoint( _rPoint ); - sal_Int32 nCol = m_pImpl->getColAtPoint( _rPoint ); - _rnIndex = nRow * GetColumnCount() + nCol; - return nRow >= 0; - } - - sal_Int32 TableControl::GetRowCount() const { return GetModel()->getRowCount(); @@ -579,21 +559,9 @@ namespace svt::table } - tools::Rectangle TableControl::GetFieldCharacterBounds(sal_Int32,sal_Int32,sal_Int32 nIndex) - { - return GetCharacterBounds(nIndex); - } - - - sal_Int32 TableControl::GetFieldIndexAtPoint(sal_Int32,sal_Int32,const Point& _rPoint) - { - return GetIndexForPoint(_rPoint); - } - - tools::Rectangle TableControl::calcHeaderRect(bool _bIsColumnBar ) { - return m_pImpl->calcHeaderRect( !_bIsColumnBar ); + return m_pImpl->calcHeaderRect(_bIsColumnBar); } @@ -624,15 +592,21 @@ namespace svt::table void TableControl::Select() { ImplCallEventListenersAndHandler( VclEventId::TableRowSelect, nullptr ); + m_pImpl->commitAccessibleEvent( AccessibleEventId::SELECTION_CHANGED ); - if ( m_pImpl->isAccessibleAlive() ) - { - m_pImpl->commitAccessibleEvent( AccessibleEventId::SELECTION_CHANGED ); + m_pImpl->commitTableEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), Any() ); + // TODO: why do we notify this when the *selection* changed? Shouldn't we find a better place for this, + // actually, when the active descendant, i.e. the current cell, *really* changed? + } - m_pImpl->commitTableEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), Any() ); - // TODO: why do we notify this when the *selection* changed? Shouldn't we find a better place for this, - // actually, when the active descendant, i.e. the current cell, *really* changed? - } + TableCell TableControl::hitTest(const Point& rPoint) const + { + return m_pImpl->hitTest(rPoint); + } + + void TableControl::invalidate(const TableArea aArea) + { + return m_pImpl->invalidate(aArea); } } // namespace svt::table diff --git a/toolkit/source/controls/table/tablecontrol_impl.cxx b/toolkit/source/controls/table/tablecontrol_impl.cxx index 7d8e25d742c7..1900de551ddc 100644 --- a/toolkit/source/controls/table/tablecontrol_impl.cxx +++ b/toolkit/source/controls/table/tablecontrol_impl.cxx @@ -18,6 +18,7 @@ */ +#include <controls/table/AccessibleGridControl.hxx> #include <controls/table/tablecontrol.hxx> #include <controls/table/defaultinputhandler.hxx> #include <controls/table/tablemodel.hxx> @@ -320,12 +321,10 @@ namespace svt::table impl_ni_relayout(); // notify A1YY events - if ( impl_isAccessibleAlive() ) - { - impl_commitAccessibleEvent( AccessibleEventId::TABLE_MODEL_CHANGED, - Any( AccessibleTableModelChange( AccessibleTableModelChangeType::ROWS_INSERTED, i_first, i_last, -1, -1 ) ) - ); - } + impl_commitAccessibleEvent( + AccessibleEventId::TABLE_MODEL_CHANGED, + Any(AccessibleTableModelChange(AccessibleTableModelChangeType::ROWS_INSERTED, i_first, + i_last, -1, -1))); // schedule repaint invalidateRowRange( i_first, ROW_INVALID ); @@ -388,20 +387,11 @@ namespace svt::table impl_ni_relayout(); // notify A11Y events - if ( impl_isAccessibleAlive() ) - { - commitTableEvent( - AccessibleEventId::TABLE_MODEL_CHANGED, - Any( AccessibleTableModelChange( - AccessibleTableModelChangeType::ROWS_REMOVED, - firstRemovedRow, - lastRemovedRow, - -1, - -1 - ) ), - Any() - ); - } + commitTableEvent( + AccessibleEventId::TABLE_MODEL_CHANGED, + Any(AccessibleTableModelChange(AccessibleTableModelChangeType::ROWS_REMOVED, + firstRemovedRow, lastRemovedRow, -1, -1)), + Any()); // schedule a repaint invalidateRowRange( firstRemovedRow, ROW_INVALID ); @@ -1286,7 +1276,7 @@ namespace svt::table switch ( _eAction ) { - case cursorDown: + case TableControlAction::cursorDown: if ( m_pSelEngine->GetSelectionMode() == SelectionMode::Single ) { //if other rows already selected, deselect them @@ -1314,7 +1304,7 @@ namespace svt::table } break; - case cursorUp: + case TableControlAction::cursorUp: if(m_pSelEngine->GetSelectionMode() == SelectionMode::Single) { if(!m_aSelectedRows.empty()) @@ -1343,7 +1333,7 @@ namespace svt::table bSuccess = goTo( m_nCurColumn, m_nCurRow - 1 ); } break; - case cursorLeft: + case TableControlAction::cursorLeft: if ( m_nCurColumn > 0 ) bSuccess = goTo( m_nCurColumn - 1, m_nCurRow ); else @@ -1351,7 +1341,7 @@ namespace svt::table bSuccess = goTo( m_nColumnCount - 1, m_nCurRow - 1 ); break; - case cursorRight: + case TableControlAction::cursorRight: if ( m_nCurColumn < m_nColumnCount - 1 ) bSuccess = goTo( m_nCurColumn + 1, m_nCurRow ); else @@ -1359,45 +1349,45 @@ namespace svt::table bSuccess = goTo( 0, m_nCurRow + 1 ); break; - case cursorToLineStart: + case TableControlAction::cursorToLineStart: bSuccess = goTo( 0, m_nCurRow ); break; - case cursorToLineEnd: + case TableControlAction::cursorToLineEnd: bSuccess = goTo( m_nColumnCount - 1, m_nCurRow ); break; - case cursorToFirstLine: + case TableControlAction::cursorToFirstLine: bSuccess = goTo( m_nCurColumn, 0 ); break; - case cursorToLastLine: + case TableControlAction::cursorToLastLine: bSuccess = goTo( m_nCurColumn, m_nRowCount - 1 ); break; - case cursorPageUp: + case TableControlAction::cursorPageUp: { RowPos nNewRow = ::std::max( RowPos(0), m_nCurRow - impl_getVisibleRows( false ) ); bSuccess = goTo( m_nCurColumn, nNewRow ); } break; - case cursorPageDown: + case TableControlAction::cursorPageDown: { RowPos nNewRow = ::std::min( m_nRowCount - 1, m_nCurRow + impl_getVisibleRows( false ) ); bSuccess = goTo( m_nCurColumn, nNewRow ); } break; - case cursorTopLeft: + case TableControlAction::cursorTopLeft: bSuccess = goTo( 0, 0 ); break; - case cursorBottomRight: + case TableControlAction::cursorBottomRight: bSuccess = goTo( m_nColumnCount - 1, m_nRowCount - 1 ); break; - case cursorSelectRow: + case TableControlAction::cursorSelectRow: { if(m_pSelEngine->GetSelectionMode() == SelectionMode::NONE) return false; @@ -1418,7 +1408,7 @@ namespace svt::table bSuccess = true; } break; - case cursorSelectRowUp: + case TableControlAction::cursorSelectRowUp: { if(m_pSelEngine->GetSelectionMode() == SelectionMode::NONE) return false; @@ -1503,7 +1493,7 @@ namespace svt::table } } break; - case cursorSelectRowDown: + case TableControlAction::cursorSelectRowDown: { if(m_pSelEngine->GetSelectionMode() == SelectionMode::NONE) bSuccess = false; @@ -1585,7 +1575,7 @@ namespace svt::table } break; - case cursorSelectRowAreaTop: + case TableControlAction::cursorSelectRowAreaTop: { if(m_pSelEngine->GetSelectionMode() == SelectionMode::NONE) bSuccess = false; @@ -1613,7 +1603,7 @@ namespace svt::table } break; - case cursorSelectRowAreaBottom: + case TableControlAction::cursorSelectRowAreaBottom: { if(m_pSelEngine->GetSelectionMode() == SelectionMode::NONE) return false; @@ -1656,8 +1646,7 @@ namespace svt::table PTableRenderer pRenderer = m_pModel ? m_pModel->getRenderer() : PTableRenderer(); if ( pRenderer ) { - tools::Rectangle aCellRect; - impl_getCellRect( m_nCurColumn, m_nCurRow, aCellRect ); + tools::Rectangle aCellRect = calcCellRect(m_nCurRow, m_nCurColumn); if ( _bShow ) pRenderer->ShowCellCursor( *m_pDataWindow, aCellRect ); else @@ -1665,23 +1654,6 @@ namespace svt::table } } - - void TableControl_Impl::impl_getCellRect( ColPos _nColumn, RowPos _nRow, tools::Rectangle& _rCellRect ) const - { - if ( !m_pModel - || ( COL_INVALID == _nColumn ) - || ( ROW_INVALID == _nRow ) - ) - { - _rCellRect.SetEmpty(); - return; - } - - TableCellGeometry aCell( *this, impl_getAllVisibleCellsArea(), _nColumn, _nRow ); - _rCellRect = aCell.getRect(); - } - - RowPos TableControl_Impl::getRowAtPoint( const Point& rPoint ) const { return impl_getRowForAbscissa( rPoint.Y() ); @@ -1824,27 +1796,24 @@ namespace svt::table // if only one row is selected if ( _nPrevRow == _nCurRow ) { - tools::Rectangle aCellRect; - impl_getCellRect( m_nCurColumn, _nCurRow, aCellRect ); + tools::Rectangle aCellRect = calcCellRect(_nCurRow, m_nCurColumn); aInvalidateRect.SetTop( aCellRect.Top() ); aInvalidateRect.SetBottom( aCellRect.Bottom() ); } //if the region is above the current row else if(_nPrevRow < _nCurRow ) { - tools::Rectangle aCellRect; - impl_getCellRect( m_nCurColumn, _nPrevRow, aCellRect ); + tools::Rectangle aCellRect = calcCellRect(_nPrevRow, m_nCurColumn); aInvalidateRect.SetTop( aCellRect.Top() ); - impl_getCellRect( m_nCurColumn, _nCurRow, aCellRect ); + aCellRect = calcCellRect(_nCurRow, m_nCurColumn); aInvalidateRect.SetBottom( aCellRect.Bottom() ); } //if the region is beneath the current row else { - tools::Rectangle aCellRect; - impl_getCellRect( m_nCurColumn, _nCurRow, aCellRect ); + tools::Rectangle aCellRect = calcCellRect(_nCurRow, m_nCurColumn); aInvalidateRect.SetTop( aCellRect.Top() ); - impl_getCellRect( m_nCurColumn, _nPrevRow, aCellRect ); + aCellRect = calcCellRect(_nPrevRow, m_nCurColumn); aInvalidateRect.SetBottom( aCellRect.Bottom() ); } @@ -2299,15 +2268,15 @@ namespace svt::table void TableControl_Impl::commitCellEvent( sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue ) { - if ( impl_isAccessibleAlive() ) - m_pAccessibleTable->commitCellEvent( i_eventID, i_newValue, i_oldValue ); + if (m_xAccessibleTable.is()) + m_xAccessibleTable->commitCellEvent(i_eventID, i_newValue, i_oldValue); } void TableControl_Impl::commitTableEvent( sal_Int16 const i_eventID, const Any& i_newValue, const Any& i_oldValue ) { - if ( impl_isAccessibleAlive() ) - m_pAccessibleTable->commitTableEvent( i_eventID, i_newValue, i_oldValue ); + if (m_xAccessibleTable.is()) + m_xAccessibleTable->commitTableEvent(i_eventID, i_newValue, i_oldValue); } @@ -2342,9 +2311,11 @@ namespace svt::table tools::Rectangle TableControl_Impl::calcCellRect( sal_Int32 nRow, sal_Int32 nCol ) const { - tools::Rectangle aCellRect; - impl_getCellRect( nRow, nCol, aCellRect ); - return aCellRect; + if (!m_pModel || (nRow == ROW_INVALID) || (nCol == COL_INVALID)) + return tools::Rectangle(); + + TableCellGeometry aCell(*this, impl_getAllVisibleCellsArea(), nCol, nRow); + return aCell.getRect(); } @@ -2367,46 +2338,35 @@ namespace svt::table impl_ni_ScrollColumns( _pScrollbar->GetDelta() ); } - - const rtl::Reference<vcl::table::IAccessibleTableControl> & TableControl_Impl::getAccessible( vcl::Window& i_parentWindow ) + const rtl::Reference<accessibility::AccessibleGridControl>& + TableControl_Impl::getAccessible(vcl::Window& i_parentWindow) { - if (m_pAccessibleTable) - return m_pAccessibleTable; + if (m_xAccessibleTable.is()) + return m_xAccessibleTable; DBG_TESTSOLARMUTEX(); - if ( m_pAccessibleTable == nullptr ) + + Reference<XAccessible> const xAccParent = i_parentWindow.GetAccessible(); + if (xAccParent.is()) { - Reference< XAccessible > const xAccParent = i_parentWindow.GetAccessible(); - if ( xAccParent.is() ) - { - m_pAccessibleTable = AccessibleFactory::createAccessibleTableControl( - xAccParent, m_rAntiImpl - ); - } + m_xAccessibleTable = new accessibility::AccessibleGridControl(xAccParent, m_rAntiImpl); } - return m_pAccessibleTable; + return m_xAccessibleTable; } void TableControl_Impl::disposeAccessible() { - if ( m_pAccessibleTable ) - m_pAccessibleTable->DisposeAccessImpl(); - m_pAccessibleTable = nullptr; - } - - - bool TableControl_Impl::impl_isAccessibleAlive() const - { - return m_pAccessibleTable && m_pAccessibleTable->isAlive(); + if (m_xAccessibleTable.is()) + m_xAccessibleTable->dispose(); + m_xAccessibleTable.clear(); } - void TableControl_Impl::impl_commitAccessibleEvent( sal_Int16 const i_eventID, Any const & i_newValue ) { - if ( impl_isAccessibleAlive() ) - m_pAccessibleTable->commitEvent( i_eventID, i_newValue ); + if (m_xAccessibleTable.is()) + m_xAccessibleTable->commitEvent(i_eventID, i_newValue, css::uno::Any()); } diff --git a/toolkit/source/controls/table/tablecontrol_impl.hxx b/toolkit/source/controls/table/tablecontrol_impl.hxx index db17ef85fdfe..13f1f244fc46 100644 --- a/toolkit/source/controls/table/tablecontrol_impl.hxx +++ b/toolkit/source/controls/table/tablecontrol_impl.hxx @@ -19,12 +19,11 @@ #pragma once -#include <com/sun/star/accessibility/XAccessible.hpp> +#include <controls/table/AccessibleGridControl.hxx> #include <controls/table/tablemodel.hxx> #include <controls/table/tablecontrolinterface.hxx> -#include <vcl/accessibletable.hxx> - +#include <com/sun/star/accessibility/XAccessible.hpp> #include <vcl/seleng.hxx> #include <vector> @@ -130,7 +129,7 @@ namespace svt::table RowPos m_nAnchor; bool m_bUpdatingColWidths; - rtl::Reference<vcl::table::IAccessibleTableControl> m_pAccessibleTable; + rtl::Reference<accessibility::AccessibleGridControl> m_xAccessibleTable; public: void setModel( const PTableModel& _pModel ); @@ -244,7 +243,19 @@ namespace svt::table // ITableControl virtual void hideCursor() override; virtual void showCursor() override; - virtual bool dispatchAction( TableControlAction _eAction ) override; + + /** dispatches an action to the table control + + @return + <TRUE/> if the action could be dispatched successfully, <FALSE/> otherwise. Usual + failure conditions include some other instance vetoing the action, or impossibility + to execute the action at all (for instance moving up one row when already positioned + on the very first row). + + @see TableControlAction + */ + virtual bool dispatchAction(TableControlAction _eAction); + virtual SelectionEngine* getSelEngine() override; virtual PTableModel getModel() const override; virtual ColPos getCurrentColumn() const override; @@ -278,12 +289,10 @@ namespace svt::table tools::Rectangle calcCellRect( sal_Int32 nRow, sal_Int32 nCol ) const; // A11Y - const rtl::Reference<vcl::table::IAccessibleTableControl> & - getAccessible( vcl::Window& i_parentWindow ); + const rtl::Reference<accessibility::AccessibleGridControl>& + getAccessible(vcl::Window& i_parentWindow); void disposeAccessible(); - bool isAccessibleAlive() const { return impl_isAccessibleAlive(); } - // ITableModelListener virtual void rowsInserted( RowPos first, RowPos last ) override; virtual void rowsRemoved( RowPos first, RowPos last ) override; @@ -295,7 +304,6 @@ namespace svt::table virtual void tableMetricsChanged() override; private: - bool impl_isAccessibleAlive() const; void impl_commitAccessibleEvent( sal_Int16 const i_eventID, css::uno::Any const & i_newValue @@ -330,10 +338,6 @@ namespace svt::table */ TableSize impl_getVisibleColumns( bool _bAcceptPartialCol ) const; - /** determines the rectangle occupied by the given cell - */ - void impl_getCellRect( ColPos _nColumn, RowPos _nRow, tools::Rectangle& _rCellRect ) const; - /** updates all cached model values The method is not bound to the classes public invariants, as it's used in diff --git a/toolkit/source/controls/table/tabledatawindow.hxx b/toolkit/source/controls/table/tabledatawindow.hxx index e42a054939db..b0a39ad95dad 100644 --- a/toolkit/source/controls/table/tabledatawindow.hxx +++ b/toolkit/source/controls/table/tabledatawindow.hxx @@ -32,7 +32,6 @@ namespace svt::table */ class TableDataWindow : public vcl::Window { - friend class TableFunctionSet; private: TableControl_Impl& m_rTableControl; Link<LinkParamNone*,void> m_aSelectHdl; diff --git a/toolkit/source/controls/unocontroltablemodel.cxx b/toolkit/source/controls/unocontroltablemodel.cxx index 50f6cac3cf80..ff83158dc757 100644 --- a/toolkit/source/controls/unocontroltablemodel.cxx +++ b/toolkit/source/controls/unocontroltablemodel.cxx @@ -53,9 +53,6 @@ namespace svt::table //= UnoControlTableModel -#define DBG_CHECK_ME() \ - DBG_TESTSOLARMUTEX(); \ - UnoControlTableModel::UnoControlTableModel() :aColumns ( ) ,bHasColumnHeaders ( true ) @@ -92,14 +89,14 @@ namespace svt::table TableSize UnoControlTableModel::getColumnCount() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return static_cast<TableSize>(aColumns.size()); } TableSize UnoControlTableModel::getRowCount() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); TableSize nRowCount = 0; try @@ -118,21 +115,21 @@ namespace svt::table bool UnoControlTableModel::hasColumnHeaders() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bHasColumnHeaders; } bool UnoControlTableModel::hasRowHeaders() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bHasRowHeaders; } void UnoControlTableModel::setRowHeaders(bool _bRowHeaders) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( bHasRowHeaders == _bRowHeaders ) return; @@ -143,7 +140,7 @@ namespace svt::table void UnoControlTableModel::setColumnHeaders(bool _bColumnHeaders) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( bHasColumnHeaders == _bColumnHeaders ) return; @@ -154,7 +151,7 @@ namespace svt::table PColumnModel UnoControlTableModel::getColumnModel( ColPos column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN( ( column >= 0 ) && ( column < getColumnCount() ), "DefaultTableModel::getColumnModel: invalid index!", PColumnModel() ); return aColumns[ column ]; @@ -163,14 +160,14 @@ namespace svt::table void UnoControlTableModel::appendColumn( Reference< XGridColumn > const & i_column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); insertColumn( aColumns.size(), i_column ); } void UnoControlTableModel::insertColumn( ColPos const i_position, Reference< XGridColumn > const & i_column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_position >= 0 ) && ( o3tl::make_unsigned( i_position ) <= aColumns.size() ), "UnoControlTableModel::insertColumn: illegal position!" ); @@ -188,7 +185,7 @@ namespace svt::table void UnoControlTableModel::removeColumn( ColPos const i_position ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_position >= 0 ) && ( o3tl::make_unsigned( i_position ) <= aColumns.size() ), "UnoControlTableModel::removeColumn: illegal position!" ); @@ -214,7 +211,7 @@ namespace svt::table void UnoControlTableModel::removeAllColumns() { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( aColumns.empty() ) return; @@ -253,28 +250,28 @@ namespace svt::table PTableRenderer UnoControlTableModel::getRenderer() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return pRenderer; } PTableInputHandler UnoControlTableModel::getInputHandler() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return pInputHandler; } TableMetrics UnoControlTableModel::getRowHeight() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return nRowHeight; } void UnoControlTableModel::setRowHeight(TableMetrics _nRowHeight) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nRowHeight == _nRowHeight ) return; @@ -285,7 +282,7 @@ namespace svt::table TableMetrics UnoControlTableModel::getColumnHeaderHeight() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); DBG_ASSERT( hasColumnHeaders(), "DefaultTableModel::getColumnHeaderHeight: invalid call!" ); return nColumnHeaderHeight; } @@ -293,14 +290,14 @@ namespace svt::table TableMetrics UnoControlTableModel::getRowHeaderWidth() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); DBG_ASSERT( hasRowHeaders(), "DefaultTableModel::getRowHeaderWidth: invalid call!" ); return nRowHeaderWidth; } void UnoControlTableModel::setColumnHeaderHeight(TableMetrics _nHeight) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nColumnHeaderHeight == _nHeight ) return; @@ -311,7 +308,7 @@ namespace svt::table void UnoControlTableModel::setRowHeaderWidth(TableMetrics _nWidth) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nRowHeaderWidth == _nWidth ) return; @@ -322,21 +319,21 @@ namespace svt::table ScrollbarVisibility UnoControlTableModel::getVerticalScrollbarVisibility() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return eVScrollMode; } ScrollbarVisibility UnoControlTableModel::getHorizontalScrollbarVisibility() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return eHScrollMode; } void UnoControlTableModel::addTableModelListener( const PTableModelListener& i_listener ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( !!i_listener, "illegal NULL listener" ); m_aListeners.push_back( i_listener ); } @@ -344,7 +341,7 @@ namespace svt::table void UnoControlTableModel::removeTableModelListener( const PTableModelListener& i_listener ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); auto lookup = std::find(m_aListeners.begin(), m_aListeners.end(), i_listener); if (lookup != m_aListeners.end()) { @@ -357,21 +354,21 @@ namespace svt::table void UnoControlTableModel::setVerticalScrollbarVisibility( ScrollbarVisibility const i_visibility ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); eVScrollMode = i_visibility; } void UnoControlTableModel::setHorizontalScrollbarVisibility( ScrollbarVisibility const i_visibility ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); eHScrollMode = i_visibility; } void UnoControlTableModel::setDataModel( Reference< XGridDataModel > const & i_gridDataModel ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_aDataModel = i_gridDataModel; // TODO: register as listener, so we're notified of row/data changes, and can multiplex them to our // own listeners @@ -393,7 +390,7 @@ namespace svt::table void UnoControlTableModel::setColumnModel( Reference< XGridColumnModel > const & i_gridColumnModel ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_aColumnModel = i_gridColumnModel; } @@ -413,7 +410,7 @@ namespace svt::table void UnoControlTableModel::getCellContent( ColPos const i_col, RowPos const i_row, Any& o_cellContent ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); o_cellContent.clear(); try @@ -451,7 +448,7 @@ namespace svt::table void UnoControlTableModel::getCellToolTip( ColPos const i_col, RowPos const i_row, Any& o_cellToolTip ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); try { Reference< XGridDataModel > const xDataModel( m_aDataModel ); @@ -468,7 +465,7 @@ namespace svt::table Any UnoControlTableModel::getRowHeading( RowPos const i_rowPos ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Any aRowHeading; @@ -511,140 +508,140 @@ namespace svt::table ::std::optional< ::Color > UnoControlTableModel::getLineColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aGridLineColor; } void UnoControlTableModel::setLineColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aGridLineColor ); } ::std::optional< ::Color > UnoControlTableModel::getHeaderBackgroundColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aHeaderBackgroundColor; } void UnoControlTableModel::setHeaderBackgroundColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aHeaderBackgroundColor ); } ::std::optional< ::Color > UnoControlTableModel::getHeaderTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aHeaderTextColor; } ::std::optional< ::Color > UnoControlTableModel::getActiveSelectionBackColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aActiveSelectionBackColor; } ::std::optional< ::Color > UnoControlTableModel::getInactiveSelectionBackColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aInactiveSelectionBackColor; } ::std::optional< ::Color > UnoControlTableModel::getActiveSelectionTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aActiveSelectionTextColor; } ::std::optional< ::Color > UnoControlTableModel::getInactiveSelectionTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aInactiveSelectionTextColor; } void UnoControlTableModel::setHeaderTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aHeaderTextColor ); } void UnoControlTableModel::setActiveSelectionBackColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aActiveSelectionBackColor ); } void UnoControlTableModel::setInactiveSelectionBackColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aInactiveSelectionBackColor ); } void UnoControlTableModel::setActiveSelectionTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aActiveSelectionTextColor ); } void UnoControlTableModel::setInactiveSelectionTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aInactiveSelectionTextColor ); } ::std::optional< ::Color > UnoControlTableModel::getTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aTextColor; } void UnoControlTableModel::setTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aTextColor ); } ::std::optional< ::Color > UnoControlTableModel::getTextLineColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aTextColor; } void UnoControlTableModel::setTextLineColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aTextLineColor ); } ::std::optional< ::std::vector< ::Color > > UnoControlTableModel::getRowBackgroundColors() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aRowColors; } void UnoControlTableModel::setRowBackgroundColors( css::uno::Any const & i_APIValue ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Sequence< css::util::Color > aAPIColors; if ( !( i_APIValue >>= aAPIColors ) ) m_aRowColors.reset(); @@ -660,21 +657,21 @@ namespace svt::table VerticalAlignment UnoControlTableModel::getVerticalAlign() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_eVerticalAlign; } void UnoControlTableModel::setVerticalAlign( VerticalAlignment _xAlign ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_eVerticalAlign = _xAlign; } ColPos UnoControlTableModel::getColumnPos( UnoGridColumnFacade const & i_column ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ColPos nPos = 0; for (auto const& col : aColumns) { @@ -689,7 +686,7 @@ namespace svt::table ITableDataSort* UnoControlTableModel::getSortAdapter() { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Reference< XSortableGridData > const xSortAccess( getDataModel(), UNO_QUERY ); if ( xSortAccess.is() ) @@ -700,21 +697,21 @@ namespace svt::table bool UnoControlTableModel::isEnabled() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bEnabled; } void UnoControlTableModel::setEnabled( bool _bEnabled ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); bEnabled = _bEnabled; } void UnoControlTableModel::sortByColumn( ColPos const i_column, ColumnSortDirection const i_sortDirection ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); try { @@ -730,7 +727,7 @@ namespace svt::table ColumnSort UnoControlTableModel::getCurrentSortOrder() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ColumnSort currentSort; try @@ -750,7 +747,7 @@ namespace svt::table void UnoControlTableModel::notifyColumnChange( ColPos const i_columnPos, ColumnAttributeGroup const i_attributeGroup ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_columnPos >= 0 ) && ( i_columnPos < getColumnCount() ), "UnoControlTableModel::notifyColumnChange: invalid column index!" ); diff --git a/tools/qa/cppunit/test_color.cxx b/tools/qa/cppunit/test_color.cxx index 4e2046c58e71..736897a81ef7 100644 --- a/tools/qa/cppunit/test_color.cxx +++ b/tools/qa/cppunit/test_color.cxx @@ -27,6 +27,7 @@ public: void testInvert(); void testBColor(); void testLuminance(); + void testCreateFromString(); CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testVariables); @@ -37,6 +38,7 @@ public: CPPUNIT_TEST(testInvert); CPPUNIT_TEST(testBColor); CPPUNIT_TEST(testLuminance); + CPPUNIT_TEST(testCreateFromString); CPPUNIT_TEST_SUITE_END(); }; @@ -245,6 +247,13 @@ void Test::testLuminance() CPPUNIT_ASSERT(COL_WHITE.GetLuminance() > COL_BLACK.GetLuminance()); } +void Test::testCreateFromString() +{ + Color aColor; + CPPUNIT_ASSERT(color::createFromString("#00FF00"_ostr, aColor)); + CPPUNIT_ASSERT_EQUAL(Color(0x00, 0xff, 0x00), aColor); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); } diff --git a/tools/qa/cppunit/test_xmlwalker.cxx b/tools/qa/cppunit/test_xmlwalker.cxx index d18f3f5db487..9ddc586ef410 100644 --- a/tools/qa/cppunit/test_xmlwalker.cxx +++ b/tools/qa/cppunit/test_xmlwalker.cxx @@ -78,6 +78,19 @@ void XmlWalkerTest::testReadXML() { CPPUNIT_ASSERT_EQUAL(std::string_view("adobe:ns:meta/"), aWalker.namespaceHref()); CPPUNIT_ASSERT_EQUAL(std::string_view("xx"), aWalker.namespacePrefix()); + + aWalker.children(); + while (aWalker.isValid()) + { + if (aWalker.name() == "namespace-child") + { + CPPUNIT_ASSERT_EQUAL(std::string_view("adobe:ns:meta/"), + aWalker.namespaceHref()); + CPPUNIT_ASSERT_EQUAL(std::string_view("xx"), aWalker.namespacePrefix()); + } + aWalker.next(); + } + aWalker.parent(); } aWalker.next(); } diff --git a/tools/qa/data/test.xml b/tools/qa/data/test.xml index c2736e8bb6ac..53944f767d73 100644 --- a/tools/qa/data/test.xml +++ b/tools/qa/data/test.xml @@ -9,5 +9,6 @@ <child number="3"> </child> <xx:with-namespace xmlns:xx="adobe:ns:meta/"> + <xx:namespace-child /> </xx:with-namespace> </root> diff --git a/tools/source/generic/color.cxx b/tools/source/generic/color.cxx index 0834b0946722..3a43c95d948b 100644 --- a/tools/source/generic/color.cxx +++ b/tools/source/generic/color.cxx @@ -28,6 +28,7 @@ #include <tools/helpers.hxx> #include <tools/long.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <basegfx/color/bcolortools.hxx> #include <basegfx/numeric/ftools.hxx> @@ -295,4 +296,24 @@ void Color::ApplyLumModOff(sal_Int16 nMod, sal_Int16 nOff) B = sal_uInt8(std::lround(aBColor.getBlue() * 255.0)); } +namespace color +{ +bool createFromString(OString const& rString, Color& rColor) +{ + if (rString.getLength() != 7) + return false; + + const char aChar(rString[0]); + + if (aChar != '#') + return false; + + rColor.SetRed(o3tl::convertToHex<sal_Int32>(rString[1], rString[2])); + rColor.SetGreen(o3tl::convertToHex<sal_Int32>(rString[3], rString[4])); + rColor.SetBlue(o3tl::convertToHex<sal_Int32>(rString[5], rString[6])); + + return true; +} +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/translations b/translations -Subproject c0a323a8e6bf862e47a6f93909ddef6aaaef35d +Subproject 8125bff43289e85b09abcc18dea4a61ed956579 diff --git a/unoidl/source/unoidlprovider.cxx b/unoidl/source/unoidlprovider.cxx index 9b5dd2b28de5..a43913c29a61 100644 --- a/unoidl/source/unoidlprovider.cxx +++ b/unoidl/source/unoidlprovider.cxx @@ -534,10 +534,6 @@ sal_uInt32 findInMap( return off; } -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 -extern "C" void __coverity_tainted_data_sanitize__(void *); -#endif - std::vector< OUString > readAnnotations( bool annotated, rtl::Reference< MappedFile > const & file, sal_uInt32 offset, sal_uInt32 * newOffset = nullptr) @@ -545,9 +541,6 @@ std::vector< OUString > readAnnotations( std::vector< OUString > ans; if (annotated) { sal_uInt32 n = file->read32(offset); -#if defined(__COVERITY__) && __COVERITY_MAJOR__ <= 2023 - __coverity_tainted_data_sanitize__(&n); -#endif offset += 4; for (sal_uInt32 i = 0; i != n; ++i) { ans.push_back(file->readIdxString(&offset)); diff --git a/unotools/source/config/defaultoptions.cxx b/unotools/source/config/defaultoptions.cxx index 127cc685801d..9d868461d3f1 100644 --- a/unotools/source/config/defaultoptions.cxx +++ b/unotools/source/config/defaultoptions.cxx @@ -93,6 +93,8 @@ OUString GetDefaultPath( SvtPathOptions::Paths nId ) aRet = aPathOpt.SubstituteVariable(officecfg::Office::Common::Path::Default::Work::get()); break; case SvtPathOptions::Paths::Classification: aRet = aPathOpt.SubstituteVariable(officecfg::Office::Common::Path::Default::Classification::get()); break; + case SvtPathOptions::Paths::DocumentTheme: + aRet = aPathOpt.SubstituteVariable(officecfg::Office::Common::Path::Default::DocumentTheme::get()); break; default: assert(false); } diff --git a/unotools/source/config/pathoptions.cxx b/unotools/source/config/pathoptions.cxx index 5447056f8457..f88894d51690 100644 --- a/unotools/source/config/pathoptions.cxx +++ b/unotools/source/config/pathoptions.cxx @@ -109,6 +109,7 @@ class SvtPathOptions_Impl const OUString& GetFingerprintPath() { return GetPath( SvtPathOptions::Paths::Fingerprint ); } const OUString& GetNumbertextPath() { return GetPath( SvtPathOptions::Paths::NumberText ); } const OUString& GetClassificationPath() { return GetPath( SvtPathOptions::Paths::Classification ); } + const OUString& GetDocumentThemePath() { return GetPath( SvtPathOptions::Paths::DocumentTheme ); } // set the paths void SetPath( SvtPathOptions::Paths, const OUString& rNewPath ); @@ -170,7 +171,8 @@ constexpr PropertyStruct aPropNames[] = { u"UIConfig"_ustr, SvtPathOptions::Paths::UIConfig }, { u"Fingerprint"_ustr, SvtPathOptions::Paths::Fingerprint }, { u"Numbertext"_ustr, SvtPathOptions::Paths::NumberText }, - { u"Classification"_ustr, SvtPathOptions::Paths::Classification } + { u"Classification"_ustr, SvtPathOptions::Paths::Classification }, + { u"DocumentTheme"_ustr, SvtPathOptions::Paths::DocumentTheme }, }; // Supported variables by the old SvtPathOptions implementation @@ -568,6 +570,11 @@ const OUString& SvtPathOptions::GetClassificationPath() const return pImpl->GetClassificationPath(); } +const OUString& SvtPathOptions::GetDocumentThemePath() const +{ + return pImpl->GetDocumentThemePath(); +} + void SvtPathOptions::SetAutoTextPath( const OUString& rPath ) { pImpl->SetAutoTextPath( rPath ); @@ -675,6 +682,7 @@ bool SvtPathOptions::SearchFile( OUString& rIniFile, SvtPathOptions::Paths ePath case SvtPathOptions::Paths::Fingerprint: aPath = GetFingerprintPath(); break; case SvtPathOptions::Paths::NumberText: aPath = GetNumbertextPath(); break; case SvtPathOptions::Paths::Classification: aPath = GetClassificationPath(); break; + case SvtPathOptions::Paths::DocumentTheme: aPath = GetDocumentThemePath(); break; // coverity[dead_error_begin] - following conditions exist to avoid compiler warning case SvtPathOptions::Paths::UserConfig: case SvtPathOptions::Paths::LAST: diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx index de8809c404fc..b884e87c931c 100644 --- a/uui/source/iahndl.cxx +++ b/uui/source/iahndl.cxx @@ -158,7 +158,7 @@ UUIInteractionHelper::handleRequest( { // we are not in the main thread, let it handle that stuff HandleData aHD(rRequest); - Link<void*,void> aLink(&aHD,handlerequest); + Link<void*,void> aLink = LINK_NONMEMBER(&aHD,handlerequest); Application::PostUserEvent(aLink,this); comphelper::SolarMutex& rSolarMutex = Application::GetSolarMutex(); sal_uInt32 nLockCount = (rSolarMutex.IsCurrentThread()) ? rSolarMutex.release(true) : 0; @@ -209,7 +209,7 @@ UUIInteractionHelper::getStringFromRequest( { // we are not in the main thread, let it handle that stuff HandleData aHD(rRequest); - Link<void*,void> aLink(&aHD,getstringfromrequest); + Link<void*,void> aLink = LINK_NONMEMBER(&aHD,getstringfromrequest); Application::PostUserEvent(aLink,this); comphelper::SolarMutex& rSolarMutex = Application::GetSolarMutex(); sal_uInt32 nLockCount = (rSolarMutex.IsCurrentThread()) ? rSolarMutex.release(true) : 0; diff --git a/vcl/CppunitTest_vcl_app_test.mk b/vcl/CppunitTest_vcl_app_test.mk index 3749a7f29ca5..6545babe40fb 100644 --- a/vcl/CppunitTest_vcl_app_test.mk +++ b/vcl/CppunitTest_vcl_app_test.mk @@ -34,10 +34,7 @@ $(eval $(call gb_CppunitTest_use_sdk_api,vcl_app_test)) $(eval $(call gb_CppunitTest_use_ure,vcl_app_test)) $(eval $(call gb_CppunitTest_use_vcl,vcl_app_test)) -$(eval $(call gb_CppunitTest_use_components,vcl_app_test,\ - configmgr/source/configmgr \ - i18npool/util/i18npool \ -)) +$(eval $(call gb_CppunitTest_use_rdb,vcl_app_test,services)) $(eval $(call gb_CppunitTest_use_configuration,vcl_app_test)) diff --git a/vcl/CustomTarget_qt5_moc.mk b/vcl/CustomTarget_qt5_moc.mk index b01d55097987..8dd45bc52e24 100644 --- a/vcl/CustomTarget_qt5_moc.mk +++ b/vcl/CustomTarget_qt5_moc.mk @@ -16,6 +16,7 @@ $(call gb_CustomTarget_get_target,vcl/qt5) : \ $(gb_CustomTarget_workdir)/vcl/qt5/QtFilePicker.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtFrame.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstance.moc \ + $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceBox.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceCheckButton.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceComboBox.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceContainer.moc \ diff --git a/vcl/CustomTarget_qt6_moc.mk b/vcl/CustomTarget_qt6_moc.mk index 2646f8902677..b492cecf95eb 100644 --- a/vcl/CustomTarget_qt6_moc.mk +++ b/vcl/CustomTarget_qt6_moc.mk @@ -16,6 +16,7 @@ $(call gb_CustomTarget_get_target,vcl/qt6) : \ $(gb_CustomTarget_workdir)/vcl/qt6/QtFilePicker.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtFrame.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstance.moc \ + $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceBox.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceCheckButton.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceComboBox.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceContainer.moc \ diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index c8e797dfd270..b9fa3e21c996 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -105,13 +105,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/accessibility/AccessibleBrowseBoxTable \ vcl/source/accessibility/AccessibleBrowseBoxTableBase \ vcl/source/accessibility/AccessibleBrowseBoxTableCell \ - vcl/source/accessibility/AccessibleGridControl \ - vcl/source/accessibility/AccessibleGridControlBase \ - vcl/source/accessibility/AccessibleGridControlHeader \ - vcl/source/accessibility/AccessibleGridControlHeaderCell \ - vcl/source/accessibility/AccessibleGridControlTable \ - vcl/source/accessibility/AccessibleGridControlTableBase \ - vcl/source/accessibility/AccessibleGridControlTableCell \ vcl/source/accessibility/AccessibleTextAttributeHelper \ vcl/source/accessibility/acc_factory \ vcl/source/accessibility/accessiblebrowseboxcell \ @@ -478,6 +471,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/app/timer \ vcl/source/app/unohelp2 \ vcl/source/app/htmltransferable \ + vcl/source/app/UserResourceScanner \ vcl/source/app/unohelp \ vcl/source/app/vclevent \ vcl/source/app/watchdog \ @@ -770,7 +764,6 @@ $(eval $(call gb_Library_add_objcxxobjects,vcl,\ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/ios/iosinst \ vcl/ios/dummies \ - vcl/ios/clipboard \ vcl/ios/salios \ vcl/ios/iOSTransferable \ vcl/ios/DataFlavorMapping \ diff --git a/vcl/Library_vclplug_qt5.mk b/vcl/Library_vclplug_qt5.mk index bacca3f1bfb3..9b70d16ca1b2 100644 --- a/vcl/Library_vclplug_qt5.mk +++ b/vcl/Library_vclplug_qt5.mk @@ -99,6 +99,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt5,\ vcl/qt5/QtHyperlinkLabel \ vcl/qt5/QtInstance \ vcl/qt5/QtInstance_Print \ + vcl/qt5/QtInstanceBox \ vcl/qt5/QtInstanceBuilder \ vcl/qt5/QtInstanceButton \ vcl/qt5/QtInstanceCheckButton \ diff --git a/vcl/Library_vclplug_qt6.mk b/vcl/Library_vclplug_qt6.mk index 1945687c4b4b..21d7134b6a48 100644 --- a/vcl/Library_vclplug_qt6.mk +++ b/vcl/Library_vclplug_qt6.mk @@ -98,6 +98,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\ vcl/qt6/QtHyperlinkLabel \ vcl/qt6/QtInstance \ vcl/qt6/QtInstance_Print \ + vcl/qt6/QtInstanceBox \ vcl/qt6/QtInstanceBuilder \ vcl/qt6/QtInstanceButton \ vcl/qt6/QtInstanceCheckButton \ diff --git a/vcl/headless/BitmapHelper.cxx b/vcl/headless/BitmapHelper.cxx index 0f21780144e8..cfa9f1556eeb 100644 --- a/vcl/headless/BitmapHelper.cxx +++ b/vcl/headless/BitmapHelper.cxx @@ -40,7 +40,8 @@ BitmapHelper::BitmapHelper(const SalBitmap& rSourceBitmap, const bool bForceARGB const SalTwoRect aTwoRect = { 0, 0, pSrc->mnWidth, pSrc->mnHeight, 0, 0, pSrc->mnWidth, pSrc->mnHeight }; std::optional<BitmapBuffer> pTmp - = (pSrc->meFormat == SVP_24BIT_FORMAT) + = (pSrc->meFormat == SVP_24BIT_FORMAT + && pSrc->meDirection == ScanlineDirection::TopDown) ? FastConvert24BitRgbTo32BitCairo(pSrc) : StretchAndConvert(*pSrc, aTwoRect, SVP_CAIRO_FORMAT); aTmpBmp.Create(std::move(pTmp)); diff --git a/vcl/headless/CairoCommon.cxx b/vcl/headless/CairoCommon.cxx index bf12617ba23e..c92e78e558c7 100644 --- a/vcl/headless/CairoCommon.cxx +++ b/vcl/headless/CairoCommon.cxx @@ -1979,10 +1979,10 @@ std::optional<BitmapBuffer> FastConvert24BitRgbTo32BitCairo(const BitmapBuffer* const tools::Long nHeight = pSrc->mnHeight; std::optional<BitmapBuffer> pDst(std::in_place); pDst->meFormat = ScanlineFormat::N32BitTcArgb; + pDst->meDirection = ScanlineDirection::TopDown; pDst->mnWidth = nWidth; pDst->mnHeight = nHeight; pDst->mnBitCount = 32; - pDst->maColorMask = pSrc->maColorMask; pDst->maPalette = pSrc->maPalette; tools::Long nScanlineBase; diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx index 1fcf6f1e5c58..23a0d094d009 100644 --- a/vcl/headless/svpbmp.cxx +++ b/vcl/headless/svpbmp.cxx @@ -70,6 +70,7 @@ static std::optional<BitmapBuffer> ImplCreateDIB( if (ePixelFormat <= vcl::PixelFormat::N8_BPP) nColors = vcl::numberOfColors(ePixelFormat); + pDIB->meDirection = ScanlineDirection::TopDown; pDIB->mnWidth = rSize.Width(); pDIB->mnHeight = rSize.Height(); tools::Long nScanlineBase; diff --git a/vcl/inc/IconThemeScanner.hxx b/vcl/inc/IconThemeScanner.hxx index 60841eeddaab..85a7d8543ba4 100644 --- a/vcl/inc/IconThemeScanner.hxx +++ b/vcl/inc/IconThemeScanner.hxx @@ -13,6 +13,7 @@ #include <rtl/ustring.hxx> #include <vcl/IconThemeInfo.hxx> +#include <vcl/UserResourceScanner.hxx> #include <memory> #include <vector> @@ -24,16 +25,10 @@ namespace vcl { /** This class scans a folder for icon themes and provides the results. */ -class VCL_DLLPUBLIC IconThemeScanner +class VCL_DLLPUBLIC IconThemeScanner : public UserResourceScanner { public: - /** Provide a semicolon-separated list of paths to search for IconThemes. - * - * There are several cases when scan will fail: - * - The directory does not exist - * - There are no files which match the pattern images_xxx.zip - */ - explicit IconThemeScanner(std::u16string_view paths); + IconThemeScanner(); /** This method will return the standard path where icon themes are located. */ @@ -53,19 +48,11 @@ public: bool IconThemeIsInstalled(const OUString& themeId) const; private: - IconThemeScanner(); - - /** Adds the provided icon theme by path. - */ - bool AddIconThemeByPath(const OUString& path); - - /** Scans the provided directory for icon themes. - * The returned strings will contain the URLs to the icon themes. - */ - static std::vector<OUString> ReadIconThemesFromPath(const OUString& dir); + /** Adds the provided icon theme by path. */ + bool addResource(const OUString& path) override; /** Check whether a single file is valid */ - static bool FileIsValidIconTheme(const OUString&); + bool isValidResource(const OUString& rFilename) override; std::vector<IconThemeInfo> mFoundIconThemes; diff --git a/vcl/inc/WidgetDrawInterface.hxx b/vcl/inc/WidgetDrawInterface.hxx index 78d5d7625491..8e51f13819bb 100644 --- a/vcl/inc/WidgetDrawInterface.hxx +++ b/vcl/inc/WidgetDrawInterface.hxx @@ -8,8 +8,7 @@ * */ -#ifndef INCLUDED_VCL_INC_WIDGETDRAWINTERFACE_HXX -#define INCLUDED_VCL_INC_WIDGETDRAWINTERFACE_HXX +#pragma once #include <vcl/dllapi.h> #include <vcl/salnativewidgets.hxx> @@ -121,6 +120,4 @@ bool WidgetDrawInterface::getNativeControlRegion(ControlType, ControlPart, const bool WidgetDrawInterface::updateSettings(AllSettings&) { return false; } } -#endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx index f75aa59c2b16..43d03d42a906 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx @@ -291,9 +291,6 @@ protected: css::uno::Reference< css::awt::XWindow > m_xFocusWindow; private: - ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; } - void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; } - /** Localized name. */ OUString maName; /** Localized description text. */ diff --git a/vcl/inc/accessibility/AccessibleGridControl.hxx b/vcl/inc/accessibility/AccessibleGridControl.hxx deleted file mode 100644 index 399a6b453bb5..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControl.hxx +++ /dev/null @@ -1,223 +0,0 @@ -/* -*- 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 . - */ - -#pragma once - -#include <accessibility/AccessibleGridControlBase.hxx> -#include <accessibility/AccessibleGridControlTable.hxx> -#include <cppuhelper/weakref.hxx> -#include <rtl/ref.hxx> -#include <vcl/accessibletable.hxx> - -namespace accessibility { - - class AccessibleGridControlHeader; - - -/** This class represents the complete accessible Grid Control object. */ -class AccessibleGridControl final : public AccessibleGridControlBase -{ - friend class AccessibleGridControlAccess; - - AccessibleGridControl( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator, - ::vcl::table::IAccessibleTable& _rTable - ); - - virtual ~AccessibleGridControl() override = default; - - /** Cleans up members. */ - using AccessibleGridControlBase::disposing; - virtual void SAL_CALL disposing() override; - - // XAccessibleContext ----------------------------------------------------- - - /** @return The count of visible children. */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return The XAccessible interface of the specified child. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return The role of this object (a table). */ - virtual sal_Int16 SAL_CALL getAccessibleRole() override; - - // XAccessibleComponent --------------------------------------------------- - - /** @return - The accessible child rendered under the given point. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - /** Grabs the focus to the Grid Control. */ - virtual void SAL_CALL grabFocus() override; - - // XServiceInfo ----------------------------------------------------------- - - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; - -public: - // helper functions - - /** commitCellEvent commit the event at all listeners of the table - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - void commitCellEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue); - - /** commitTableEvent commit the event at all listeners of the table - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - void commitTableEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue); - -private: - // internal virtual methods ----------------------------------------------- - - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) in screen coordinates. */ - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - // internal helper methods ------------------------------------------------ - - /** This method creates (once) and returns the accessible data table child. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the data table. */ - css::uno::Reference< css::accessibility::XAccessible > implGetTable(); - - /** This method creates (once) and returns the specified header bar. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the header bar. */ - css::uno::Reference< css::accessibility::XAccessible > - implGetHeaderBar( ::vcl::table::AccessibleTableControlObjType eObjType ); - - /** This method returns one of the children that are always present: - Data table, row and column header bar or corner control. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the specified child. */ - css::uno::Reference< css::accessibility::XAccessible > - implGetFixedChild( sal_Int64 nChildIndex ); - - /** This method creates and returns an accessible table. - @return An AccessibleGridControlTable. */ - rtl::Reference<AccessibleGridControlTable> createAccessibleTable(); - - /// the css::accessibility::XAccessible which created the AccessibleGridControl - css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator; - - /** The data table child. */ - rtl::Reference<AccessibleGridControlTable> m_xTable; - - /** The header bar for rows. */ - rtl::Reference<AccessibleGridControlHeader> m_xRowHeaderBar; - - /** The header bar for columns (first row of the table). */ - rtl::Reference<AccessibleGridControlHeader> m_xColumnHeaderBar; - - /** @return The count of visible children. */ - inline sal_Int64 implGetAccessibleChildCount(); -}; - - -/** the XAccessible which creates/returns an AccessibleGridControl - - <p>The instance holds its XAccessibleContext with a hard reference, while - the context holds this instance weak.</p> -*/ - -class AccessibleGridControlAccess final : public ::vcl::table::IAccessibleTableControl -{ -private: - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - ::vcl::table::IAccessibleTable * m_pTable; - rtl::Reference<AccessibleGridControl> m_xContext; - -public: - AccessibleGridControlAccess( - css::uno::Reference< css::accessibility::XAccessible > _xParent, - ::vcl::table::IAccessibleTable& _rTable - ); - - /// returns the AccessibleContext belonging to this Accessible - AccessibleGridControl* getContext() { return m_xContext.get(); } - -private: - virtual ~AccessibleGridControlAccess() override; - - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - SAL_CALL getAccessibleContext() override; - - // IAccessibleTable - void DisposeAccessImpl() override; - virtual bool isAlive() const override - { - return m_xContext.is() && m_xContext->isAlive(); - } - virtual void commitCellEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitCellEvent( nEventId, rNewValue, rOldValue ); - } - virtual void commitTableEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitTableEvent( nEventId, rNewValue, rOldValue ); - } - virtual void commitEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitEvent( nEventId, rNewValue, css::uno::Any() ); - } - -private: - AccessibleGridControlAccess( const AccessibleGridControlAccess& ) = delete; - AccessibleGridControlAccess& operator=( const AccessibleGridControlAccess& ) = delete; -}; - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessiblelistboxentry.hxx b/vcl/inc/accessibility/accessiblelistboxentry.hxx index 050dc948d9c4..87bab1a0cdb7 100644 --- a/vcl/inc/accessibility/accessiblelistboxentry.hxx +++ b/vcl/inc/accessibility/accessiblelistboxentry.hxx @@ -54,10 +54,8 @@ namespace accessibility class AccessibleListBox; // class AccessibleListBoxEntry ------------------------------------------ - typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible - , css::accessibility::XAccessibleContext - , css::accessibility::XAccessibleComponent - , css::accessibility::XAccessibleEventBroadcaster + typedef cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper + , css::accessibility::XAccessible , css::accessibility::XAccessibleAction , css::accessibility::XAccessibleSelection , css::accessibility::XAccessibleText @@ -65,8 +63,7 @@ namespace accessibility , css::lang::XServiceInfo > AccessibleListBoxEntry_BASE; /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ - class AccessibleListBoxEntry final : public ::cppu::BaseMutex - ,public AccessibleListBoxEntry_BASE + class AccessibleListBoxEntry final : public AccessibleListBoxEntry_BASE ,public ::comphelper::OCommonAccessibleText { friend class AccessibleListBox; @@ -77,32 +74,17 @@ namespace accessibility std::deque< sal_Int32 > m_aEntryPath; SvTreeListEntry* m_pSvLBoxEntry; // Needed for a11y focused item... - - /// client id in the AccessibleEventNotifier queue - sal_uInt32 m_nClientId; - unotools::WeakReference<AccessibleListBox> m_wListBox; tools::Rectangle GetBoundingBox_Impl() const; - tools::Rectangle GetBoundingBoxOnScreen_Impl() const; bool IsAlive_Impl() const; bool IsShowing_Impl() const; - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBox(); - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBoxOnScreen(); /// @throws css::lang::IndexOutOfBoundsException void CheckActionIndex(sal_Int32 nIndex); /// @throws css::lang::DisposedException void EnsureIsAlive() const; - void NotifyAccessibleEvent( sal_Int16 _nEventId, const css::uno::Any& _aOldValue, const css::uno::Any& _aNewValue ); - - virtual ~AccessibleListBoxEntry() override; - /** this function is called upon disposing the component */ virtual void SAL_CALL disposing() override; @@ -129,11 +111,10 @@ namespace accessibility SvTreeListEntry* GetSvLBoxEntry() const { return m_pSvLBoxEntry; } + protected: + virtual css::awt::Rectangle implGetBounds() override; private: - // XTypeProvider - virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - // XServiceInfo virtual OUString SAL_CALL getImplementationName() override; virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; @@ -155,12 +136,7 @@ namespace accessibility virtual css::lang::Locale SAL_CALL getLocale( ) override; // XAccessibleComponent - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override; virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; - virtual css::awt::Rectangle SAL_CALL getBounds( ) override; - virtual css::awt::Point SAL_CALL getLocation( ) override; - virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; - virtual css::awt::Size SAL_CALL getSize( ) override; virtual void SAL_CALL grabFocus( ) override; virtual sal_Int32 SAL_CALL getForeground( ) override; virtual sal_Int32 SAL_CALL getBackground( ) override; @@ -185,10 +161,6 @@ namespace accessibility virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - // XAccessibleEventBroadcaster - virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - // XAccessibleAction virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; diff --git a/vcl/inc/osx/salframeview.h b/vcl/inc/osx/salframeview.h index 287ccaedbc06..52459ea99cde 100644 --- a/vcl/inc/osx/salframeview.h +++ b/vcl/inc/osx/salframeview.h @@ -112,6 +112,9 @@ enum class SalEvent; NSAttributedString* mpLastMarkedText; BOOL mbTextInputWantsNonRepeatKeyDown; NSTrackingArea* mpLastTrackingArea; + + NSTimeInterval mfLastScrollEventTime; + NSEventModifierFlags mnLastScrollModifierFlags; } +(void)unsetMouseFrame: (AquaSalFrame*)pFrame; -(id)initWithSalFrame: (AquaSalFrame*)pFrame; diff --git a/vcl/inc/pdf/COSWriter.hxx b/vcl/inc/pdf/COSWriter.hxx index 627aa30b780d..18b8ccdeedcb 100644 --- a/vcl/inc/pdf/COSWriter.hxx +++ b/vcl/inc/pdf/COSWriter.hxx @@ -117,6 +117,12 @@ public: mrBuffer.append(")"); } + void writeKeyAndLiteral(std::string_view key, std::string_view value) + { + mrBuffer.append(key); + writeLiteral(value); + } + void writeLiteralEncrypt(std::u16string_view value, sal_Int32 nObject, rtl_TextEncoding nEncoding = RTL_TEXTENCODING_ASCII_US); diff --git a/vcl/inc/pdf/XmpMetadata.hxx b/vcl/inc/pdf/XmpMetadata.hxx index 452ad7f85267..a7cf5a223ff8 100644 --- a/vcl/inc/pdf/XmpMetadata.hxx +++ b/vcl/inc/pdf/XmpMetadata.hxx @@ -46,7 +46,7 @@ public: OString m_sCreateDate; sal_Int32 mnPDF_A = 0; - bool mbPDF_UA = false; + sal_Int32 mnPDF_UA = 0; public: XmpMetadata(); diff --git a/vcl/inc/pdf/pdfwriter_impl.hxx b/vcl/inc/pdf/pdfwriter_impl.hxx index 2d931ba729f8..1500ecba0e1d 100644 --- a/vcl/inc/pdf/pdfwriter_impl.hxx +++ b/vcl/inc/pdf/pdfwriter_impl.hxx @@ -835,6 +835,8 @@ private: ::comphelper::Hash m_DocDigest; + std::unordered_map<std::string_view, sal_Int32> m_aNamespacesMap; + // reduce repeated allocations OStringBuffer updateGraphicsStateLine{256}; OStringBuffer drawBitmapLine{80}; @@ -890,7 +892,10 @@ private: /* writes an XObject of type image, may create a second for the mask */ - bool writeBitmapObject( const BitmapEmit& rObject, bool bMask = false ); + bool writeBitmapObject( const BitmapEmit& rObject ); + /* writes an XObject of type mask image + */ + bool writeBitmapMaskObject( const BitmapEmit& rObject ); void writeJPG( const JPGEmit& rEmit ); /// Writes the form XObject proxy for the image. @@ -989,6 +994,8 @@ private: //check if internal dummy container are needed in the structure elements void addInternalStructureContainer( PDFStructureElement& rEle ); //<---i94258 + // writes namespaces + void emitNamespaces(); // writes document structure sal_Int32 emitStructure( PDFStructureElement& rEle ); // writes structure parent tree diff --git a/vcl/inc/qt5/QtBuilder.hxx b/vcl/inc/qt5/QtBuilder.hxx index bb5ba7ad6278..f5a33571fbd8 100644 --- a/vcl/inc/qt5/QtBuilder.hxx +++ b/vcl/inc/qt5/QtBuilder.hxx @@ -20,6 +20,7 @@ #include <QtWidgets/QMessageBox> #include <QtWidgets/QPushButton> #include <QtWidgets/QSlider> +#include <QtWidgets/QToolButton> #include <rtl/ustring.hxx> #include <unotools/resmgr.hxx> @@ -96,8 +97,10 @@ private: // remove pOldWidget from the widget hierarchy and set (child widget) pNewWidget in its place static void replaceWidget(QWidget* pOldWidget, QWidget* pNewWidget); static void setProperties(QObject* obj, stringmap& rProps); - void setButtonProperties(QPushButton& rButton, stringmap& rProps); + void setButtonProperties(QAbstractButton& rButton, stringmap& rProps); + static void setEntryProperties(QLineEdit& rLineEdit, stringmap& rProps); static void setLabelProperties(QLabel& rLabel, stringmap& rProps); + void setMenuButtonProperties(QToolButton& rButton, stringmap& rProps); void setScaleProperties(QSlider& rSlider, stringmap& rProps); void setSpinButtonProperties(QDoubleSpinBox& rSpinBox, stringmap& rProps); static QWidget* windowForObject(QObject* pObject); diff --git a/vcl/inc/qt5/QtInstanceBox.hxx b/vcl/inc/qt5/QtInstanceBox.hxx new file mode 100644 index 000000000000..68ac5f22807b --- /dev/null +++ b/vcl/inc/qt5/QtInstanceBox.hxx @@ -0,0 +1,25 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +#pragma once + +#include "QtInstanceContainer.hxx" + +class QtInstanceBox : public QtInstanceContainer, public virtual weld::Box +{ + Q_OBJECT + +public: + QtInstanceBox(QWidget* pWidget); + + virtual void reorder_child(weld::Widget* pWidget, int nPosition) override; + virtual void sort_native_button_order() override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/qt5/QtInstanceBuilder.hxx b/vcl/inc/qt5/QtInstanceBuilder.hxx index 340d332a86e0..8b1051a4a3f0 100644 --- a/vcl/inc/qt5/QtInstanceBuilder.hxx +++ b/vcl/inc/qt5/QtInstanceBuilder.hxx @@ -35,7 +35,7 @@ public: virtual std::unique_ptr<weld::Window> create_screenshot_window() override; virtual std::unique_ptr<weld::Widget> weld_widget(const OUString& rId) override; virtual std::unique_ptr<weld::Container> weld_container(const OUString& rId) override; - virtual std::unique_ptr<weld::Box> weld_box(const OUString&) override; + virtual std::unique_ptr<weld::Box> weld_box(const OUString& rId) override; virtual std::unique_ptr<weld::Grid> weld_grid(const OUString& rId) override; virtual std::unique_ptr<weld::Paned> weld_paned(const OUString&) override; virtual std::unique_ptr<weld::Frame> weld_frame(const OUString& rId) override; diff --git a/vcl/inc/qt5/QtInstanceMenuButton.hxx b/vcl/inc/qt5/QtInstanceMenuButton.hxx index 5e472b24d183..52b8af9c1839 100644 --- a/vcl/inc/qt5/QtInstanceMenuButton.hxx +++ b/vcl/inc/qt5/QtInstanceMenuButton.hxx @@ -18,6 +18,7 @@ class QtInstanceMenuButton : public QtInstanceToggleButton, public virtual weld: Q_OBJECT QToolButton* m_pToolButton; + QWidget* m_pPopover; public: QtInstanceMenuButton(QToolButton* pButton); @@ -26,7 +27,7 @@ public: const OUString* pIconName, VirtualDevice* pImageSurface, TriState eCheckRadioFalse) override; - virtual void insert_separator(int pos, const OUString& rId) override; + virtual void insert_separator(int nPos, const OUString& rId) override; virtual void remove_item(const OUString& rId) override; virtual void clear() override; virtual void set_item_sensitive(const OUString& rIdent, bool bSensitive) override; @@ -40,8 +41,10 @@ public: private: QMenu& getMenu() const; QAction* getAction(const OUString& rIdent) const; + void insertAction(QAction* pAction, int nPos); private Q_SLOTS: + void handleButtonClicked(); void handleMenuItemTriggered(QAction* pAction); }; diff --git a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx index 5cebe1a597cd..16ffe5b4c727 100644 --- a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx +++ b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx @@ -27,8 +27,8 @@ public: virtual css::uno::Reference<css::awt::XWindow> CreateChildFrame() override; virtual void child_grab_focus() override; - virtual void hadjustment_configure(int value, int lower, int upper, int step_increment, - int page_increment, int page_size) override; + virtual void hadjustment_configure(int nValue, int nLower, int nUpper, int nStepIncrement, + int nPageIncrement, int nPageSize) override; virtual int hadjustment_get_value() const override; virtual void hadjustment_set_value(int nValue) override; virtual int hadjustment_get_upper() const override; @@ -40,8 +40,8 @@ public: virtual void set_hpolicy(VclPolicyType eHPolicy) override; virtual VclPolicyType get_hpolicy() const override; - virtual void vadjustment_configure(int value, int lower, int upper, int step_increment, - int page_increment, int page_size) override; + virtual void vadjustment_configure(int nValue, int nLower, int nUpper, int nStepIncrement, + int nPageIncrement, int nPageSize) override; virtual int vadjustment_get_value() const override; virtual void vadjustment_set_value(int nValue) override; virtual int vadjustment_get_upper() const override; diff --git a/vcl/inc/qt5/QtInstanceToggleButton.hxx b/vcl/inc/qt5/QtInstanceToggleButton.hxx index 1f7566c4cd5f..c7da7454f4d6 100644 --- a/vcl/inc/qt5/QtInstanceToggleButton.hxx +++ b/vcl/inc/qt5/QtInstanceToggleButton.hxx @@ -25,6 +25,9 @@ public: virtual void set_inconsistent(bool bInconsistent) override; virtual bool get_inconsistent() const override; + +private Q_SLOTS: + void signalToggled(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/qt5/QtInstanceWidget.hxx b/vcl/inc/qt5/QtInstanceWidget.hxx index d20812f998c4..d2bc8823ecd4 100644 --- a/vcl/inc/qt5/QtInstanceWidget.hxx +++ b/vcl/inc/qt5/QtInstanceWidget.hxx @@ -168,6 +168,7 @@ public: virtual void set_highlight_background() override; + void setFontColor(const Color& rFontColor); virtual void set_background(const Color& rBackColor) override; virtual void draw(OutputDevice&, const Point&, const Size&) override; diff --git a/vcl/inc/qt5/QtMenu.hxx b/vcl/inc/qt5/QtMenu.hxx index 8042c67720ba..bbabb59e4ebd 100644 --- a/vcl/inc/qt5/QtMenu.hxx +++ b/vcl/inc/qt5/QtMenu.hxx @@ -73,6 +73,8 @@ private: public: QtMenu(bool bMenuBar); + bool eventFilter(QObject* pObject, QEvent* pEvent) override; + virtual bool VisibleMenuBar() override; // must return TRUE to actually DISPLAY native menu bars virtual void InsertItem(SalMenuItem* pSalMenuItem, unsigned nPos) override; @@ -89,6 +91,8 @@ public: virtual void ShowItem(unsigned nPos, bool bShow) override; virtual void SetItemText(unsigned nPos, SalMenuItem* pSalMenuItem, const OUString& rText) override; + + virtual void SetItemTooltip(SalMenuItem* pSalMenuItem, const OUString& rTooltip) override; virtual void SetItemImage(unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage) override; virtual void SetAccelerator(unsigned nPos, SalMenuItem* pSalMenuItem, diff --git a/vcl/inc/qt5/QtVirtualDevice.hxx b/vcl/inc/qt5/QtVirtualDevice.hxx index 0673c03268cf..f20b937d5488 100644 --- a/vcl/inc/qt5/QtVirtualDevice.hxx +++ b/vcl/inc/qt5/QtVirtualDevice.hxx @@ -45,8 +45,6 @@ public: virtual void ReleaseGraphics(SalGraphics* pGraphics) override; virtual bool SetSize(tools::Long nNewDX, tools::Long nNewDY) override; - virtual bool SetSizeUsingBuffer(tools::Long nNewDX, tools::Long nNewDY, - sal_uInt8* pBuffer) override; // SalGeometryProvider virtual tools::Long GetWidth() const override; diff --git a/vcl/inc/qt6/QtInstanceBox.hxx b/vcl/inc/qt6/QtInstanceBox.hxx new file mode 100644 index 000000000000..3917bce997e8 --- /dev/null +++ b/vcl/inc/qt6/QtInstanceBox.hxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 "../qt5/QtInstanceBox.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/salmenu.hxx b/vcl/inc/salmenu.hxx index 84939574d447..7ecd220209bb 100644 --- a/vcl/inc/salmenu.hxx +++ b/vcl/inc/salmenu.hxx @@ -71,6 +71,7 @@ public: virtual void CheckItem( unsigned nPos, bool bCheck ) = 0; virtual void EnableItem( unsigned nPos, bool bEnable ) = 0; virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const OUString& rText )= 0; + virtual void SetItemTooltip(SalMenuItem* /*pSalMenuItem*/, const OUString& /*rTooltip*/) {}; virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage ) = 0; virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) = 0; virtual void GetSystemMenuData(SystemMenuData& rData); diff --git a/vcl/inc/unx/saldisp.hxx b/vcl/inc/unx/saldisp.hxx index f14893617598..81bfc830780a 100644 --- a/vcl/inc/unx/saldisp.hxx +++ b/vcl/inc/unx/saldisp.hxx @@ -50,7 +50,6 @@ typedef unsigned long Pixel; class BitmapPalette; class SalFrame; -class ColorMask; namespace vcl_sal { class WMAdaptor; } diff --git a/vcl/inc/win/salbmp.h b/vcl/inc/win/salbmp.h index 2edf291342cc..89135570d661 100644 --- a/vcl/inc/win/salbmp.h +++ b/vcl/inc/win/salbmp.h @@ -67,7 +67,7 @@ public: public: - bool Create( HANDLE hBitmap ); + bool Create( HBITMAP hBitmap ); virtual bool Create( const Size& rSize, vcl::PixelFormat ePixelFormat, const BitmapPalette& rPal ) override; virtual bool Create( const SalBitmap& rSalBmpImpl ) override; virtual bool Create( const SalBitmap& rSalBmpImpl, SalGraphics* pGraphics ) override; diff --git a/vcl/ios/clipboard.cxx b/vcl/ios/clipboard.cxx deleted file mode 100644 index 109f744e87c8..000000000000 --- a/vcl/ios/clipboard.cxx +++ /dev/null @@ -1,257 +0,0 @@ -/* -*- Mode: ObjC; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * 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 "ios/iosinst.hxx" -#include "quartz/utils.h" - -#include "clipboard.hxx" - -#include "DataFlavorMapping.hxx" -#include "iOSTransferable.hxx" -#include <com/sun/star/datatransfer/MimeContentTypeFactory.hpp> -#include <com/sun/star/lang/IllegalArgumentException.hpp> -#include <comphelper/processfactory.hxx> -#include <cppuhelper/supportsservice.hxx> - -@implementation PasteboardChangedEventListener - -- (PasteboardChangedEventListener*)initWithiOSClipboard:(iOSClipboard*)pcb -{ - self = [super init]; - - if (self) - { - // Just to be safe, set clipboard to a nullptr to ignore any - // synchronous callbacks that might occur when adding the observer - piOSClipboard = nullptr; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(pasteboardChanged:) - name:UIPasteboardChangedNotification - object:[UIPasteboard generalPasteboard]]; - - // According to following, no UIPasteboardChangedNotification - // notifications are received when an app is not active. So, post the - // notification so that the LibreOffice vcl/ios code can handle any - // clipboard changes: - // https://stackoverflow.com/questions/4240087/receiving-uipasteboard-generalpasteboard-notification-while-in-the-background - // Note: UIApplicationDidBecomeActiveNotification is never sent when - // running in Mac Catalyst so listen for UISceneDidActivateNotification - // instead. - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(pasteboardChanged:) - name:UISceneDidActivateNotification - object:nil]; - - piOSClipboard = pcb; - } - - return self; -} - -- (void)pasteboardChanged:(NSNotification*)aNotification -{ - if (piOSClipboard) - piOSClipboard->contentsChanged(); -} - -- (void)disposing -{ - piOSClipboard = nullptr; - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -@end - -iOSClipboard::iOSClipboard() - : WeakComponentImplHelper<XSystemClipboard, XServiceInfo>(m_aMutex) -{ - auto xContext = comphelper::getProcessComponentContext(); - - mrXMimeCntFactory = css::datatransfer::MimeContentTypeFactory::create(xContext); - - mpDataFlavorMapper.reset(new DataFlavorMapper()); - - mnPasteboardChangeCount = 0; - mpPasteboardChangedEventListener = - [[PasteboardChangedEventListener alloc] initWithiOSClipboard:this]; -} - -iOSClipboard::~iOSClipboard() -{ - [mpPasteboardChangedEventListener disposing]; - [mpPasteboardChangedEventListener release]; -} - -css::uno::Reference<css::datatransfer::XTransferable> SAL_CALL iOSClipboard::getContents() -{ - osl::MutexGuard aGuard(m_aMutex); - - return css::uno::Reference<css::datatransfer::XTransferable>( - new iOSTransferable(mrXMimeCntFactory, mpDataFlavorMapper)); -} - -void SAL_CALL iOSClipboard::setContents( - const css::uno::Reference<css::datatransfer::XTransferable>& xTransferable, - const css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner>& /*xClipboardOwner*/) -{ - NSArray* types = xTransferable.is() ? mpDataFlavorMapper->flavorSequenceToTypesArray( - xTransferable->getTransferDataFlavors()) - : [NSArray array]; - - osl::ClearableMutexGuard aGuard(m_aMutex); - - NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithCapacity:1]; - NSArray* array = @[ dict ]; - - for (sal_uInt32 i = 0; i < [types count]; ++i) - { - DataProviderPtr_t dp = mpDataFlavorMapper->getDataProvider(types[i], xTransferable); - - if (dp.get() != nullptr) - { - NSData* pBoardData = (NSData*)dp->getSystemData(); - dict[types[i]] = pBoardData; - } - } - SAL_INFO("vcl.ios.clipboard", "Setting pasteboard items: " << NSDictionaryKeysToOUString(dict)); - [[UIPasteboard generalPasteboard] setItems:array options:@{}]; - - // We don't keep a copy of the clipboard contents around in-process, so fire the lost clipboard - // ownership event right away. - // fireLostClipboardOwnershipEvent(xClipboardOwner, xTransferable); - - // fireClipboardChangedEvent(xTransferable); -} - -OUString SAL_CALL iOSClipboard::getName() { return OUString(); } - -sal_Int8 SAL_CALL iOSClipboard::getRenderingCapabilities() { return 0; } - -void SAL_CALL iOSClipboard::addClipboardListener( - const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener) -{ - osl::MutexGuard aGuard(m_aMutex); - - if (!listener.is()) - throw css::lang::IllegalArgumentException( - "empty reference", static_cast<css::datatransfer::clipboard::XClipboardEx*>(this), 1); - - mClipboardListeners.push_back(listener); -} - -void SAL_CALL iOSClipboard::removeClipboardListener( - const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener) -{ - osl::MutexGuard aGuard(m_aMutex); - - if (!listener.is()) - throw css::lang::IllegalArgumentException( - "empty reference", static_cast<css::datatransfer::clipboard::XClipboardEx*>(this), 1); - - mClipboardListeners.remove(listener); -} - -void iOSClipboard::fireClipboardChangedEvent( - css::uno::Reference<css::datatransfer::XTransferable> xNewContents) -{ - osl::ClearableMutexGuard aGuard(m_aMutex); - - std::list<css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>> listeners( - mClipboardListeners); - css::datatransfer::clipboard::ClipboardEvent aEvent; - - if (!listeners.empty()) - { - aEvent = css::datatransfer::clipboard::ClipboardEvent(getXWeak(), xNewContents); - } - - aGuard.clear(); - - while (!listeners.empty()) - { - if (listeners.front().is()) - { - try - { - listeners.front()->changedContents(aEvent); - } - catch (const css::uno::RuntimeException&) - { - } - } - listeners.pop_front(); - } -} - -void iOSClipboard::fireLostClipboardOwnershipEvent( - css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner> const& oldOwner, - css::uno::Reference<css::datatransfer::XTransferable> const& oldContent) -{ - assert(oldOwner.is()); - - try - { - oldOwner->lostOwnership(static_cast<css::datatransfer::clipboard::XClipboardEx*>(this), - oldContent); - } - catch (const css::uno::RuntimeException&) - { - } -} - -OUString SAL_CALL iOSClipboard::getImplementationName() -{ - return OUString("com.sun.star.datatransfer.clipboard.iOSClipboard"); -} - -sal_Bool SAL_CALL iOSClipboard::supportsService(const OUString& ServiceName) -{ - return cppu::supportsService(this, ServiceName); -} - -css::uno::Sequence<OUString> SAL_CALL iOSClipboard::getSupportedServiceNames() -{ - return { OUString("com.sun.star.datatransfer.clipboard.SystemClipboard") }; -} - -void iOSClipboard::contentsChanged() -{ - NSInteger nPasteboardChangeCount = [[UIPasteboard generalPasteboard] changeCount]; - if (mnPasteboardChangeCount != nPasteboardChangeCount) - { - // cool#5839 fire a clipboard changed event in the iOS app - // A clipboard changed event needs to be fired whenever the - // native general pasteboard changes. Otherwise, if the clipboard - // is empty when a document is opened, the Paste and Paste Special - // menu items and toolbar buttons will be disabled and will never - // be enabled even after something has been copied to the general - // pasteboard. - mnPasteboardChangeCount = nPasteboardChangeCount; - fireClipboardChangedEvent(getContents()); - } -} - -css::uno::Reference<css::uno::XInterface> -IosSalInstance::CreateClipboard(const css::uno::Sequence<css::uno::Any>&) -{ - return getXWeak(new iOSClipboard()); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/ios/clipboard.hxx b/vcl/ios/clipboard.hxx deleted file mode 100644 index e1133f0ba0bf..000000000000 --- a/vcl/ios/clipboard.hxx +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * 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 . - */ - -#pragma once - -#include "DataFlavorMapping.hxx" -#include <rtl/ustring.hxx> -#include <sal/types.h> -#include <cppuhelper/compbase.hxx> -#include <com/sun/star/datatransfer/XTransferable.hpp> -#include <com/sun/star/datatransfer/clipboard/XClipboardEx.hpp> -#include <com/sun/star/datatransfer/clipboard/XClipboardOwner.hpp> -#include <com/sun/star/datatransfer/clipboard/XClipboardListener.hpp> -#include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp> -#include <com/sun/star/datatransfer/clipboard/XSystemClipboard.hpp> -#include <com/sun/star/datatransfer/XMimeContentTypeFactory.hpp> -#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <cppuhelper/basemutex.hxx> -#include <com/sun/star/lang/XMultiComponentFactory.hpp> - -#include <list> - -#include <premac.h> -#import <UIKit/UIKit.h> -#include <postmac.h> - -class iOSClipboard; - -@interface PasteboardChangedEventListener : NSObject -{ - iOSClipboard* piOSClipboard; -} -- (PasteboardChangedEventListener*)initWithiOSClipboard:(iOSClipboard*)pcb; -- (void)pasteboardChanged:(NSNotification*)aNotification; -- (void)disposing; -@end - -class iOSClipboard - : public ::cppu::BaseMutex, - public ::cppu::WeakComponentImplHelper<css::datatransfer::clipboard::XSystemClipboard, - css::lang::XServiceInfo> -{ -public: - iOSClipboard(); - - virtual ~iOSClipboard() override; - iOSClipboard(const iOSClipboard&) = delete; - iOSClipboard& operator=(const iOSClipboard&) = delete; - - // XClipboard - - css::uno::Reference<css::datatransfer::XTransferable> SAL_CALL getContents() override; - - void SAL_CALL setContents( - const css::uno::Reference<css::datatransfer::XTransferable>& xTransferable, - const css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner>& xClipboardOwner) - override; - - OUString SAL_CALL getName() override; - - // XClipboardEx - - sal_Int8 SAL_CALL getRenderingCapabilities() override; - - // XClipboardNotifier - - void SAL_CALL addClipboardListener( - const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener) - override; - - void SAL_CALL removeClipboardListener( - const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener) - override; - - // XServiceInfo - - OUString SAL_CALL getImplementationName() override; - - sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; - - css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override; - - void contentsChanged(); - -private: - /* Notify the current clipboard owner that he is no longer the clipboard owner. */ - void fireLostClipboardOwnershipEvent( - css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner> const& oldOwner, - css::uno::Reference<css::datatransfer::XTransferable> const& oldContent); - - /* Notify all registered XClipboardListener that the clipboard content has changed. */ - void - fireClipboardChangedEvent(css::uno::Reference<css::datatransfer::XTransferable> xNewContents); - -private: - css::uno::Reference<css::datatransfer::XMimeContentTypeFactory> mrXMimeCntFactory; - std::list<css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>> - mClipboardListeners; - css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner> mXClipboardOwner; - std::shared_ptr<DataFlavorMapper> mpDataFlavorMapper; - NSInteger mnPasteboardChangeCount; - PasteboardChangedEventListener* mpPasteboardChangedEventListener; -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx index 2385c19f4a4a..e5ea1f19a770 100644 --- a/vcl/jsdialog/executor.cxx +++ b/vcl/jsdialog/executor.cxx @@ -583,6 +583,9 @@ bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget, StringMap std::unique_ptr<weld::TreeIter> itEntry(pTreeView->make_iterator()); if (pTreeView->get_iter_abs_pos(*itEntry, nEntryAbsPos)) { + // avoid negative coordinates and crash + pTreeView->scroll_to_row(*itEntry); + tools::Rectangle aRect = pTreeView->get_row_area(*itEntry); CommandEvent aCommand(aRect.Center(), CommandEventId::ContextMenu); diff --git a/vcl/osx/a11yfocustracker.cxx b/vcl/osx/a11yfocustracker.cxx index 2aaa8b0a8e25..c692bee571c0 100644 --- a/vcl/osx/a11yfocustracker.cxx +++ b/vcl/osx/a11yfocustracker.cxx @@ -90,7 +90,7 @@ void AquaA11yFocusTracker::WindowEventHandler(void * pThis, VclSimpleEvent& rEve } AquaA11yFocusTracker::AquaA11yFocusTracker() : - m_aWindowEventLink(this, WindowEventHandler), + m_aWindowEventLink(LINK_NONMEMBER(this, WindowEventHandler)), m_xDocumentFocusListener(new DocumentFocusListener(*this)) { Application::AddEventListener(m_aWindowEventLink); diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx index a5e74df04386..3a9af563b135 100644 --- a/vcl/osx/salframe.cxx +++ b/vcl/osx/salframe.cxx @@ -1733,6 +1733,7 @@ SAL_WNODEPRECATED_DECLARATIONS_POP if (ThemeColors::VclPluginCanUseThemeColors()) lcl_LoadColorsFromTheme(aStyleSettings); + aStyleSettings.SetSystemColorsLoaded(true); rSettings.SetStyleSettings( aStyleSettings ); diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm index a5cb9270600b..19c4234600c7 100644 --- a/vcl/osx/salframeview.mm +++ b/vcl/osx/salframeview.mm @@ -45,6 +45,8 @@ #define WHEEL_EVENT_FACTOR 1.5 +const static NSTimeInterval fScrollEventTimeoutTime = 1.0f; + static sal_uInt16 ImplGetModifierMask( unsigned int nMask ) { sal_uInt16 nRet = 0; @@ -238,11 +240,6 @@ static void freezeWindowSizeAndReschedule( NSWindow *pWindow ) } } -static bool isMouseScrollWheelEvent( NSEvent *pEvent ) -{ - return ( pEvent && [pEvent type] == NSEventTypeScrollWheel && [pEvent phase] == NSEventPhaseNone && [pEvent momentumPhase] == NSEventPhaseNone ); -} - static void updateMenuBarVisibility( const AquaSalFrame *pFrame ) { // Show the menubar if application is in native full screen mode @@ -936,6 +933,9 @@ static void updateMenuBarVisibility( const AquaSalFrame *pFrame ) mpLastMarkedText = nil; mbTextInputWantsNonRepeatKeyDown = NO; mpLastTrackingArea = nil; + + mfLastScrollEventTime = 0.0f; + mnLastScrollModifierFlags = 0; } return self; @@ -1350,17 +1350,35 @@ static void updateMenuBarVisibility( const AquaSalFrame *pFrame ) mpFrame->mnLastEventTime = static_cast<sal_uInt64>( [pEvent timestamp] * 1000.0 ); mpFrame->mnLastModifierFlags = [pEvent modifierFlags]; + // tdf#151423 use the same modifier keys during a scrolling session + // Revert commit f5ef5eafdf70a36edd5129147502a9c74df89456 as it + // completely disabled the ability to zoom on mice with limited + // support for gestures such as the Apple Magic Mouse by pressing + // pressing the Command key while scrolling. So try a different + // approach and use the modifier keys that were pressed when the + // current scrolling session was started for the entire scrolling + // session. + // Unfortunately, session state changes such as a scrolling session + // began or ended are not fired when scrolling with a regular mouse + // scrollwheel so use a significant pause between scrolling events + // as a rough indicator that a new scrolling session has begun. + if( [pEvent momentumPhase] == NSEventPhaseNone && mnLastScrollModifierFlags != [pEvent modifierFlags] ) + { + if( [pEvent timestamp] - mfLastScrollEventTime > fScrollEventTimeoutTime ) + mnLastScrollModifierFlags = [pEvent modifierFlags]; + } + // merge pending scroll wheel events CGFloat dX = 0.0; CGFloat dY = 0.0; - bool bAllowModifiers = isMouseScrollWheelEvent( pEvent ); for(;;) { + mfLastScrollEventTime = [pEvent timestamp]; dX += [pEvent deltaX]; dY += [pEvent deltaY]; NSEvent* pNextEvent = [NSApp nextEventMatchingMask: NSEventMaskScrollWheel untilDate: nil inMode: NSDefaultRunLoopMode dequeue: YES ]; - if( !pNextEvent || ( isMouseScrollWheelEvent( pNextEvent ) != bAllowModifiers ) ) + if( !pNextEvent ) break; pEvent = pNextEvent; } @@ -1372,16 +1390,7 @@ static void updateMenuBarVisibility( const AquaSalFrame *pFrame ) aEvent.mnTime = mpFrame->mnLastEventTime; aEvent.mnX = static_cast<tools::Long>(aPt.x) - mpFrame->GetUnmirroredGeometry().x(); aEvent.mnY = static_cast<tools::Long>(aPt.y) - mpFrame->GetUnmirroredGeometry().y(); - // tdf#151423 Only allow modifiers for mouse scrollwheel events - // The Command modifier converts scrollwheel events into - // magnification events and the Shift modifier converts vertical - // scrollwheel events into horizontal scrollwheel events. This - // behavior is reasonable for mouse scrollwheel events since many - // mice only have a single, vertical scrollwheel but trackpads - // already have specific gestures for magnification and horizontal - // scrolling. So, behave like most macOS applications and ignore - // all modifiers if this a trackpad scrollwheel event. - aEvent.mnCode = bAllowModifiers ? ImplGetModifierMask( mpFrame->mnLastModifierFlags ) : 0; + aEvent.mnCode = ImplGetModifierMask( mnLastScrollModifierFlags ); aEvent.mbDeltaIsPixel = false; if( AllSettings::GetLayoutRTL() ) diff --git a/vcl/qa/cppunit/app/test_IconThemeScanner.cxx b/vcl/qa/cppunit/app/test_IconThemeScanner.cxx index d0eb13402e9a..ab8d5df35f89 100644 --- a/vcl/qa/cppunit/app/test_IconThemeScanner.cxx +++ b/vcl/qa/cppunit/app/test_IconThemeScanner.cxx @@ -19,51 +19,41 @@ class IconThemeScannerTest : public CppUnit::TestFixture { - void - AddedThemeIsFoundById(); - - void - AddedThemeInfoIsReturned(); - - void - ExceptionIsThrownIfInvalidInfoIsRequested(); + void testAddedThemeIsFoundById(); + void testAddedThemeInfoIsReturned(); + void testExceptionIsThrownIfInvalidInfoIsRequested(); // Adds code needed to register the test suite CPPUNIT_TEST_SUITE(IconThemeScannerTest); - CPPUNIT_TEST(AddedThemeIsFoundById); - CPPUNIT_TEST(AddedThemeInfoIsReturned); - CPPUNIT_TEST(ExceptionIsThrownIfInvalidInfoIsRequested); - - // End of test suite definition + CPPUNIT_TEST(testAddedThemeIsFoundById); + CPPUNIT_TEST(testAddedThemeInfoIsReturned); + CPPUNIT_TEST(testExceptionIsThrownIfInvalidInfoIsRequested); CPPUNIT_TEST_SUITE_END(); }; -void -IconThemeScannerTest::AddedThemeIsFoundById() +void IconThemeScannerTest::testAddedThemeIsFoundById() { vcl::IconThemeScanner scanner; - scanner.AddIconThemeByPath(u"file:://images_katze.zip"_ustr); + scanner.addResource(u"file:://images_katze.zip"_ustr); OUString id = vcl::IconThemeInfo::FileNameToThemeId(u"images_katze.zip"); bool found = scanner.IconThemeIsInstalled(id); CPPUNIT_ASSERT_EQUAL_MESSAGE("icon theme could be added by url", true, found); } -void -IconThemeScannerTest::AddedThemeInfoIsReturned() +void IconThemeScannerTest::testAddedThemeInfoIsReturned() { vcl::IconThemeScanner scanner; OUString theme(u"file:://images_katze.zip"_ustr); - scanner.AddIconThemeByPath(theme); + scanner.addResource(theme); OUString id = vcl::IconThemeInfo::FileNameToThemeId(u"images_katze.zip"); const vcl::IconThemeInfo& info = scanner.GetIconThemeInfo(id); CPPUNIT_ASSERT_EQUAL_MESSAGE("'katze' icon theme is found from id", theme, info.GetUrlToFile()); } -void -IconThemeScannerTest::ExceptionIsThrownIfInvalidInfoIsRequested() +void IconThemeScannerTest::testExceptionIsThrownIfInvalidInfoIsRequested() { vcl::IconThemeScanner scanner; - scanner.AddIconThemeByPath(u"file:://images_katze.zip"_ustr); + scanner.addResource(u"file:://images_katze.zip"_ustr); bool thrown = false; try { diff --git a/vcl/qa/cppunit/canvasbitmaptest.cxx b/vcl/qa/cppunit/canvasbitmaptest.cxx index 91db2e4f73f3..e562824955bd 100644 --- a/vcl/qa/cppunit/canvasbitmaptest.cxx +++ b/vcl/qa/cppunit/canvasbitmaptest.cxx @@ -89,8 +89,6 @@ void checkCanvasBitmap( const rtl::Reference<VclCanvasBitmap>& xBmp, { BitmapScopedReadAccess pAcc( aContainedBmp ); nDepth = pAcc->GetBitCount(); - if( pAcc->GetScanlineFormat() == ScanlineFormat::N32BitTcMask ) - extraBpp = 8; // the format has 8 unused bits } CPPUNIT_ASSERT_EQUAL_MESSAGE( "Original bitmap size not (200,200)", diff --git a/vcl/qa/cppunit/filter/ipdf/ipdf.cxx b/vcl/qa/cppunit/filter/ipdf/ipdf.cxx index 9964ec88dfb2..243687dad00b 100644 --- a/vcl/qa/cppunit/filter/ipdf/ipdf.cxx +++ b/vcl/qa/cppunit/filter/ipdf/ipdf.cxx @@ -102,10 +102,9 @@ CPPUNIT_TEST_FIXTURE(VclFilterIpdfTest, testPDFAddVisibleSignatureLastPage) } SfxViewShell* pCurrent = SfxViewShell::Current(); CPPUNIT_ASSERT(pCurrent); - SdrView* pView = pCurrent->GetDrawView(); svl::crypto::CertificateOrName aCertificateOrName; aCertificateOrName.m_xCertificate = xCert; - svx::SignatureLineHelper::setShapeCertificate(pView, aCertificateOrName); + svx::SignatureLineHelper::setShapeCertificate(pCurrent, aCertificateOrName); // the document is modified now, but Sign function can't show SaveAs dialog // in unit test, so just clear the modified diff --git a/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx b/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx index 6c27b7e4d2c1..1ef7e156ccd5 100644 --- a/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx +++ b/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx @@ -12,6 +12,7 @@ #include <test/unoapi_test.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <unotools/mediadescriptor.hxx> #include <comphelper/crypto/Crypto.hxx> @@ -59,29 +60,13 @@ public: } }; -// TODO: taken from GUID -sal_uInt8 gethex(char nChar) -{ - if (nChar >= '0' && nChar <= '9') - return nChar - '0'; - else if (nChar >= 'a' && nChar <= 'f') - return nChar - 'a' + 10; - else if (nChar >= 'A' && nChar <= 'F') - return nChar - 'A' + 10; - else - return 0; -} - -// TODO: taken from GUID -sal_uInt8 convertHexChar(char high, char low) { return (gethex(high) << 4) + gethex(low); } - std::vector<sal_uInt8> parseHex(std::string_view rString) { std::vector<sal_uInt8> aResult; aResult.reserve(rString.size() / 2); for (size_t i = 0; i < rString.size(); i += 2) { - aResult.push_back(convertHexChar(rString[i], rString[i + 1])); + aResult.push_back(o3tl::convertToHex<sal_Int32>(rString[i], rString[i + 1])); } return aResult; } diff --git a/vcl/qt5/QtAccessibleWidget.cxx b/vcl/qt5/QtAccessibleWidget.cxx index f7f55f74f82d..7438c5e368d1 100644 --- a/vcl/qt5/QtAccessibleWidget.cxx +++ b/vcl/qt5/QtAccessibleWidget.cxx @@ -51,7 +51,6 @@ #include <com/sun/star/accessibility/XAccessibleValue.hpp> #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/lang/DisposedException.hpp> -#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> #include <com/sun/star/uno/Sequence.hxx> #include <comphelper/AccessibleImplementationHelper.hxx> @@ -1859,22 +1858,11 @@ QAccessibleInterface* QtAccessibleWidget::selectedItem(int nSelectionIndex) cons return nullptr; } - try - { - Reference<XAccessible> xChild = xSelection->getSelectedAccessibleChild(nSelectionIndex); - if (xChild) - return QAccessible::queryAccessibleInterface(QtAccessibleRegistry::getQObject(xChild)); - } - catch (const css::lang::IndexOutOfBoundsException&) - { - // tdf#163335: temporarily work around inconsistency in - // SwAccessibleSelectionHelper::getSelectedAccessibleChildCount - // returning a larger number of selected items than - // SwAccessibleSelectionHelper::getSelectedAccessibleChild supports - SAL_WARN("vcl.qt", "QtAccessibleWidget::selectedItem triggered an exception"); - } + Reference<XAccessible> xChild = xSelection->getSelectedAccessibleChild(nSelectionIndex); + if (!xChild) + return nullptr; - return nullptr; + return QAccessible::queryAccessibleInterface(QtAccessibleRegistry::getQObject(xChild)); } bool QtAccessibleWidget::isSelected(QAccessibleInterface* pItem) const diff --git a/vcl/qt5/QtBitmap.cxx b/vcl/qt5/QtBitmap.cxx index 26cb42154042..235f94715e04 100644 --- a/vcl/qt5/QtBitmap.cxx +++ b/vcl/qt5/QtBitmap.cxx @@ -120,6 +120,7 @@ BitmapBuffer* QtBitmap::AcquireBuffer(BitmapAccessMode /*nMode*/) pBuffer->mnBitCount = getFormatBits(m_pImage->format()); pBuffer->mpBits = m_pImage->bits(); pBuffer->mnScanlineSize = m_pImage->bytesPerLine(); + pBuffer->meDirection = ScanlineDirection::TopDown; switch (pBuffer->mnBitCount) { diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx index 8b1b4293c8ff..cb0ceb0cda87 100644 --- a/vcl/qt5/QtBuilder.cxx +++ b/vcl/qt5/QtBuilder.cxx @@ -222,10 +222,7 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, std: else if (sName == u"GtkEntry") { QLineEdit* pLineEdit = new QLineEdit(pParentWidget); - auto aIt = rMap.find(u"visibility"_ustr); - if (aIt != rMap.end() && !toBool(aIt->second)) - pLineEdit->setEchoMode(QLineEdit::Password); - + setEntryProperties(*pLineEdit, rMap); pObject = pLineEdit; } else if (sName == u"GtkExpander") @@ -286,13 +283,7 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, std: else if (sName == u"GtkMenuButton") { QToolButton* pMenuButton = new QToolButton(pParentWidget); - const OUString sMenu = extractPopupMenu(rMap); - if (!sMenu.isEmpty()) - { - QMenu* pMenu = get_menu(sMenu); - assert(pMenu && "menu button references non-existing menu"); - pMenuButton->setMenu(pMenu); - } + setMenuButtonProperties(*pMenuButton, rMap); pObject = pMenuButton; } else if (sName == u"GtkNotebook") @@ -343,7 +334,9 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, std: } else if (sName == u"GtkToggleButton") { - pObject = new QToolButton(pParentWidget); + QToolButton* pButton = new QToolButton(pParentWidget); + setButtonProperties(*pButton, rMap); + pObject = pButton; } else if (sName == u"GtkToolbar") { @@ -807,7 +800,7 @@ void QtBuilder::setProperties(QObject* pObject, stringmap& rProps) } } -void QtBuilder::setButtonProperties(QPushButton& rButton, stringmap& rProps) +void QtBuilder::setButtonProperties(QAbstractButton& rButton, stringmap& rProps) { for (auto const & [ rKey, rValue ] : rProps) { @@ -820,10 +813,8 @@ void QtBuilder::setButtonProperties(QPushButton& rButton, stringmap& rProps) #else rButton.setIcon(QIcon(pImageLabel->pixmap(Qt::ReturnByValue))); #endif - // parentless GtkImage in .ui file is only used for setting button - // image, so the object is no longer needed after doing so - if (!pImageLabel->parent()) - deleteObject(pImageLabel); + // mark original label object for deletion + deleteObject(pImageLabel); } else if (rKey == u"label") { @@ -832,6 +823,17 @@ void QtBuilder::setButtonProperties(QPushButton& rButton, stringmap& rProps) } } +void QtBuilder::setEntryProperties(QLineEdit& rLineEdit, stringmap& rProps) +{ + auto aIt = rProps.find(u"placeholder-text"_ustr); + if (aIt != rProps.end()) + rLineEdit.setPlaceholderText(toQString(aIt->second)); + + aIt = rProps.find(u"visibility"_ustr); + if (aIt != rProps.end() && !toBool(aIt->second)) + rLineEdit.setEchoMode(QLineEdit::Password); +} + void QtBuilder::setLabelProperties(QLabel& rLabel, stringmap& rProps) { for (auto const & [ rKey, rValue ] : rProps) @@ -843,6 +845,19 @@ void QtBuilder::setLabelProperties(QLabel& rLabel, stringmap& rProps) } } +void QtBuilder::setMenuButtonProperties(QToolButton& rButton, stringmap& rProps) +{ + const OUString sMenu = extractPopupMenu(rProps); + if (!sMenu.isEmpty()) + { + QMenu* pMenu = get_menu(sMenu); + assert(pMenu && "menu button references non-existing menu"); + rButton.setMenu(pMenu); + } + + setButtonProperties(rButton, rProps); +} + void QtBuilder::setScaleProperties(QSlider& rSlider, stringmap& rProps) { if (!hasOrientationVertical(rProps)) diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx index b8312735a098..4d76a3154ca3 100644 --- a/vcl/qt5/QtFrame.cxx +++ b/vcl/qt5/QtFrame.cxx @@ -269,13 +269,15 @@ QWindow* QtFrame::windowHandle() const assert(pChild->window() == pChild); switch (m_aSystemData.platform) { + case SystemEnvData::Platform::WASM: +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + // no idea, why Qt::WA_NativeWindow breaks the menubar for EMSCRIPTEN + break; +#endif case SystemEnvData::Platform::Wayland: case SystemEnvData::Platform::Xcb: pChild->setAttribute(Qt::WA_NativeWindow); break; - case SystemEnvData::Platform::WASM: - // no idea, why Qt::WA_NativeWindow breaks the menubar for EMSCRIPTEN - break; case SystemEnvData::Platform::Invalid: std::abort(); break; @@ -1228,6 +1230,7 @@ void QtFrame::UpdateSettings(AllSettings& rSettings) // Cursor blink interval int nFlashTime = QApplication::cursorFlashTime(); style.SetCursorBlinkTime(nFlashTime != 0 ? nFlashTime / 2 : STYLE_CURSOR_NOBLINKTIME); + style.SetSystemColorsLoaded(true); rSettings.SetStyleSettings(style); } diff --git a/vcl/qt5/QtInstanceBox.cxx b/vcl/qt5/QtInstanceBox.cxx new file mode 100644 index 000000000000..e98c220a330d --- /dev/null +++ b/vcl/qt5/QtInstanceBox.cxx @@ -0,0 +1,23 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 <QtInstanceBox.hxx> +#include <QtInstanceBox.moc> + +QtInstanceBox::QtInstanceBox(QWidget* pWidget) + : QtInstanceContainer(pWidget) +{ + assert(qobject_cast<QBoxLayout*>(pWidget->layout()) && "widget doesn't have a box layout"); +} + +void QtInstanceBox::reorder_child(weld::Widget*, int) { assert(false && "Not implemented yet"); } + +void QtInstanceBox::sort_native_button_order() { assert(false && "Not implemented yet"); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx index 2977131d827f..08e3a49d09be 100644 --- a/vcl/qt5/QtInstanceBuilder.cxx +++ b/vcl/qt5/QtInstanceBuilder.cxx @@ -12,6 +12,7 @@ #include <unordered_set> #include <QtBuilder.hxx> +#include <QtInstanceBox.hxx> #include <QtInstanceCheckButton.hxx> #include <QtInstanceComboBox.hxx> #include <QtInstanceDrawingArea.hxx> @@ -61,13 +62,14 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile) static std::unordered_set<OUString> aSupportedUIFiles = { u"cui/ui/aboutdialog.ui"_ustr, u"cui/ui/insertrowcolumn.ui"_ustr, + u"cui/ui/javastartparametersdialog.ui"_ustr, u"cui/ui/namedialog.ui"_ustr, u"cui/ui/objecttitledescdialog.ui"_ustr, u"cui/ui/optnewdictionarydialog.ui"_ustr, u"cui/ui/password.ui"_ustr, u"cui/ui/pastespecial.ui"_ustr, u"cui/ui/qrcodegen.ui"_ustr, - u"cui/ui/querysetinsmodedialog.ui"_ustr, + u"cui/ui/querydialog.ui"_ustr, u"cui/ui/securityoptionsdialog.ui"_ustr, u"cui/ui/splitcellsdialog.ui"_ustr, u"cui/ui/tipofthedaydialog.ui"_ustr, @@ -89,6 +91,7 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile) u"modules/swriter/ui/splittable.ui"_ustr, u"modules/swriter/ui/wordcount.ui"_ustr, u"sfx/ui/helpmanual.ui"_ustr, + u"sfx/ui/inputdialog.ui"_ustr, u"sfx/ui/licensedialog.ui"_ustr, u"sfx/ui/password.ui"_ustr, u"sfx/ui/querysavedialog.ui"_ustr, @@ -155,10 +158,14 @@ std::unique_ptr<weld::Container> QtInstanceBuilder::weld_container(const OUStrin return std::make_unique<QtInstanceContainer>(pWidget); } -std::unique_ptr<weld::Box> QtInstanceBuilder::weld_box(const OUString&) +std::unique_ptr<weld::Box> QtInstanceBuilder::weld_box(const OUString& rId) { - assert(false && "Not implemented yet"); - return nullptr; + QWidget* pWidget = m_xBuilder->get<QWidget>(rId); + if (!pWidget) + return nullptr; + + assert(qobject_cast<QBoxLayout*>(pWidget->layout()) && "widget doesn't have a box layout"); + return std::make_unique<QtInstanceBox>(pWidget); } std::unique_ptr<weld::Grid> QtInstanceBuilder::weld_grid(const OUString& rId) diff --git a/vcl/qt5/QtInstanceEntry.cxx b/vcl/qt5/QtInstanceEntry.cxx index bb27c84b6083..2228b9b67223 100644 --- a/vcl/qt5/QtInstanceEntry.cxx +++ b/vcl/qt5/QtInstanceEntry.cxx @@ -175,7 +175,7 @@ bool QtInstanceEntry::get_overwrite_mode() const void QtInstanceEntry::set_font(const vcl::Font&) { assert(false && "Not implemented yet"); } -void QtInstanceEntry::set_font_color(const Color&) { assert(false && "Not implemented yet"); } +void QtInstanceEntry::set_font_color(const Color& rColor) { setFontColor(rColor); } void QtInstanceEntry::cut_clipboard() { assert(false && "Not implemented yet"); } diff --git a/vcl/qt5/QtInstanceLabel.cxx b/vcl/qt5/QtInstanceLabel.cxx index d498e2000e7e..6e4029138bb7 100644 --- a/vcl/qt5/QtInstanceLabel.cxx +++ b/vcl/qt5/QtInstanceLabel.cxx @@ -49,6 +49,6 @@ void QtInstanceLabel::set_font(const vcl::Font&) { assert(false && "Not implemen void QtInstanceLabel::set_label_type(weld::LabelType) { assert(false && "Not implemented yet"); } -void QtInstanceLabel::set_font_color(const Color&) { assert(false && "Not implemented yet"); } +void QtInstanceLabel::set_font_color(const Color& rColor) { setFontColor(rColor); } /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/qt5/QtInstanceLinkButton.cxx b/vcl/qt5/QtInstanceLinkButton.cxx index 88c5f28e3ae5..2a7f18aef314 100644 --- a/vcl/qt5/QtInstanceLinkButton.cxx +++ b/vcl/qt5/QtInstanceLinkButton.cxx @@ -37,7 +37,12 @@ OUString QtInstanceLinkButton::get_label() const return sLabel; } -void QtInstanceLinkButton::set_label_wrap(bool) { assert(false && "Not implemented yet"); } +void QtInstanceLinkButton::set_label_wrap(bool bWrap) +{ + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { m_pLabel->setWordWrap(bWrap); }); +} void QtInstanceLinkButton::set_uri(const OUString& rUri) { diff --git a/vcl/qt5/QtInstanceMenuButton.cxx b/vcl/qt5/QtInstanceMenuButton.cxx index f6432abdc77d..6bbcd9cdcc9b 100644 --- a/vcl/qt5/QtInstanceMenuButton.cxx +++ b/vcl/qt5/QtInstanceMenuButton.cxx @@ -19,13 +19,15 @@ QtInstanceMenuButton::QtInstanceMenuButton(QToolButton* pButton) : QtInstanceToggleButton(pButton) , m_pToolButton(pButton) + , m_pPopover(nullptr) { assert(m_pToolButton); - m_pToolButton->setPopupMode(QToolButton::InstantPopup); - assert(m_pToolButton->menu()); - connect(m_pToolButton->menu(), &QMenu::triggered, this, - &QtInstanceMenuButton::handleMenuItemTriggered); + if (m_pToolButton->menu()) + connect(m_pToolButton->menu(), &QMenu::triggered, this, + &QtInstanceMenuButton::handleMenuItemTriggered); + + connect(m_pToolButton, &QToolButton::clicked, this, &QtInstanceMenuButton::handleButtonClicked); } void QtInstanceMenuButton::insert_item(int nPos, const OUString& rId, const OUString& rStr, @@ -38,22 +40,29 @@ void QtInstanceMenuButton::insert_item(int nPos, const OUString& rId, const OUSt (void)eCheckRadioFalse; GetQtInstance().RunInMainThread([&] { - if (nPos == -1) - nPos = getMenu().actions().count(); - - QAction* pAction = getMenu().addAction(vclToQtStringWithAccelerator(rStr)); + QAction* pAction = new QAction(vclToQtStringWithAccelerator(rStr), &getMenu()); pAction->setObjectName(toQString(rId)); if (pIconName) pAction->setIcon(loadQPixmapIcon(*pIconName)); else if (pImageSurface) pAction->setIcon(toQPixmap(*pImageSurface)); + + insertAction(pAction, nPos); }); } -void QtInstanceMenuButton::insert_separator(int, const OUString&) +void QtInstanceMenuButton::insert_separator(int nPos, const OUString& rId) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QAction* pAction = new QAction(&getMenu()); + pAction->setSeparator(true); + pAction->setObjectName(toQString(rId)); + + insertAction(pAction, nPos); + }); } void QtInstanceMenuButton::remove_item(const OUString& rId) @@ -126,7 +135,11 @@ void QtInstanceMenuButton::set_item_visible(const OUString& rIdent, bool bVisibl }); } -void QtInstanceMenuButton::set_popover(weld::Widget*) { assert(false && "Not implemented yet"); } +void QtInstanceMenuButton::set_popover(weld::Widget* pPopover) +{ + QtInstanceWidget* pPopoverWidget = dynamic_cast<QtInstanceWidget*>(pPopover); + m_pPopover = pPopoverWidget ? pPopoverWidget->getQWidget() : nullptr; +} QMenu& QtInstanceMenuButton::getMenu() const { @@ -137,7 +150,7 @@ QMenu& QtInstanceMenuButton::getMenu() const QAction* QtInstanceMenuButton::getAction(const OUString& rIdent) const { - QList<QAction*> aActions = getMenu().actions(); + const QList<QAction*> aActions = getMenu().actions(); for (QAction* pAction : aActions) { if (pAction && pAction->objectName() == toQString(rIdent)) @@ -147,6 +160,27 @@ QAction* QtInstanceMenuButton::getAction(const OUString& rIdent) const return nullptr; } +void QtInstanceMenuButton::insertAction(QAction* pAction, int nPos) +{ + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QAction* pNextAction = nullptr; + QList<QAction*> pActions = getMenu().actions(); + if (nPos >= 0 && nPos < pActions.count()) + pNextAction = pActions.at(nPos); + getMenu().insertAction(pNextAction, pAction); + }); +} + +void QtInstanceMenuButton::handleButtonClicked() +{ + if (m_pPopover) + m_pPopover->show(); + else + m_pToolButton->showMenu(); +} + void QtInstanceMenuButton::handleMenuItemTriggered(QAction* pAction) { SolarMutexGuard g; diff --git a/vcl/qt5/QtInstanceScrolledWindow.cxx b/vcl/qt5/QtInstanceScrolledWindow.cxx index d799555d94cf..06ac3f640287 100644 --- a/vcl/qt5/QtInstanceScrolledWindow.cxx +++ b/vcl/qt5/QtInstanceScrolledWindow.cxx @@ -32,9 +32,25 @@ css::uno::Reference<css::awt::XWindow> QtInstanceScrolledWindow::CreateChildFram void QtInstanceScrolledWindow::child_grab_focus() { assert(false && "Not implemented yet"); } -void QtInstanceScrolledWindow::hadjustment_configure(int, int, int, int, int, int) +void QtInstanceScrolledWindow::hadjustment_configure(int nValue, int nLower, int nUpper, + int nStepIncrement, int nPageIncrement, + int nPageSize) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar(); + if (!pScrollBar) + return; + + pScrollBar->setValue(nValue); + pScrollBar->setMinimum(nLower); + pScrollBar->setMaximum(nUpper); + pScrollBar->setSingleStep(nStepIncrement); + pScrollBar->setPageStep(nPageIncrement); + if (QWidget* pWidget = m_pScrollArea->widget()) + pWidget->resize(nPageSize, pWidget->height()); + }); } int QtInstanceScrolledWindow::hadjustment_get_value() const @@ -85,13 +101,25 @@ void QtInstanceScrolledWindow::hadjustment_set_upper(int nUpper) int QtInstanceScrolledWindow::hadjustment_get_page_size() const { - assert(false && "Not implemented yet"); - return 0; + SolarMutexGuard g; + + int nPageSize = 0; + GetQtInstance().RunInMainThread([&] { + if (QWidget* pWidget = m_pScrollArea->widget()) + nPageSize = pWidget->width(); + }); + + return nPageSize; } -void QtInstanceScrolledWindow::hadjustment_set_page_size(int) +void QtInstanceScrolledWindow::hadjustment_set_page_size(int nSize) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + if (QWidget* pWidget = m_pScrollArea->widget()) + pWidget->resize(nSize, pWidget->height()); + }); } void QtInstanceScrolledWindow::hadjustment_set_page_increment(int nSize) @@ -133,9 +161,25 @@ VclPolicyType QtInstanceScrolledWindow::get_hpolicy() const return ePolicy; } -void QtInstanceScrolledWindow::vadjustment_configure(int, int, int, int, int, int) +void QtInstanceScrolledWindow::vadjustment_configure(int nValue, int nLower, int nUpper, + int nStepIncrement, int nPageIncrement, + int nPageSize) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar(); + if (!pScrollBar) + return; + + pScrollBar->setValue(nValue); + pScrollBar->setMinimum(nLower); + pScrollBar->setMaximum(nUpper); + pScrollBar->setSingleStep(nStepIncrement); + pScrollBar->setPageStep(nPageIncrement); + if (QWidget* pWidget = m_pScrollArea->widget()) + pWidget->resize(pWidget->width(), nPageSize); + }); } int QtInstanceScrolledWindow::vadjustment_get_value() const @@ -186,13 +230,25 @@ void QtInstanceScrolledWindow::vadjustment_set_upper(int nUpper) int QtInstanceScrolledWindow::vadjustment_get_page_size() const { - assert(false && "Not implemented yet"); - return 0; + SolarMutexGuard g; + + int nPageSize = 0; + GetQtInstance().RunInMainThread([&] { + if (QWidget* pWidget = m_pScrollArea->widget()) + nPageSize = pWidget->height(); + }); + + return nPageSize; } -void QtInstanceScrolledWindow::vadjustment_set_page_size(int) +void QtInstanceScrolledWindow::vadjustment_set_page_size(int nSize) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + if (QWidget* pWidget = m_pScrollArea->widget()) + pWidget->resize(pWidget->width(), nSize); + }); } void QtInstanceScrolledWindow::vadjustment_set_page_increment(int nSize) diff --git a/vcl/qt5/QtInstanceTextView.cxx b/vcl/qt5/QtInstanceTextView.cxx index dc85c9850d01..8d771269b1e1 100644 --- a/vcl/qt5/QtInstanceTextView.cxx +++ b/vcl/qt5/QtInstanceTextView.cxx @@ -92,7 +92,7 @@ void QtInstanceTextView::set_max_length(int) { assert(false && "Not implemented void QtInstanceTextView::set_font(const vcl::Font&) { assert(false && "Not implemented yet"); } -void QtInstanceTextView::set_font_color(const Color&) { assert(false && "Not implemented yet"); } +void QtInstanceTextView::set_font_color(const Color& rColor) { setFontColor(rColor); } bool QtInstanceTextView::can_move_cursor_with_up() const { diff --git a/vcl/qt5/QtInstanceToggleButton.cxx b/vcl/qt5/QtInstanceToggleButton.cxx index 38b1c40509fd..eca59aa95f4a 100644 --- a/vcl/qt5/QtInstanceToggleButton.cxx +++ b/vcl/qt5/QtInstanceToggleButton.cxx @@ -15,6 +15,8 @@ QtInstanceToggleButton::QtInstanceToggleButton(QAbstractButton* pButton) { assert(pButton); pButton->setCheckable(true); + + connect(&getButton(), &QAbstractButton::toggled, this, &QtInstanceToggleButton::signalToggled); } void QtInstanceToggleButton::set_active(bool bActive) @@ -34,7 +36,11 @@ bool QtInstanceToggleButton::get_active() const return bActive; }; -void QtInstanceToggleButton::set_inconsistent(bool) { assert(false && "Not implemented yet"); }; +void QtInstanceToggleButton::set_inconsistent(bool bInconsistent) +{ + assert(!bInconsistent && "Inconsistent state not supported (yet?)"); + (void)bInconsistent; +}; bool QtInstanceToggleButton::get_inconsistent() const { @@ -42,4 +48,10 @@ bool QtInstanceToggleButton::get_inconsistent() const return false; }; +void QtInstanceToggleButton::signalToggled() +{ + SolarMutexGuard g; + signal_toggled(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx index 3c016ef91902..7b4a1c79128e 100644 --- a/vcl/qt5/QtInstanceWidget.cxx +++ b/vcl/qt5/QtInstanceWidget.cxx @@ -590,12 +590,27 @@ void QtInstanceWidget::set_toolbar_background() { assert(false && "Not implement void QtInstanceWidget::set_highlight_background() { assert(false && "Not implemented yet"); } +void QtInstanceWidget::setFontColor(const Color& rFontColor) +{ + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QPalette aPalette = getQWidget()->palette(); + aPalette.setColor(getQWidget()->foregroundRole(), toQColor(rFontColor)); + getQWidget()->setPalette(aPalette); + }); +} + void QtInstanceWidget::set_background(const Color& rBackColor) { - QPalette aPalette = getQWidget()->palette(); - aPalette.setColor(QPalette::Base, toQColor(rBackColor)); - getQWidget()->setPalette(aPalette); - getQWidget()->setBackgroundRole(QPalette::Base); + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QPalette aPalette = getQWidget()->palette(); + aPalette.setColor(getQWidget()->backgroundRole(), toQColor(rBackColor)); + getQWidget()->setPalette(aPalette); + getQWidget()->setAutoFillBackground(true); + }); } void QtInstanceWidget::draw(OutputDevice&, const Point&, const Size&) diff --git a/vcl/qt5/QtMenu.cxx b/vcl/qt5/QtMenu.cxx index e90248a032e3..845d1940b185 100644 --- a/vcl/qt5/QtMenu.cxx +++ b/vcl/qt5/QtMenu.cxx @@ -32,6 +32,7 @@ #include <QtWidgets/QShortcut> #endif #include <QtWidgets/QStyle> +#include <QtWidgets/QToolTip> #include <o3tl/safeint.hxx> #include <vcl/svapp.hxx> @@ -69,6 +70,37 @@ QtMenu::QtMenu(bool bMenuBar) { } +bool QtMenu::eventFilter(QObject* pObject, QEvent* pEvent) +{ + // manually trigger tooltip if action's tooltip is set, + // Qt doesn't do that for menu entries + if (pEvent->type() != QEvent::ToolTip) + return false; + + QAction* pAction = nullptr; + if (QMenu* pMenu = qobject_cast<QMenu*>(pObject)) + pAction = pMenu->activeAction(); + else if (QMenuBar* pMenuBar = qobject_cast<QMenuBar*>(pObject)) + pAction = pMenuBar->activeAction(); + + if (!pAction) + return false; + + // QAction::toolTip() is by default based on action's text, only display if it differs + const QString sToolTip = pAction->toolTip(); + if (!sToolTip.isEmpty() && sToolTip != QAction(pAction->text()).toolTip()) + { + QHelpEvent* pHelpEvent = static_cast<QHelpEvent*>(pEvent); + QToolTip::showText(pHelpEvent->globalPos(), pAction->toolTip()); + } + else + { + QToolTip::hideText(); + } + + return false; +} + bool QtMenu::VisibleMenuBar() { return true; } void QtMenu::InsertMenuItem(QtMenuItem* pSalMenuItem, unsigned nPos) @@ -175,6 +207,7 @@ void QtMenu::InsertMenuItem(QtMenuItem* pSalMenuItem, unsigned nPos) { // leaf menu QAction* pAction = new QAction(aText, nullptr); + pAction->setToolTip(toQString(mpVCLMenu->GetTipHelpText(nId))); pSalMenuItem->mpAction.reset(pAction); if ((nPos != MENU_APPEND) @@ -457,6 +490,7 @@ void QtMenu::SetFrame(const SalFrame* pFrame) return; mpQMenuBar = new QMenuBar(); + mpQMenuBar->installEventFilter(this); pMainWindow->setMenuBar(mpQMenuBar); // open menu bar on F10, as is common in KF 6 and other toolkits: @@ -586,6 +620,14 @@ void QtMenu::SetItemImage(unsigned, SalMenuItem* pItem, const Image& rImage) pAction->setIcon(QPixmap::fromImage(toQImage(rImage))); } +void QtMenu::SetItemTooltip(SalMenuItem* pItem, const OUString& rTooltip) +{ + QtMenuItem* pSalMenuItem = static_cast<QtMenuItem*>(pItem); + + if (QAction* pAction = pSalMenuItem->getAction()) + pAction->setToolTip(toQString(rTooltip)); +} + void QtMenu::SetAccelerator(unsigned, SalMenuItem* pItem, const vcl::KeyCode&, const OUString& rText) { @@ -818,6 +860,9 @@ void QtMenu::connectHelpSignalSlots(QMenu* pMenu, QtMenuItem* pSalMenuItem) // connect slot to handle Help key (F1) connectHelpShortcut(pMenu); + + // install event filter in order to show tooltip on tooltip event + pMenu->installEventFilter(this); } void QtMenu::RemoveMenuBarButton(sal_uInt16 nId) { ImplRemoveMenuBarButton(nId); } diff --git a/vcl/qt5/QtVirtualDevice.cxx b/vcl/qt5/QtVirtualDevice.cxx index 68c7c4a5add2..c52316eeb7c5 100644 --- a/vcl/qt5/QtVirtualDevice.cxx +++ b/vcl/qt5/QtVirtualDevice.cxx @@ -70,33 +70,6 @@ bool QtVirtualDevice::SetSize(tools::Long nNewDX, tools::Long nNewDY) return true; } -bool QtVirtualDevice::SetSizeUsingBuffer(tools::Long nNewDX, tools::Long nNewDY, sal_uInt8* pBuffer) -{ - if (nNewDX == 0) - nNewDX = 1; - if (nNewDY == 0) - nNewDY = 1; - - if (m_pImage && m_aFrameSize.width() == nNewDX && m_aFrameSize.height() == nNewDY) - return true; - - m_aFrameSize = QSize(nNewDX, nNewDY); - - nNewDX *= m_fScale; - nNewDY *= m_fScale; - - m_pImage.reset(new QImage(pBuffer, nNewDX, nNewDY, Qt_DefaultFormat32)); - - m_pImage->fill(Qt::transparent); - m_pImage->setDevicePixelRatio(m_fScale); - - // update device in existing graphics - for (auto pQtGraph : m_aGraphics) - pQtGraph->ChangeQImage(m_pImage.get()); - - return true; -} - tools::Long QtVirtualDevice::GetWidth() const { return m_pImage ? m_aFrameSize.width() : 0; } tools::Long QtVirtualDevice::GetHeight() const { return m_pImage ? m_aFrameSize.height() : 0; } diff --git a/vcl/qt6/QtInstanceBox.cxx b/vcl/qt6/QtInstanceBox.cxx new file mode 100644 index 000000000000..e8f01b5797e3 --- /dev/null +++ b/vcl/qt6/QtInstanceBox.cxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 "../qt5/QtInstanceBox.cxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/quartz/salbmp.cxx b/vcl/quartz/salbmp.cxx index ca286b3fc434..4c6c57874f04 100644 --- a/vcl/quartz/salbmp.cxx +++ b/vcl/quartz/salbmp.cxx @@ -31,7 +31,6 @@ #include <vcl/BitmapBuffer.hxx> #include <vcl/BitmapColor.hxx> #include <vcl/BitmapPalette.hxx> -#include <vcl/ColorMask.hxx> #include <vcl/Scanline.hxx> #include <bitmap/bmpfast.hxx> @@ -46,10 +45,6 @@ #include <ios/iosinst.hxx> #endif -const unsigned long k32BitRedColorMask = 0x00ff0000; -const unsigned long k32BitGreenColorMask = 0x0000ff00; -const unsigned long k32BitBlueColorMask = 0x000000ff; - QuartzSalBitmap::QuartzSalBitmap() : mxCachedImage( nullptr ) , mnBits(0) @@ -446,13 +441,6 @@ BitmapBuffer* QuartzSalBitmap::AcquireBuffer( BitmapAccessMode /*nMode*/ ) case 32: { pBuffer->meFormat = ImplGetSVData()->mpDefInst->supportsBitmap32() ? ScanlineFormat::N32BitTcArgb : ScanlineFormat::N32BitTcXrgb; - ColorMaskElement aRedMask(k32BitRedColorMask); - aRedMask.CalcMaskShift(); - ColorMaskElement aGreenMask(k32BitGreenColorMask); - aGreenMask.CalcMaskShift(); - ColorMaskElement aBlueMask(k32BitBlueColorMask); - aBlueMask.CalcMaskShift(); - pBuffer->maColorMask = ColorMask(aRedMask, aGreenMask, aBlueMask); break; } default: assert(false); diff --git a/vcl/skia/salbmp.cxx b/vcl/skia/salbmp.cxx index ca1bcf863241..6dee8b0b5252 100644 --- a/vcl/skia/salbmp.cxx +++ b/vcl/skia/salbmp.cxx @@ -312,6 +312,7 @@ BitmapBuffer* SkiaSalBitmap::AcquireBuffer(BitmapAccessMode nMode) default: abort(); } + buffer->meDirection = ScanlineDirection::TopDown; // Refcount all read/write accesses, to catch problems with existing accesses while // a bitmap changes, and also to detect when we can free mBuffer if wanted. // Write mode implies also reading. It would be probably a good idea to count even @@ -1146,10 +1147,11 @@ void SkiaSalBitmap::PerformErase() if (!ImplFastEraseBitmap(*bitmapBuffer, fastColor)) { FncSetPixel setPixel = BitmapReadAccess::SetPixelFunction(bitmapBuffer->meFormat); + assert(bitmapBuffer->meDirection == ScanlineDirection::TopDown); // Set first scanline, copy to others. Scanline scanline = bitmapBuffer->mpBits; for (tools::Long x = 0; x < bitmapBuffer->mnWidth; ++x) - setPixel(scanline, x, mEraseColor, bitmapBuffer->maColorMask); + setPixel(scanline, x, mEraseColor); for (tools::Long y = 1; y < bitmapBuffer->mnHeight; ++y) memcpy(scanline + y * bitmapBuffer->mnScanlineSize, scanline, bitmapBuffer->mnScanlineSize); diff --git a/vcl/source/accessibility/AccessibleBrowseBoxBase.cxx b/vcl/source/accessibility/AccessibleBrowseBoxBase.cxx index 396e95a10161..9ba89b3d2b2b 100644 --- a/vcl/source/accessibility/AccessibleBrowseBoxBase.cxx +++ b/vcl/source/accessibility/AccessibleBrowseBoxBase.cxx @@ -98,10 +98,10 @@ void SAL_CALL AccessibleBrowseBoxBase::disposing() m_xFocusWindow->removeFocusListener( this ); } - if ( getClientId( ) ) + if (m_aClientId) { - AccessibleEventNotifier::TClientId nId( getClientId( ) ); - setClientId( 0 ); + AccessibleEventNotifier::TClientId nId(m_aClientId); + m_aClientId = 0; AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this ); } @@ -252,21 +252,21 @@ void SAL_CALL AccessibleBrowseBoxBase::addAccessibleEventListener( if ( _rxListener.is() ) { ::osl::MutexGuard aGuard( getMutex() ); - if ( !getClientId( ) ) - setClientId( AccessibleEventNotifier::registerClient( ) ); + if (!m_aClientId) + m_aClientId = AccessibleEventNotifier::registerClient(); - AccessibleEventNotifier::addEventListener( getClientId( ), _rxListener ); + AccessibleEventNotifier::addEventListener(m_aClientId, _rxListener); } } void SAL_CALL AccessibleBrowseBoxBase::removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener>& _rxListener ) { - if( !(_rxListener.is() && getClientId( )) ) + if (!(_rxListener.is() && m_aClientId)) return; ::osl::MutexGuard aGuard( getMutex() ); - sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( getClientId( ), _rxListener ); + sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener(m_aClientId, _rxListener ); if ( !nListenerCount ) { // no listeners anymore @@ -274,8 +274,8 @@ void SAL_CALL AccessibleBrowseBoxBase::removeAccessibleEventListener( // and at least to us not firing any events anymore, in case somebody calls // NotifyAccessibleEvent, again - AccessibleEventNotifier::TClientId nId( getClientId( ) ); - setClientId( 0 ); + AccessibleEventNotifier::TClientId nId(m_aClientId); + m_aClientId = 0; AccessibleEventNotifier::revokeClient( nId ); } } @@ -409,7 +409,7 @@ void AccessibleBrowseBoxBase::commitEvent( sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue ) { osl::MutexGuard aGuard( getMutex() ); - if ( !getClientId( ) ) + if (!m_aClientId) // if we don't have a client id for the notifier, then we don't have listeners, then // we don't need to notify anything return; @@ -419,7 +419,7 @@ void AccessibleBrowseBoxBase::commitEvent( // let the notifier handle this event - AccessibleEventNotifier::addEvent( getClientId( ), aEvent ); + AccessibleEventNotifier::addEvent(m_aClientId, aEvent ); } sal_Int16 SAL_CALL AccessibleBrowseBoxBase::getAccessibleRole() diff --git a/vcl/source/accessibility/AccessibleGridControl.cxx b/vcl/source/accessibility/AccessibleGridControl.cxx deleted file mode 100644 index 1a5c6b1e74ff..000000000000 --- a/vcl/source/accessibility/AccessibleGridControl.cxx +++ /dev/null @@ -1,352 +0,0 @@ -/* -*- 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 <accessibility/AccessibleGridControl.hxx> -#include <accessibility/AccessibleGridControlTable.hxx> -#include <accessibility/AccessibleGridControlHeader.hxx> -#include <com/sun/star/accessibility/AccessibleEventId.hpp> -#include <com/sun/star/accessibility/AccessibleRole.hpp> -#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <utility> -#include <vcl/accessibletable.hxx> -#include <vcl/svapp.hxx> -#include <vcl/unohelp.hxx> - -namespace accessibility -{ - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::accessibility; -using namespace ::vcl; -using namespace ::vcl::table; - -AccessibleGridControl::AccessibleGridControl( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator, - ::vcl::table::IAccessibleTable& _rTable ) - : AccessibleGridControlBase(_rxParent, _rTable, AccessibleTableControlObjType::GRIDCONTROL), - m_aCreator(_rxCreator) -{ -} - - -void SAL_CALL AccessibleGridControl::disposing() -{ - SolarMutexGuard g; - - m_aCreator.clear(); - - if ( m_xTable.is() ) - { - m_xTable->dispose(); - m_xTable.clear(); - } - if ( m_xRowHeaderBar.is() ) - { - m_xRowHeaderBar->dispose(); - m_xRowHeaderBar.clear(); - } - if ( m_xColumnHeaderBar.is() ) - { - m_xColumnHeaderBar->dispose(); - m_xColumnHeaderBar.clear(); - } - AccessibleGridControlBase::disposing(); -} - -sal_Int64 AccessibleGridControl::implGetAccessibleChildCount() -{ - return m_aTable.GetAccessibleControlCount(); -} - -// css::accessibility::XAccessibleContext --------------------------------------------------------- - - -sal_Int64 SAL_CALL AccessibleGridControl::getAccessibleChildCount() -{ - SolarMutexGuard aSolarGuard; - ensureIsAlive(); - return implGetAccessibleChildCount(); -} - - -css::uno::Reference< css::accessibility::XAccessible > SAL_CALL -AccessibleGridControl::getAccessibleChild( sal_Int64 nChildIndex ) -{ - SolarMutexGuard aSolarGuard; - - if (nChildIndex<0 || nChildIndex>=implGetAccessibleChildCount()) - throw IndexOutOfBoundsException(); - - css::uno::Reference< css::accessibility::XAccessible > xChild; - if (isAlive()) - { - if(nChildIndex == 0 && m_aTable.HasColHeader()) - { - if(!m_xColumnHeaderBar.is()) - { - m_xColumnHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable, - vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR); - } - xChild = m_xColumnHeaderBar.get(); - } - else if(m_aTable.HasRowHeader() && (nChildIndex == 1 || nChildIndex == 0)) - { - if(!m_xRowHeaderBar.is()) - { - m_xRowHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable, - vcl::table::AccessibleTableControlObjType::ROWHEADERBAR); - } - xChild = m_xRowHeaderBar.get(); - } - else - { - if(!m_xTable.is()) - { - m_xTable = new AccessibleGridControlTable(m_aCreator, m_aTable); - } - xChild = m_xTable.get(); - } - } - return xChild; -} - - -sal_Int16 SAL_CALL AccessibleGridControl::getAccessibleRole() -{ - SolarMutexGuard g; - - ensureIsAlive(); - return AccessibleRole::PANEL; -} - - -// css::accessibility::XAccessibleComponent ------------------------------------------------------- - -css::uno::Reference< css::accessibility::XAccessible > SAL_CALL -AccessibleGridControl::getAccessibleAtPoint( const awt::Point& rPoint ) -{ - SolarMutexGuard aSolarGuard; - ensureIsAlive(); - - sal_Int32 nIndex = 0; - if (m_aTable.ConvertPointToControlIndex(nIndex, vcl::unohelper::ConvertToVCLPoint(rPoint))) - return m_aTable.CreateAccessibleControl(nIndex); - else - { - // try whether point is in one of the fixed children - // (table, header bars, corner control) - Point aPoint(vcl::unohelper::ConvertToVCLPoint(rPoint)); - for (nIndex = 0; nIndex < 3; ++nIndex) - { - css::uno::Reference< css::accessibility::XAccessible > xCurrChild( implGetFixedChild( nIndex ) ); - css::uno::Reference< css::accessibility::XAccessibleComponent > - xCurrChildComp( xCurrChild, uno::UNO_QUERY ); - - if (xCurrChildComp.is() - && vcl::unohelper::ConvertToVCLRect(xCurrChildComp->getBounds()).Contains(aPoint)) - return xCurrChild; - } - } - return nullptr; -} - - -void SAL_CALL AccessibleGridControl::grabFocus() -{ - SolarMutexGuard aSolarGuard; - ensureIsAlive(); - m_aTable.GrabFocus(); -} - -// XServiceInfo --------------------------------------------------------------- -OUString SAL_CALL AccessibleGridControl::getImplementationName() -{ - return u"com.sun.star.accessibility.AccessibleGridControl"_ustr; -} - -// internal virtual methods --------------------------------------------------- - -tools::Rectangle AccessibleGridControl::implGetBoundingBox() -{ - vcl::Window* pParent = m_aTable.GetAccessibleParentWindow(); - assert(pParent && "implGetBoundingBox - missing parent window"); - return m_aTable.GetWindowExtentsRelative( *pParent ); -} - -AbsoluteScreenPixelRectangle AccessibleGridControl::implGetBoundingBoxOnScreen() -{ - return m_aTable.GetWindowExtentsAbsolute(); -} - -// internal helper methods ---------------------------------------------------- - -css::uno::Reference< css::accessibility::XAccessible > AccessibleGridControl::implGetTable() -{ - if( !m_xTable.is() ) - { - m_xTable = createAccessibleTable(); - } - return m_xTable; -} - -css::uno::Reference< css::accessibility::XAccessible > -AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType ) -{ - css::uno::Reference< css::accessibility::XAccessible > xRet; - rtl::Reference< AccessibleGridControlHeader >* pxMember = nullptr; - - if (eObjType == AccessibleTableControlObjType::ROWHEADERBAR) - pxMember = &m_xRowHeaderBar; - else if (eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR) - pxMember = &m_xColumnHeaderBar; - - if( pxMember ) - { - if( !pxMember->is() ) - { - *pxMember = new AccessibleGridControlHeader( - m_aCreator, m_aTable, eObjType ); - } - xRet = pxMember->get(); - } - return xRet; -} - -css::uno::Reference< css::accessibility::XAccessible > -AccessibleGridControl::implGetFixedChild( sal_Int64 nChildIndex ) -{ - css::uno::Reference< css::accessibility::XAccessible > xRet; - switch( nChildIndex ) - { - /** Child index of the column header bar (first row). */ - case 0: - xRet = implGetHeaderBar(AccessibleTableControlObjType::COLUMNHEADERBAR); - break; - /** Child index of the row header bar ("handle column"). */ - case 1: - xRet = implGetHeaderBar(AccessibleTableControlObjType::ROWHEADERBAR); - break; - /** Child index of the data table. */ - case 2: - xRet = implGetTable(); - break; - } - return xRet; -} - -rtl::Reference<AccessibleGridControlTable> AccessibleGridControl::createAccessibleTable() -{ - css::uno::Reference< css::accessibility::XAccessible > xCreator(m_aCreator); - OSL_ENSURE( xCreator.is(), "accessibility/AccessibleGridControl::createAccessibleTable: my creator died - how this?" ); - return new AccessibleGridControlTable( xCreator, m_aTable ); -} - -void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue) -{ - sal_Int64 nChildCount = implGetAccessibleChildCount(); - if(nChildCount != 0) - { - for(sal_Int64 i=0;i<nChildCount;i++) - { - css::uno::Reference< css::accessibility::XAccessible > xAccessible = getAccessibleChild(i); - if(css::uno::Reference< css::accessibility::XAccessible >(m_xTable) == xAccessible) - { - Reference<XAccessible> xCell = m_xTable->getAccessibleCellAt( - m_aTable.GetCurrentRow(), m_aTable.GetCurrentColumn()); - AccessibleGridControlTableCell* pCell = static_cast<AccessibleGridControlTableCell*>(xCell.get()); - pCell->commitEvent(_nEventId, _rNewValue, _rOldValue); - } - } - } - else - { - if ( m_xTable.is() ) - m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue); - } -} - -void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue) -{ - if ( !m_xTable.is() ) - return; - - if(_nEventId == AccessibleEventId::ACTIVE_DESCENDANT_CHANGED) - { - const sal_Int32 nCurrentRow = m_aTable.GetCurrentRow(); - const sal_Int32 nCurrentCol = m_aTable.GetCurrentColumn(); - css::uno::Reference< css::accessibility::XAccessible > xChild; - if (nCurrentRow > -1 && nCurrentCol > -1) - xChild = m_xTable->getAccessibleCellAt(nCurrentRow, nCurrentCol); - - m_xTable->commitEvent(_nEventId, Any(xChild),_rOldValue); - } - else - m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue); -} - -// = AccessibleGridControlAccess - - -AccessibleGridControlAccess::AccessibleGridControlAccess( - css::uno::Reference< css::accessibility::XAccessible > xParent, ::vcl::table::IAccessibleTable& rTable ) - : m_xParent(std::move( xParent )) - , m_pTable( & rTable ) -{ -} - - -AccessibleGridControlAccess::~AccessibleGridControlAccess() -{ -} - - -void AccessibleGridControlAccess::DisposeAccessImpl() -{ - SolarMutexGuard g; - - m_pTable = nullptr; - if (m_xContext.is()) - { - m_xContext->dispose(); - m_xContext.clear(); - } -} - - -css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlAccess::getAccessibleContext() -{ - SolarMutexGuard g; - - // if the context died meanwhile (we're no listener, so it won't tell us explicitly when this happens), - // then reset and re-create. - if ( m_xContext.is() && !m_xContext->isAlive() ) - m_xContext = nullptr; - - if (!m_xContext.is() && m_pTable) - m_xContext = new AccessibleGridControl(m_xParent, this, *m_pTable); - - return m_xContext; -} - - -} // namespace accessibility - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/accessibility/AccessibleGridControlBase.cxx b/vcl/source/accessibility/AccessibleGridControlBase.cxx deleted file mode 100644 index 52d9763ad50f..000000000000 --- a/vcl/source/accessibility/AccessibleGridControlBase.cxx +++ /dev/null @@ -1,455 +0,0 @@ -/* -*- 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 <accessibility/AccessibleGridControlBase.hxx> -#include <utility> -#include <vcl/accessibletable.hxx> -#include <vcl/svapp.hxx> -#include <vcl/unohelp.hxx> -#include <vcl/window.hxx> -#include <cppuhelper/supportsservice.hxx> -#include <sal/types.h> - -#include <com/sun/star/accessibility/AccessibleRole.hpp> -#include <com/sun/star/accessibility/AccessibleStateType.hpp> -#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp> -#include <unotools/accessiblerelationsethelper.hxx> -#include <sal/log.hxx> - -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Any; - -using namespace ::com::sun::star; -using namespace ::com::sun::star::accessibility; -using namespace ::comphelper; -using namespace ::vcl; -using namespace ::vcl::table; - - -namespace accessibility { - -using namespace com::sun::star::accessibility::AccessibleStateType; - - -AccessibleGridControlBase::AccessibleGridControlBase( - css::uno::Reference< css::accessibility::XAccessible > xParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ) : - AccessibleGridControlImplHelper( m_aMutex ), - m_xParent(std::move( xParent )), - m_aTable( rTable), - m_eObjType( eObjType ), - m_aClientId(0) -{ -} - -AccessibleGridControlBase::~AccessibleGridControlBase() -{ - if( isAlive() ) - { - // increment ref count to prevent double call of Dtor - osl_atomic_increment( &m_refCount ); - dispose(); - } -} - -void SAL_CALL AccessibleGridControlBase::disposing() -{ - SolarMutexGuard g; - - if ( getClientId( ) ) - { - AccessibleEventNotifier::TClientId nId( getClientId( ) ); - setClientId( 0 ); - AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this ); - } - - m_xParent = nullptr; - //m_aTable = NULL; -} - -// css::accessibility::XAccessibleContext - -css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent() -{ - SolarMutexGuard g; - - ensureIsAlive(); - return m_xParent; -} - -sal_Int64 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent() -{ - SolarMutexGuard g; - - ensureIsAlive(); - - // -1 for child not found/no parent (according to specification) - sal_Int64 nRet = -1; - - css::uno::Reference< uno::XInterface > xMeMyselfAndI( static_cast< css::accessibility::XAccessibleContext* >( this ), uno::UNO_QUERY ); - - // iterate over parent's children and search for this object - if( m_xParent.is() ) - { - css::uno::Reference< css::accessibility::XAccessibleContext > - xParentContext( m_xParent->getAccessibleContext() ); - if( xParentContext.is() ) - { - css::uno::Reference< uno::XInterface > xChild; - - sal_Int64 nChildCount = xParentContext->getAccessibleChildCount(); - for( sal_Int64 nChild = 0; nChild < nChildCount; ++nChild ) - { - xChild.set(xParentContext->getAccessibleChild( nChild ), css::uno::UNO_QUERY); - if ( xMeMyselfAndI.get() == xChild.get() ) - { - nRet = nChild; - break; - } - } - } - } - return nRet; -} - -OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription() -{ - SolarMutexGuard g; - - ensureIsAlive(); - return m_aTable.GetAccessibleObjectDescription(m_eObjType); -} - -OUString SAL_CALL AccessibleGridControlBase::getAccessibleName() -{ - SolarMutexGuard g; - - ensureIsAlive(); - return m_aTable.GetAccessibleObjectName(m_eObjType, 0, 0); -} - -css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL -AccessibleGridControlBase::getAccessibleRelationSet() -{ - SolarMutexGuard g; - - ensureIsAlive(); - // GridControl does not have relations. - return new utl::AccessibleRelationSetHelper; -} - -sal_Int64 SAL_CALL -AccessibleGridControlBase::getAccessibleStateSet() -{ - SolarMutexGuard aSolarGuard; - - // don't check whether alive -> StateSet may contain DEFUNC - return implCreateStateSet(); -} - -lang::Locale SAL_CALL AccessibleGridControlBase::getLocale() -{ - SolarMutexGuard g; - - ensureIsAlive(); - if( m_xParent.is() ) - { - css::uno::Reference< css::accessibility::XAccessibleContext > - xParentContext( m_xParent->getAccessibleContext() ); - if( xParentContext.is() ) - return xParentContext->getLocale(); - } - throw IllegalAccessibleComponentStateException(); -} - -// css::accessibility::XAccessibleComponent - -sal_Bool SAL_CALL AccessibleGridControlBase::containsPoint( const awt::Point& rPoint ) -{ - return tools::Rectangle(Point(), getBoundingBox().GetSize()) - .Contains(vcl::unohelper::ConvertToVCLPoint(rPoint)); -} - -awt::Rectangle SAL_CALL AccessibleGridControlBase::getBounds() -{ - return vcl::unohelper::ConvertToAWTRect(getBoundingBox()); -} - -awt::Point SAL_CALL AccessibleGridControlBase::getLocation() -{ - return vcl::unohelper::ConvertToAWTPoint(getBoundingBox().TopLeft()); -} - -awt::Point SAL_CALL AccessibleGridControlBase::getLocationOnScreen() -{ - return vcl::unohelper::ConvertToAWTPoint(getBoundingBoxOnScreen().TopLeft()); -} - -awt::Size SAL_CALL AccessibleGridControlBase::getSize() -{ - return vcl::unohelper::ConvertToAWTSize(getBoundingBox().GetSize()); -} - -// css::accessibility::XAccessibleEventBroadcaster - -void SAL_CALL AccessibleGridControlBase::addAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& _rxListener ) -{ - if ( _rxListener.is() ) - { - SolarMutexGuard g; - - if ( !getClientId( ) ) - setClientId( AccessibleEventNotifier::registerClient( ) ); - - AccessibleEventNotifier::addEventListener( getClientId( ), _rxListener ); - } -} - -void SAL_CALL AccessibleGridControlBase::removeAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& _rxListener ) -{ - if( !(_rxListener.is() && getClientId( )) ) - return; - - SolarMutexGuard g; - - sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( getClientId( ), _rxListener ); - if ( !nListenerCount ) - { - // no listeners anymore - // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client), - // and at least to us not firing any events anymore, in case somebody calls - // NotifyAccessibleEvent, again - AccessibleEventNotifier::TClientId nId( getClientId( ) ); - setClientId( 0 ); - AccessibleEventNotifier::revokeClient( nId ); - } -} - -// XTypeProvider - -Sequence< sal_Int8 > SAL_CALL AccessibleGridControlBase::getImplementationId() -{ - return css::uno::Sequence<sal_Int8>(); -} - -// XServiceInfo - -sal_Bool SAL_CALL AccessibleGridControlBase::supportsService( - const OUString& rServiceName ) -{ - return cppu::supportsService(this, rServiceName); -} - -Sequence< OUString > SAL_CALL AccessibleGridControlBase::getSupportedServiceNames() -{ - return { u"com.sun.star.accessibility.AccessibleContext"_ustr }; -} -// internal virtual methods - -bool AccessibleGridControlBase::implIsShowing() -{ - bool bShowing = false; - if( m_xParent.is() ) - { - css::uno::Reference< css::accessibility::XAccessibleComponent > - xParentComp( m_xParent->getAccessibleContext(), uno::UNO_QUERY ); - if( xParentComp.is() ) - bShowing = implGetBoundingBox().Overlaps( - vcl::unohelper::ConvertToVCLRect(xParentComp->getBounds())); - } - return bShowing; -} - -sal_Int64 AccessibleGridControlBase::implCreateStateSet() -{ - sal_Int64 nStateSet = 0; - - if( isAlive() ) - { - // SHOWING done with m_xParent - if( implIsShowing() ) - nStateSet |= AccessibleStateType::SHOWING; - // GridControl fills StateSet with states depending on object type - m_aTable.FillAccessibleStateSet( nStateSet, getType() ); - } - else - nStateSet |= AccessibleStateType::DEFUNC; - return nStateSet; -} - -// internal helper methods - -bool AccessibleGridControlBase::isAlive() const -{ - ::osl::MutexGuard g(m_aMutex); // guards rBHelper members - return !rBHelper.bDisposed && !rBHelper.bInDispose; -} - -void AccessibleGridControlBase::ensureIsAlive() const -{ - if( !isAlive() ) - throw lang::DisposedException(); -} - -tools::Rectangle AccessibleGridControlBase::getBoundingBox() -{ - SolarMutexGuard aSolarGuard; - ensureIsAlive(); - tools::Rectangle aRect = implGetBoundingBox(); - if ( aRect.Left() == 0 && aRect.Top() == 0 && aRect.Right() == 0 && aRect.Bottom() == 0 ) - { - SAL_WARN( "accessibility", "rectangle doesn't exist" ); - } - return aRect; -} - -AbsoluteScreenPixelRectangle AccessibleGridControlBase::getBoundingBoxOnScreen() -{ - SolarMutexGuard aSolarGuard; - ensureIsAlive(); - AbsoluteScreenPixelRectangle aRect = implGetBoundingBoxOnScreen(); - if ( aRect.Left() == 0 && aRect.Top() == 0 && aRect.Right() == 0 && aRect.Bottom() == 0 ) - { - SAL_WARN( "accessibility", "rectangle doesn't exist" ); - } - return aRect; -} - -void AccessibleGridControlBase::commitEvent( - sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue ) -{ - SolarMutexGuard g; - - if ( !getClientId( ) ) - // if we don't have a client id for the notifier, then we don't have listeners, then - // we don't need to notify anything - return; - - // build an event object - AccessibleEventObject aEvent(*this, _nEventId, _rNewValue, _rOldValue, -1); - - // let the notifier handle this event - - AccessibleEventNotifier::addEvent( getClientId( ), aEvent ); -} - -sal_Int16 SAL_CALL AccessibleGridControlBase::getAccessibleRole() -{ - ensureIsAlive(); - sal_Int16 nRole = AccessibleRole::UNKNOWN; - switch ( m_eObjType ) - { - case AccessibleTableControlObjType::ROWHEADERCELL: - nRole = AccessibleRole::ROW_HEADER; - break; - case AccessibleTableControlObjType::COLUMNHEADERCELL: - nRole = AccessibleRole::COLUMN_HEADER; - break; - case AccessibleTableControlObjType::COLUMNHEADERBAR: - case AccessibleTableControlObjType::ROWHEADERBAR: - case AccessibleTableControlObjType::TABLE: - nRole = AccessibleRole::TABLE; - break; - case AccessibleTableControlObjType::TABLECELL: - nRole = AccessibleRole::TABLE_CELL; - break; - case AccessibleTableControlObjType::GRIDCONTROL: - nRole = AccessibleRole::PANEL; - break; - } - return nRole; -} - -css::uno::Reference<css::accessibility::XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleAtPoint( const css::awt::Point& ) -{ - return nullptr; -} - -sal_Int32 SAL_CALL AccessibleGridControlBase::getForeground( ) -{ - SolarMutexGuard aSolarGuard; - - ensureIsAlive(); - - Color nColor; - vcl::Window* pInst = m_aTable.GetWindowInstance(); - if ( pInst ) - { - if ( pInst->IsControlForeground() ) - nColor = pInst->GetControlForeground(); - else - { - vcl::Font aFont; - if ( pInst->IsControlFont() ) - aFont = pInst->GetControlFont(); - else - aFont = pInst->GetFont(); - nColor = aFont.GetColor(); - } - } - return sal_Int32(nColor); -} - -sal_Int32 SAL_CALL AccessibleGridControlBase::getBackground( ) -{ - SolarMutexGuard aSolarGuard; - - ensureIsAlive(); - Color nColor; - vcl::Window* pInst = m_aTable.GetWindowInstance(); - if ( pInst ) - { - if ( pInst->IsControlBackground() ) - nColor = pInst->GetControlBackground(); - else - nColor = pInst->GetBackground().GetColor(); - } - return sal_Int32(nColor); -} - - -GridControlAccessibleElement::GridControlAccessibleElement( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ) - : GridControlAccessibleElement_Base(rxParent, rTable, eObjType) -{ -} - -// css::accessibility::XAccessible - -css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL GridControlAccessibleElement::getAccessibleContext() -{ - SolarMutexGuard g; - - ensureIsAlive(); - return this; -} - -GridControlAccessibleElement::~GridControlAccessibleElement( ) -{ -} - - -} // namespace accessibility - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/accessibility/AccessibleTextAttributeHelper.cxx b/vcl/source/accessibility/AccessibleTextAttributeHelper.cxx index 23f3d66c990d..f0c08a0f43f3 100644 --- a/vcl/source/accessibility/AccessibleTextAttributeHelper.cxx +++ b/vcl/source/accessibility/AccessibleTextAttributeHelper.cxx @@ -317,15 +317,24 @@ static OUString ConvertUnoToIAccessible2TextAttributes( } } - // so far, "ParaAdjust" is the only UNO text attribute that - // maps to an object attribute for IAccessible2 ("text-align") - if (sAttribute.isEmpty() && (eAttributeType & IA2AttributeType::ObjectAttributes) - && prop.Name == "ParaAdjust") + // UNO text attributes that map to IAccessible2 object attributes, + // see https://github.com/LinuxA11y/IAccessible2/blob/master/spec/objectattributes.md + if (sAttribute.isEmpty() && (eAttributeType & IA2AttributeType::ObjectAttributes)) { - sAttribute = "text-align"; - const css::style::ParagraphAdjust eParaAdjust - = static_cast<css::style::ParagraphAdjust>(*o3tl::doAccess<sal_Int16>(prop.Value)); - sValue = lcl_ConvertParagraphAdjust(eParaAdjust); + if (prop.Name == "ParaAdjust") + { + sAttribute = "text-align"; + const css::style::ParagraphAdjust eParaAdjust + = static_cast<css::style::ParagraphAdjust>( + *o3tl::doAccess<sal_Int16>(prop.Value)); + sValue = lcl_ConvertParagraphAdjust(eParaAdjust); + } + else if (prop.Name == "ParaFirstLineIndent") + { + sAttribute = u"text-indent"_ustr; + const sal_Int32 nFirstLineIndent = *o3tl::doAccess<sal_Int32>(prop.Value); + sValue = OUString::number(nFirstLineIndent / 100) + u"mm"_ustr; + } } if (!sAttribute.isEmpty() && !sValue.isEmpty()) diff --git a/vcl/source/accessibility/acc_factory.cxx b/vcl/source/accessibility/acc_factory.cxx index 65a634c0f405..010110d9941c 100644 --- a/vcl/source/accessibility/acc_factory.cxx +++ b/vcl/source/accessibility/acc_factory.cxx @@ -49,7 +49,6 @@ #include <accessibility/AccessibleBrowseBoxTableCell.hxx> #include <accessibility/AccessibleBrowseBoxHeaderCell.hxx> #include <accessibility/AccessibleBrowseBoxCheckBoxCell.hxx> -#include <accessibility/AccessibleGridControl.hxx> #include <accessibility/accessibleeditbrowseboxcell.hxx> #include <com/sun/star/accessibility/AccessibleRole.hpp> #include <vcl/toolkit/lstbox.hxx> @@ -57,14 +56,12 @@ #include <vcl/toolkit/fixed.hxx> #include <vcl/toolkit/fixedhyper.hxx> #include <vcl/accessibility/vclxaccessiblecomponent.hxx> -#include <vcl/accessibletable.hxx> using namespace ::accessibility; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::awt; using namespace ::com::sun::star::accessibility; using namespace ::vcl; -using namespace ::vcl::table; namespace { @@ -191,13 +188,6 @@ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext(Forma return new SVTXAccessibleNumericField(pFormattedField); } -vcl::IAccessibleTabListBox* -AccessibleFactory::createAccessibleTabListBox(const Reference<XAccessible>& rxParent, - SvHeaderTabListBox& rBox) -{ - return new AccessibleTabListBox( rxParent, rBox ); -} - rtl::Reference<vcl::IAccessibleBrowseBox> AccessibleFactory::createAccessibleBrowseBox(const Reference<XAccessible>& _rxParent, vcl::IAccessibleTableProvider& _rBrowseBox) @@ -205,13 +195,6 @@ AccessibleFactory::createAccessibleBrowseBox(const Reference<XAccessible>& _rxPa return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox ); } -rtl::Reference<IAccessibleTableControl> -AccessibleFactory::createAccessibleTableControl(const Reference<XAccessible>& _rxParent, - IAccessibleTable& _rTable) -{ - return new AccessibleGridControlAccess( _rxParent, _rTable ); -} - Reference<XAccessible> AccessibleFactory::createAccessibleIconChoiceCtrl(SvtIconChoiceCtrl& _rIconCtrl, const Reference<XAccessible>& _xParent) diff --git a/vcl/source/accessibility/accessiblelistboxentry.cxx b/vcl/source/accessibility/accessiblelistboxentry.cxx index 25ba2632137d..993627bcc4f1 100644 --- a/vcl/source/accessibility/accessiblelistboxentry.cxx +++ b/vcl/source/accessibility/accessiblelistboxentry.cxx @@ -55,27 +55,16 @@ namespace accessibility AccessibleListBoxEntry::AccessibleListBoxEntry( SvTreeListBox& _rListBox, SvTreeListEntry& rEntry, AccessibleListBox & rListBox) - : AccessibleListBoxEntry_BASE( m_aMutex ) + : AccessibleListBoxEntry_BASE() , m_pTreeListBox( &_rListBox ) , m_pSvLBoxEntry(&rEntry) - , m_nClientId( 0 ) , m_wListBox(&rListBox) { m_pTreeListBox->AddEventListener( LINK( this, AccessibleListBoxEntry, WindowEventListener ) ); _rListBox.FillEntryPath( m_pSvLBoxEntry, m_aEntryPath ); } - AccessibleListBoxEntry::~AccessibleListBoxEntry() - { - if ( IsAlive_Impl() ) - { - // increment ref count to prevent double call of Dtor - osl_atomic_increment( &m_refCount ); - dispose(); - } - } - IMPL_LINK( AccessibleListBoxEntry, WindowEventListener, VclWindowEvent&, rEvent, void ) { OSL_ENSURE( rEvent.GetWindow() , "AccessibleListBoxEntry::WindowEventListener: no event window!" ); @@ -114,18 +103,6 @@ namespace accessibility } } - void AccessibleListBoxEntry::NotifyAccessibleEvent( sal_Int16 _nEventId, - const css::uno::Any& _aOldValue, - const css::uno::Any& _aNewValue ) - { - Reference< uno::XInterface > xSource( *this ); - AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue, -1 ); - - if (m_nClientId) - comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEventObj ); - } - - tools::Rectangle AccessibleListBoxEntry::GetBoundingBox_Impl() const { tools::Rectangle aRect; @@ -146,21 +123,6 @@ namespace accessibility return aRect; } - tools::Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen_Impl() const - { - tools::Rectangle aRect; - SvTreeListEntry* pEntry = m_pTreeListBox->GetEntryFromPath( m_aEntryPath ); - if ( pEntry ) - { - aRect = m_pTreeListBox->GetBoundingRect( pEntry ); - Point aTopLeft = aRect.TopLeft(); - aTopLeft += Point(m_pTreeListBox->GetWindowExtentsAbsolute().TopLeft()); - aRect = tools::Rectangle( aTopLeft, aRect.GetSize() ); - } - - return aRect; - } - bool AccessibleListBoxEntry::IsAlive_Impl() const { return !rBHelper.bDisposed && !rBHelper.bInDispose && (m_pTreeListBox != nullptr); @@ -184,24 +146,6 @@ namespace accessibility return bShowing; } - tools::Rectangle AccessibleListBoxEntry::GetBoundingBox() - { - SolarMutexGuard aSolarGuard; - ::osl::MutexGuard aGuard( m_aMutex ); - - EnsureIsAlive(); - return GetBoundingBox_Impl(); - } - - tools::Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen() - { - SolarMutexGuard aSolarGuard; - ::osl::MutexGuard aGuard( m_aMutex ); - - EnsureIsAlive(); - return GetBoundingBoxOnScreen_Impl(); - } - void AccessibleListBoxEntry::CheckActionIndex(sal_Int32 nIndex) { if (nIndex < 0 || nIndex >= getAccessibleActionCount()) @@ -232,10 +176,9 @@ namespace accessibility nEndIndex = 0; } - // XTypeProvider - Sequence< sal_Int8 > AccessibleListBoxEntry::getImplementationId() + css::awt::Rectangle AccessibleListBoxEntry::implGetBounds() { - return css::uno::Sequence<sal_Int8>(); + return vcl::unohelper::ConvertToAWTRect(GetBoundingBox_Impl()); } @@ -248,13 +191,7 @@ namespace accessibility Reference< XAccessible > xKeepAlive( this ); - // Send a disposing to all listeners. - if ( m_nClientId ) - { - ::comphelper::AccessibleEventNotifier::TClientId nId = m_nClientId; - m_nClientId = 0; - ::comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this ); - } + OAccessibleComponentHelper::disposing(); // clean up m_wListBox.clear(); @@ -520,12 +457,6 @@ namespace accessibility // XAccessibleComponent - sal_Bool SAL_CALL AccessibleListBoxEntry::containsPoint( const awt::Point& rPoint ) - { - return tools::Rectangle(Point(), GetBoundingBox().GetSize()) - .Contains(vcl::unohelper::ConvertToVCLPoint(rPoint)); - } - Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleAtPoint( const awt::Point& _aPoint ) { SolarMutexGuard aSolarGuard; @@ -547,26 +478,6 @@ namespace accessibility return xAcc; } - awt::Rectangle SAL_CALL AccessibleListBoxEntry::getBounds( ) - { - return vcl::unohelper::ConvertToAWTRect(GetBoundingBox()); - } - - awt::Point SAL_CALL AccessibleListBoxEntry::getLocation( ) - { - return vcl::unohelper::ConvertToAWTPoint(GetBoundingBox().TopLeft()); - } - - awt::Point SAL_CALL AccessibleListBoxEntry::getLocationOnScreen( ) - { - return vcl::unohelper::ConvertToAWTPoint(GetBoundingBoxOnScreen().TopLeft()); - } - - awt::Size SAL_CALL AccessibleListBoxEntry::getSize( ) - { - return vcl::unohelper::ConvertToAWTSize(GetBoundingBox().GetSize()); - } - void SAL_CALL AccessibleListBoxEntry::grabFocus( ) { // do nothing, because no focus for each item @@ -624,7 +535,7 @@ namespace accessibility if ( pEntry ) { vcl::ControlLayoutData aLayoutData; - tools::Rectangle aItemRect = GetBoundingBox(); + tools::Rectangle aItemRect = GetBoundingBox_Impl(); m_pTreeListBox->RecordLayoutData( &aLayoutData, aItemRect ); tools::Rectangle aCharRect = aLayoutData.GetCharacterBounds( nIndex ); aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() ); @@ -646,7 +557,7 @@ namespace accessibility if ( pEntry ) { vcl::ControlLayoutData aLayoutData; - tools::Rectangle aItemRect = GetBoundingBox(); + tools::Rectangle aItemRect = GetBoundingBox_Impl(); m_pTreeListBox->RecordLayoutData( &aLayoutData, aItemRect ); Point aPnt(vcl::unohelper::ConvertToVCLPoint(aPoint)); aPnt += aItemRect.TopLeft(); @@ -682,40 +593,6 @@ namespace accessibility return false; } - // XAccessibleEventBroadcaster - - void SAL_CALL AccessibleListBoxEntry::addAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener ) - { - if (xListener.is()) - { - ::osl::MutexGuard aGuard( m_aMutex ); - if (!m_nClientId) - m_nClientId = comphelper::AccessibleEventNotifier::registerClient( ); - comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener ); - } - } - - void SAL_CALL AccessibleListBoxEntry::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener ) - { - if (!xListener.is()) - return; - - ::osl::MutexGuard aGuard( m_aMutex ); - - sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener ); - if ( !nListenerCount ) - { - // no listeners anymore - // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client), - // and at least to us not firing any events anymore, in case somebody calls - // NotifyAccessibleEvent, again - sal_Int32 nId = m_nClientId; - m_nClientId = 0; - comphelper::AccessibleEventNotifier::revokeClient( nId ); - - } - } - // XAccessibleAction sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleActionCount( ) diff --git a/vcl/source/accessibility/vclxaccessiblecomponent.cxx b/vcl/source/accessibility/vclxaccessiblecomponent.cxx index a7a598d67d44..f624af50cccc 100644 --- a/vcl/source/accessibility/vclxaccessiblecomponent.cxx +++ b/vcl/source/accessibility/vclxaccessiblecomponent.cxx @@ -546,46 +546,6 @@ uno::Reference< accessibility::XAccessible > VCLXAccessibleComponent::getAccessi return xAcc; } -sal_Int64 VCLXAccessibleComponent::getAccessibleIndexInParent( ) -{ - OExternalLockGuard aGuard( this ); - - sal_Int64 nIndex = -1; - - if ( GetWindow() ) - { - vcl::Window* pParent = GetWindow()->GetAccessibleParentWindow(); - if ( pParent ) - { - // Iterate over all the parent's children and search for this object. - // this should be compatible with the code in SVX - uno::Reference< accessibility::XAccessible > xParentAcc( pParent->GetAccessible() ); - if ( xParentAcc.is() ) - { - uno::Reference< accessibility::XAccessibleContext > xParentContext ( xParentAcc->getAccessibleContext() ); - if ( xParentContext.is() ) - { - sal_Int64 nChildCount = xParentContext->getAccessibleChildCount(); - for ( sal_Int64 i = 0; i < nChildCount; i++ ) - { - uno::Reference< accessibility::XAccessible > xChild( xParentContext->getAccessibleChild(i) ); - if ( xChild.is() ) - { - uno::Reference< accessibility::XAccessibleContext > xChildContext = xChild->getAccessibleContext(); - if ( xChildContext == static_cast<accessibility::XAccessibleContext*>(this) ) - { - nIndex = i; - break; - } - } - } - } - } - } - } - return nIndex; -} - sal_Int16 VCLXAccessibleComponent::getAccessibleRole( ) { OExternalLockGuard aGuard( this ); diff --git a/vcl/source/app/IconThemeScanner.cxx b/vcl/source/app/IconThemeScanner.cxx index 9cc5fc83d54d..70f8c64f52f1 100644 --- a/vcl/source/app/IconThemeScanner.cxx +++ b/vcl/source/app/IconThemeScanner.cxx @@ -9,155 +9,47 @@ #include <sal/config.h> #include <sal/log.hxx> - -#include <deque> - #include <IconThemeScanner.hxx> -#include <osl/file.hxx> #include <salhelper/linkhelper.hxx> #include <unotools/pathoptions.hxx> #include <vcl/IconThemeInfo.hxx> #include <o3tl/string_view.hxx> -namespace vcl { - -namespace { - -// set the status of a file. Returns false if the status could not be determined. -bool set_file_status(osl::FileStatus& status, const OUString& file) +namespace vcl { - osl::DirectoryItem dirItem; - osl::FileBase::RC retvalGet = osl::DirectoryItem::get(file, dirItem); - if (retvalGet != osl::FileBase::E_None) { - SAL_WARN("vcl.app", "Could not determine status for file '" << file << "'."); - return false; - } - osl::FileBase::RC retvalStatus = dirItem.getFileStatus(status); - if (retvalStatus != osl::FileBase::E_None) { - SAL_WARN("vcl.app", "Could not determine status for file '" << file << "'."); - return false; - } - return true; -} - -OUString convert_to_absolute_path(const OUString& path) -{ - salhelper::LinkResolver resolver(0); - osl::FileBase::RC rc = resolver.fetchFileStatus(path); - if (rc != osl::FileBase::E_None) { - SAL_WARN("vcl.app", "Could not resolve path '" << path << "' to search for icon themes."); - if (rc == osl::FileBase::E_MULTIHOP) - { - throw std::runtime_error("Provided a recursive symlink to an icon theme directory that could not be resolved."); - } - } - return resolver.m_aStatus.getFileURL(); -} - -} IconThemeScanner::IconThemeScanner() = default; -IconThemeScanner::IconThemeScanner(std::u16string_view paths) -{ - mFoundIconThemes.clear(); - - std::deque<OUString> aPaths; - - sal_Int32 nIndex = 0; - do - { - aPaths.push_front(OUString(o3tl::getToken(paths, 0, ';', nIndex))); - } - while (nIndex >= 0); - - for (const auto& path : aPaths) - { - osl::FileStatus fileStatus(osl_FileStatus_Mask_Type); - bool couldSetFileStatus = set_file_status(fileStatus, path); - if (!couldSetFileStatus) { - continue; - } - - if (!fileStatus.isDirectory()) { - SAL_INFO("vcl.app", "Cannot search for icon themes in '"<< path << "'. It is not a directory."); - continue; - } - - std::vector<OUString> iconThemePaths = ReadIconThemesFromPath(path); - if (iconThemePaths.empty()) { - SAL_WARN("vcl.app", "Could not find any icon themes in the provided directory ('" <<path<<"'."); - continue; - } - for (auto const& iconThemePath : iconThemePaths) - { - AddIconThemeByPath(iconThemePath); - } - } -} - -bool -IconThemeScanner::AddIconThemeByPath(const OUString &url) +bool IconThemeScanner::addResource(const OUString& rURL) { - if (!IconThemeInfo::UrlCanBeParsed(url)) { + if (!IconThemeInfo::UrlCanBeParsed(rURL)) { return false; } - SAL_INFO("vcl.app", "Found a file that seems to be an icon theme: '" << url << "'" ); - IconThemeInfo newTheme(url); + SAL_INFO("vcl.app", "Found a file that seems to be an icon theme: '" << rURL << "'" ); + IconThemeInfo newTheme(rURL); mFoundIconThemes.push_back(newTheme); SAL_INFO("vcl.app", "Adding the file as '" << newTheme.GetDisplayName() << "' with id '" << newTheme.GetThemeId() << "'."); return true; } -/*static*/ std::vector<OUString> -IconThemeScanner::ReadIconThemesFromPath(const OUString& dir) -{ - std::vector<OUString> found; - SAL_INFO("vcl.app", "Scanning directory '" << dir << " for icon themes."); - - osl::Directory dirToScan(dir); - osl::FileBase::RC retvalOpen = dirToScan.open(); - if (retvalOpen != osl::FileBase::E_None) { - return found; - } - - osl::DirectoryItem directoryItem; - while (dirToScan.getNextItem(directoryItem) == osl::FileBase::E_None) { - osl::FileStatus status(osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileURL | osl_FileStatus_Mask_FileName); - osl::FileBase::RC retvalStatus = directoryItem.getFileStatus(status); - if (retvalStatus != osl::FileBase::E_None) { - continue; - } - - OUString filename = convert_to_absolute_path(status.getFileURL()); - if (!FileIsValidIconTheme(filename)) { - continue; - } - found.push_back(filename); - } - return found; -} - -/*static*/ bool -IconThemeScanner::FileIsValidIconTheme(const OUString& filename) +bool IconThemeScanner::isValidResource(const OUString& filename) { // check whether we can construct an IconThemeInfo from it - if (!IconThemeInfo::UrlCanBeParsed(filename)) { + if (!IconThemeInfo::UrlCanBeParsed(filename)) + { SAL_INFO("vcl.app", "File '" << filename << "' does not seem to be an icon theme."); return false; } osl::FileStatus fileStatus(osl_FileStatus_Mask_Type); - bool couldSetFileStatus = set_file_status(fileStatus, filename); - if (!couldSetFileStatus) { + if (!vcl::file::readFileStatus(fileStatus, filename)) return false; - } - if (!fileStatus.isRegular()) { + if (!fileStatus.isRegular()) return false; - } + return true; } diff --git a/vcl/source/app/UserResourceScanner.cxx b/vcl/source/app/UserResourceScanner.cxx new file mode 100644 index 000000000000..353004712c44 --- /dev/null +++ b/vcl/source/app/UserResourceScanner.cxx @@ -0,0 +1,137 @@ +/* -*- 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/UserResourceScanner.hxx> + +#include <sal/config.h> +#include <sal/log.hxx> + +#include <salhelper/linkhelper.hxx> +#include <unotools/pathoptions.hxx> +#include <o3tl/string_view.hxx> + +#include <deque> + +namespace vcl +{ +namespace +{ +OUString convertToAbsolutePath(const OUString& path) +{ + salhelper::LinkResolver resolver(0); + osl::FileBase::RC rc = resolver.fetchFileStatus(path); + if (rc != osl::FileBase::E_None) + { + SAL_WARN("vcl.app", "Could not resolve path '" << path << "' to search for icon themes."); + if (rc == osl::FileBase::E_MULTIHOP) + { + throw std::runtime_error("Provided a recursive symlink to an icon theme directory that " + "could not be resolved."); + } + } + return resolver.m_aStatus.getFileURL(); +} +} + +namespace file +{ +// read the status of a file. Returns false if the status could not be determined. +bool readFileStatus(osl::FileStatus& status, const OUString& file) +{ + osl::DirectoryItem dirItem; + osl::FileBase::RC retvalGet = osl::DirectoryItem::get(file, dirItem); + if (retvalGet != osl::FileBase::E_None) + { + SAL_WARN("vcl.app", "Could not determine status for file '" << file << "'."); + return false; + } + osl::FileBase::RC retvalStatus = dirItem.getFileStatus(status); + if (retvalStatus != osl::FileBase::E_None) + { + SAL_WARN("vcl.app", "Could not determine status for file '" << file << "'."); + return false; + } + return true; +} + +void splitPathString(std::u16string_view aPathString, std::deque<OUString>& rPaths) +{ + sal_Int32 nIndex = 0; + do + { + rPaths.push_front(OUString(o3tl::getToken(aPathString, 0, ';', nIndex))); + } while (nIndex >= 0); +} +} + +UserResourceScanner::UserResourceScanner() = default; + +void UserResourceScanner::addPaths(std::u16string_view aPathString) +{ + std::deque<OUString> aPaths; + vcl::file::splitPathString(aPathString, aPaths); + + for (const auto& path : aPaths) + { + osl::FileStatus aFileStatus(osl_FileStatus_Mask_Type); + + if (!vcl::file::readFileStatus(aFileStatus, path)) + continue; + + if (!aFileStatus.isDirectory()) + { + SAL_INFO("vcl.app", "Can not search for resource files in '" + << path << "'. It is not a directory."); + continue; + } + + std::vector<OUString> aResourcePaths = readFilesFromPath(path); + + if (aResourcePaths.empty()) + { + SAL_WARN("vcl.app", + "Could not find any file in the provided directory ('" << path << "'."); + continue; + } + + for (auto const& iconThemePath : aResourcePaths) + addResource(iconThemePath); + } +} + +std::vector<OUString> UserResourceScanner::readFilesFromPath(const OUString& dir) +{ + std::vector<OUString> found; + SAL_INFO("vcl", "Scanning directory '" << dir << " for potential resource files."); + + osl::Directory dirToScan(dir); + osl::FileBase::RC retvalOpen = dirToScan.open(); + if (retvalOpen != osl::FileBase::E_None) + return found; + + osl::DirectoryItem directoryItem; + while (dirToScan.getNextItem(directoryItem) == osl::FileBase::E_None) + { + osl::FileStatus status(osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileURL + | osl_FileStatus_Mask_FileName); + osl::FileBase::RC retvalStatus = directoryItem.getFileStatus(status); + if (retvalStatus != osl::FileBase::E_None) + continue; + + OUString filename = convertToAbsolutePath(status.getFileURL()); + if (isValidResource(filename)) + found.push_back(filename); + } + + return found; +} + +} // end namespace vcl + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index cca696e6245d..6fa75a18e258 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3875,8 +3875,8 @@ SalInstanceTreeView::SalInstanceTreeView(SvTabListBox* pTreeView, SalInstanceBui m_xTreeView->SetPopupMenuHdl(LINK(this, SalInstanceTreeView, PopupMenuHdl)); m_xTreeView->SetCustomRenderHdl(LINK(this, SalInstanceTreeView, CustomRenderHdl)); m_xTreeView->SetCustomMeasureHdl(LINK(this, SalInstanceTreeView, CustomMeasureHdl)); - const tools::Long aTabPositions[] = { 0 }; - m_xTreeView->SetTabs(SAL_N_ELEMENTS(aTabPositions), aTabPositions); + const std::vector<tools::Long> aTabPositions{ 0 }; + m_xTreeView->SetTabs(aTabPositions); LclHeaderTabListBox* pHeaderBox = dynamic_cast<LclHeaderTabListBox*>(m_xTreeView.get()); if (pHeaderBox) @@ -3956,7 +3956,7 @@ void SalInstanceTreeView::set_column_fixed_widths(const std::vector<int>& rWidth std::vector<tools::Long> aTabPositions{ 0 }; for (size_t i = 0; i < rWidths.size(); ++i) aTabPositions.push_back(aTabPositions[i] + rWidths[i]); - m_xTreeView->SetTabs(aTabPositions.size(), aTabPositions.data(), MapUnit::MapPixel); + m_xTreeView->SetTabs(aTabPositions, MapUnit::MapPixel); set_header_item_width(rWidths); // call Resize to recalculate based on the new tabs m_xTreeView->Resize(); @@ -5341,7 +5341,7 @@ IMPL_LINK(SalInstanceTreeView, EndDragHdl, HeaderBar*, pHeaderBar, void) for (int i = 0; i < pHeaderBar->GetItemCount() - 1; ++i) aTabPositions.push_back(aTabPositions[i] + pHeaderBar->GetItemSize(pHeaderBar->GetItemId(i))); - m_xTreeView->SetTabs(aTabPositions.size(), aTabPositions.data(), MapUnit::MapPixel); + m_xTreeView->SetTabs(aTabPositions, MapUnit::MapPixel); } IMPL_LINK(SalInstanceTreeView, HeaderBarClickedHdl, HeaderBar*, pHeaderBar, void) diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 6c69bda88a37..c6391bfdb3c3 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -209,8 +209,7 @@ struct ImplStyleData ToolbarIconSize mnToolbarIconSize = ToolbarIconSize::Unknown; StyleSettingsOptions mnOptions = StyleSettingsOptions::NONE; TriState meUseImagesInMenus = TRISTATE_INDET; - std::optional<vcl::IconThemeScanner> mutable - mIconThemeScanner; + std::shared_ptr<vcl::IconThemeScanner> mutable mpIconThemeScanner; vcl::IconThemeSelector mIconThemeSelector; OUString mIconTheme; @@ -233,6 +232,7 @@ struct ImplStyleData bool mbSkipDisabledInMenus : 1; bool mbHideDisabledMenuItems : 1; bool mbPreferredContextMenuShortcuts : 1; + bool mbSystemColorsLoaded : 1; //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise //primary means scroll by single page. Secondary button takes the alternative behaviour bool mbPrimaryButtonWarpsSlider : 1; @@ -589,6 +589,7 @@ void ImplStyleData::SetStandardStyles() mbSkipDisabledInMenus = false; mbHideDisabledMenuItems = false; mbPreferredContextMenuShortcuts = true; + mbSystemColorsLoaded = false; mbPrimaryButtonWarpsSlider = false; } @@ -603,6 +604,18 @@ StyleSettings::SetFaceColor( const Color& rColor ) mxData->maColors.maFaceColor = rColor; } +void +StyleSettings::SetSystemColorsLoaded( bool bLoaded ) +{ + mxData->mbSystemColorsLoaded = bLoaded; +} + +bool +StyleSettings::GetSystemColorsLoaded() const +{ + return mxData->mbSystemColorsLoaded; +} + const Color& StyleSettings::GetFaceColor() const { @@ -2233,6 +2246,7 @@ bool ImplStyleData::operator==(const ImplStyleData& rSet) const (mbSkipDisabledInMenus == rSet.mbSkipDisabledInMenus) && (mbHideDisabledMenuItems == rSet.mbHideDisabledMenuItems) && (mbPreferredContextMenuShortcuts == rSet.mbPreferredContextMenuShortcuts) && + (mbSystemColorsLoaded == rSet.mbSystemColorsLoaded) && (meContextMenuShortcuts == rSet.meContextMenuShortcuts) && (mbPrimaryButtonWarpsSlider == rSet.mbPrimaryButtonWarpsSlider) && (mnEdgeBlending == rSet.mnEdgeBlending) && @@ -2789,10 +2803,12 @@ StyleSettings::GetOptions() const std::vector<vcl::IconThemeInfo> const & StyleSettings::GetInstalledIconThemes() const { - if (!mxData->mIconThemeScanner) { - mxData->mIconThemeScanner.emplace(vcl::IconThemeScanner::GetStandardIconThemePath()); + if (!mxData->mpIconThemeScanner) + { + mxData->mpIconThemeScanner.reset(new vcl::IconThemeScanner); + mxData->mpIconThemeScanner->addPaths(vcl::IconThemeScanner::GetStandardIconThemePath()); } - return mxData->mIconThemeScanner->GetFoundIconThemes(); + return mxData->mpIconThemeScanner->GetFoundIconThemes(); } OUString diff --git a/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx b/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx index 36c9d6d19c69..866583d07a1e 100644 --- a/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx +++ b/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx @@ -61,30 +61,30 @@ struct DilateOp template <typename MorphologyOp, int nComponentWidth> struct Value { - static constexpr int nWidthBytes = nComponentWidth / 8; - static_assert(nWidthBytes * 8 == nComponentWidth); + static constexpr int mnWidthBytes = nComponentWidth / 8; + static_assert(mnWidthBytes * 8 == nComponentWidth); - sal_uInt8 aResult[nWidthBytes]; + sal_uInt8 maResult[mnWidthBytes]; // If we are at the start or at the end of the line, consider outside value Value(FilterSharedData const& rShared, bool bLookOutside) { - std::fill_n(aResult, nWidthBytes, + std::fill_n(maResult, mnWidthBytes, bLookOutside ? rShared.mnOutsideVal : MorphologyOp::initVal); } void apply(BitmapScopedReadAccess& pReadAccess, sal_Int32 x, sal_Int32 y, sal_uInt8* pHint = nullptr) { - sal_uInt8* pSource = (pHint ? pHint : pReadAccess->GetScanline(y)) + nWidthBytes * x; - std::transform(pSource, pSource + nWidthBytes, aResult, aResult, MorphologyOp::apply); + sal_uInt8* pSource = (pHint ? pHint : pReadAccess->GetScanline(y)) + mnWidthBytes * x; + std::transform(pSource, pSource + mnWidthBytes, maResult, maResult, MorphologyOp::apply); } void copy(BitmapScopedWriteAccess& pWriteAccess, sal_Int32 x, sal_Int32 y, sal_uInt8* pHint = nullptr) { - sal_uInt8* pDest = (pHint ? pHint : pWriteAccess->GetScanline(y)) + nWidthBytes * x; - std::copy_n(aResult, nWidthBytes, pDest); + sal_uInt8* pDest = (pHint ? pHint : pWriteAccess->GetScanline(y)) + mnWidthBytes * x; + std::copy_n(maResult, mnWidthBytes, pDest); } }; @@ -96,11 +96,11 @@ template <typename MorphologyOp> struct Value<MorphologyOp, 0> MorphologyOp::initVal, MorphologyOp::initVal, MorphologyOp::initVal }; - Color aResult; + Color maResult; // If we are at the start or at the end of the line, consider outside value Value(FilterSharedData const& rShared, bool bLookOutside) - : aResult(bLookOutside ? rShared.maOutsideColor : initColor) + : maResult(bLookOutside ? rShared.maOutsideColor : initColor) { } @@ -108,16 +108,16 @@ template <typename MorphologyOp> struct Value<MorphologyOp, 0> sal_uInt8* /*pHint*/ = nullptr) { const auto aSource = pReadAccess->GetColor(y, x); - aResult = Color(ColorAlpha, MorphologyOp::apply(aSource.GetAlpha(), aResult.GetAlpha()), - MorphologyOp::apply(aSource.GetRed(), aResult.GetRed()), - MorphologyOp::apply(aSource.GetGreen(), aResult.GetGreen()), - MorphologyOp::apply(aSource.GetBlue(), aResult.GetBlue())); + maResult = Color(ColorAlpha, MorphologyOp::apply(aSource.GetAlpha(), maResult.GetAlpha()), + MorphologyOp::apply(aSource.GetRed(), maResult.GetRed()), + MorphologyOp::apply(aSource.GetGreen(), maResult.GetGreen()), + MorphologyOp::apply(aSource.GetBlue(), maResult.GetBlue())); } void copy(BitmapScopedWriteAccess& pWriteAccess, sal_Int32 x, sal_Int32 y, sal_uInt8* /*pHint*/ = nullptr) { - pWriteAccess->SetPixel(y, x, aResult); + pWriteAccess->SetPixel(y, x, maResult); } }; @@ -351,7 +351,6 @@ Bitmap BitmapBasicMorphologyFilter::filter(Bitmap const& rBitmap) const case ScanlineFormat::N24BitTcBgr: runFilter<24>(bitmapCopy, m_eOp, m_nRadius, m_bUseValueOutside, m_nValueOutside); break; - case ScanlineFormat::N32BitTcMask: case ScanlineFormat::N32BitTcBgra: case ScanlineFormat::N32BitTcBgrx: runFilter<32>(bitmapCopy, m_eOp, m_nRadius, m_bUseValueOutside, m_nValueOutside); diff --git a/vcl/source/bitmap/BitmapColorQuantizationFilter.cxx b/vcl/source/bitmap/BitmapColorQuantizationFilter.cxx index e8bb7817b95c..500d3d22569b 100644 --- a/vcl/source/bitmap/BitmapColorQuantizationFilter.cxx +++ b/vcl/source/bitmap/BitmapColorQuantizationFilter.cxx @@ -27,17 +27,11 @@ BitmapEx BitmapColorQuantizationFilter::execute(BitmapEx const& aBitmapEx) const if (!pRAcc) return BitmapEx(); - auto const cappedNewColorCount = std::min(mnNewColorCount, sal_uInt16(256)); - const sal_uInt32 nValidBits = 4; - const sal_uInt32 nRightShiftBits = 8 - nValidBits; - const sal_uInt32 nLeftShiftBits1 = nValidBits; - const sal_uInt32 nLeftShiftBits2 = nValidBits << 1; const sal_uInt32 nColorsPerComponent = 1 << nValidBits; const sal_uInt32 nColorOffset = 256 / nColorsPerComponent; const sal_uInt32 nTotalColors = nColorsPerComponent * nColorsPerComponent * nColorsPerComponent; - const sal_Int32 nWidth = pRAcc->Width(); - const sal_Int32 nHeight = pRAcc->Height(); + std::unique_ptr<PopularColorCount[]> pCountTable(new PopularColorCount[nTotalColors]); memset(pCountTable.get(), 0, nTotalColors * sizeof(PopularColorCount)); @@ -54,6 +48,13 @@ BitmapEx BitmapColorQuantizationFilter::execute(BitmapEx const& aBitmapEx) const } } + const sal_uInt32 nRightShiftBits = 8 - nValidBits; + const sal_uInt32 nLeftShiftBits1 = nValidBits; + const sal_uInt32 nLeftShiftBits2 = nValidBits << 1; + + const sal_Int32 nWidth = pRAcc->Width(); + const sal_Int32 nHeight = pRAcc->Height(); + if (pRAcc->HasPalette()) { for (sal_Int32 nY = 0; nY < nHeight; nY++) @@ -90,6 +91,8 @@ BitmapEx BitmapColorQuantizationFilter::execute(BitmapEx const& aBitmapEx) const } } + auto const cappedNewColorCount = std::min(mnNewColorCount, sal_uInt16(256)); + BitmapPalette aNewPal(cappedNewColorCount); std::qsort(pCountTable.get(), nTotalColors, sizeof(PopularColorCount), diff --git a/vcl/source/bitmap/BitmapColorizeFilter.cxx b/vcl/source/bitmap/BitmapColorizeFilter.cxx index 21e996193eee..0b9a2028d91d 100644 --- a/vcl/source/bitmap/BitmapColorizeFilter.cxx +++ b/vcl/source/bitmap/BitmapColorizeFilter.cxx @@ -22,44 +22,45 @@ BitmapEx BitmapColorizeFilter::execute(BitmapEx const& rBitmapEx) const if (!pWriteAccess) return rBitmapEx; - BitmapColor aBitmapColor; - const sal_Int32 nW = pWriteAccess->Width(); - const sal_Int32 nH = pWriteAccess->Height(); std::vector<sal_uInt8> aMapR(256); std::vector<sal_uInt8> aMapG(256); std::vector<sal_uInt8> aMapB(256); - sal_Int32 nX; - sal_Int32 nY; const sal_uInt8 cR = maColor.GetRed(); const sal_uInt8 cG = maColor.GetGreen(); const sal_uInt8 cB = maColor.GetBlue(); - for (nX = 0; nX < 256; ++nX) + for (sal_Int32 nX = 0; nX < 256; ++nX) { aMapR[nX] = std::clamp((nX + cR) / 2, sal_Int32(0), sal_Int32(255)); aMapG[nX] = std::clamp((nX + cG) / 2, sal_Int32(0), sal_Int32(255)); aMapB[nX] = std::clamp((nX + cB) / 2, sal_Int32(0), sal_Int32(255)); } + BitmapColor aBitmapColor; + if (pWriteAccess->HasPalette()) { - for (sal_uInt16 i = 0, nCount = pWriteAccess->GetPaletteEntryCount(); i < nCount; i++) + for (sal_uInt16 nPaletteIdx = 0, nCount = pWriteAccess->GetPaletteEntryCount(); + nPaletteIdx < nCount; nPaletteIdx++) { - const BitmapColor& rCol = pWriteAccess->GetPaletteColor(i); + const BitmapColor& rCol = pWriteAccess->GetPaletteColor(nPaletteIdx); aBitmapColor.SetRed(aMapR[rCol.GetRed()]); aBitmapColor.SetGreen(aMapG[rCol.GetGreen()]); aBitmapColor.SetBlue(aMapB[rCol.GetBlue()]); - pWriteAccess->SetPaletteColor(i, aBitmapColor); + pWriteAccess->SetPaletteColor(nPaletteIdx, aBitmapColor); } } else if (pWriteAccess->GetScanlineFormat() == ScanlineFormat::N24BitTcBgr) { - for (nY = 0; nY < nH; ++nY) + const sal_Int32 nW = pWriteAccess->Width(); + const sal_Int32 nH = pWriteAccess->Height(); + + for (sal_Int32 nY = 0; nY < nH; ++nY) { Scanline pScan = pWriteAccess->GetScanline(nY); - for (nX = 0; nX < nW; ++nX) + for (sal_Int32 nX = 0; nX < nW; ++nX) { *pScan = aMapB[*pScan]; pScan++; @@ -72,10 +73,13 @@ BitmapEx BitmapColorizeFilter::execute(BitmapEx const& rBitmapEx) const } else { - for (nY = 0; nY < nH; ++nY) + const sal_Int32 nW = pWriteAccess->Width(); + const sal_Int32 nH = pWriteAccess->Height(); + + for (sal_Int32 nY = 0; nY < nH; ++nY) { Scanline pScanline = pWriteAccess->GetScanline(nY); - for (nX = 0; nX < nW; ++nX) + for (sal_Int32 nX = 0; nX < nW; ++nX) { aBitmapColor = pWriteAccess->GetPixelFromData(pScanline, nX); aBitmapColor.SetRed(aMapR[aBitmapColor.GetRed()]); diff --git a/vcl/source/bitmap/BitmapFilterStackBlur.cxx b/vcl/source/bitmap/BitmapFilterStackBlur.cxx index 298265266041..fad54b518e82 100644 --- a/vcl/source/bitmap/BitmapFilterStackBlur.cxx +++ b/vcl/source/bitmap/BitmapFilterStackBlur.cxx @@ -619,12 +619,10 @@ Bitmap BitmapFilterStackBlur::filter(Bitmap const& rBitmap) const if (nScanlineFormat == ScanlineFormat::N24BitTcRgb || nScanlineFormat == ScanlineFormat::N24BitTcBgr - || nScanlineFormat == ScanlineFormat::N32BitTcMask || nScanlineFormat == ScanlineFormat::N32BitTcBgra || nScanlineFormat == ScanlineFormat::N32BitTcBgrx) { - int nComponentWidth = (nScanlineFormat == ScanlineFormat::N32BitTcMask - || nScanlineFormat == ScanlineFormat::N32BitTcBgra + int nComponentWidth = (nScanlineFormat == ScanlineFormat::N32BitTcBgra || nScanlineFormat == ScanlineFormat::N32BitTcBgrx) ? 4 : 3; diff --git a/vcl/source/bitmap/BitmapReadAccess.cxx b/vcl/source/bitmap/BitmapReadAccess.cxx index 7688e0db8f64..b009534cd6f4 100644 --- a/vcl/source/bitmap/BitmapReadAccess.cxx +++ b/vcl/source/bitmap/BitmapReadAccess.cxx @@ -41,8 +41,6 @@ BitmapReadAccess::BitmapReadAccess(const Bitmap& rBitmap, BitmapAccessMode nMode if (!xImpBmp) return; - maColorMask = mpBuffer->maColorMask; - mFncGetPixel = GetPixelFunction(mpBuffer->meFormat); mFncSetPixel = SetPixelFunction(mpBuffer->meFormat); @@ -93,8 +91,6 @@ FncGetPixel BitmapReadAccess::GetPixelFunction(ScanlineFormat nFormat) case ScanlineFormat::N32BitTcRgbx: assert(!Bitmap32IsPreMultipled()); return GetPixelForN32BitTcRgbx; - case ScanlineFormat::N32BitTcMask: - return GetPixelForN32BitTcMask; default: return nullptr; @@ -137,8 +133,6 @@ FncSetPixel BitmapReadAccess::SetPixelFunction(ScanlineFormat nFormat) case ScanlineFormat::N32BitTcRgbx: assert(!Bitmap32IsPreMultipled()); return SetPixelForN32BitTcRgbx; - case ScanlineFormat::N32BitTcMask: - return SetPixelForN32BitTcMask; default: assert(false); @@ -242,14 +236,13 @@ BitmapColor BitmapReadAccess::GetColorWithFallback(double fY, double fX, return GetColor(nY, nX); } -BitmapColor BitmapReadAccess::GetPixelForN1BitMsbPal(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN1BitMsbPal(ConstScanline pScanline, tools::Long nX) { return BitmapColor(pScanline[nX >> 3] & (1 << (7 - (nX & 7))) ? 1 : 0); } void BitmapReadAccess::SetPixelForN1BitMsbPal(const Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { sal_uInt8& rByte = pScanline[nX >> 3]; @@ -259,20 +252,18 @@ void BitmapReadAccess::SetPixelForN1BitMsbPal(const Scanline pScanline, tools::L rByte &= ~(1 << (7 - (nX & 7))); } -BitmapColor BitmapReadAccess::GetPixelForN8BitPal(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN8BitPal(ConstScanline pScanline, tools::Long nX) { return BitmapColor(pScanline[nX]); } void BitmapReadAccess::SetPixelForN8BitPal(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline[nX] = rBitmapColor.GetIndex(); } -BitmapColor BitmapReadAccess::GetPixelForN24BitTcBgr(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN24BitTcBgr(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -285,7 +276,7 @@ BitmapColor BitmapReadAccess::GetPixelForN24BitTcBgr(ConstScanline pScanline, to } void BitmapReadAccess::SetPixelForN24BitTcBgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 3; *pScanline++ = rBitmapColor.GetBlue(); @@ -293,8 +284,7 @@ void BitmapReadAccess::SetPixelForN24BitTcBgr(Scanline pScanline, tools::Long nX *pScanline = rBitmapColor.GetRed(); } -BitmapColor BitmapReadAccess::GetPixelForN24BitTcRgb(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN24BitTcRgb(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -307,7 +297,7 @@ BitmapColor BitmapReadAccess::GetPixelForN24BitTcRgb(ConstScanline pScanline, to } void BitmapReadAccess::SetPixelForN24BitTcRgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 3; *pScanline++ = rBitmapColor.GetRed(); @@ -315,8 +305,7 @@ void BitmapReadAccess::SetPixelForN24BitTcRgb(Scanline pScanline, tools::Long nX *pScanline = rBitmapColor.GetBlue(); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcAbgr(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcAbgr(ConstScanline pScanline, tools::Long nX) { pScanline = pScanline + nX * 4; @@ -329,8 +318,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcAbgr(ConstScanline pScanline, t vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcXbgr(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcXbgr(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -343,7 +331,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcXbgr(ConstScanline pScanline, t } void BitmapReadAccess::SetPixelForN32BitTcAbgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 4; @@ -355,7 +343,7 @@ void BitmapReadAccess::SetPixelForN32BitTcAbgr(Scanline pScanline, tools::Long n } void BitmapReadAccess::SetPixelForN32BitTcXbgr(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + (nX << 2); *pScanline++ = 0xFF; @@ -364,8 +352,7 @@ void BitmapReadAccess::SetPixelForN32BitTcXbgr(Scanline pScanline, tools::Long n *pScanline = rBitmapColor.GetRed(); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcArgb(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcArgb(ConstScanline pScanline, tools::Long nX) { pScanline = pScanline + nX * 4; @@ -378,8 +365,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcArgb(ConstScanline pScanline, t vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcXrgb(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcXrgb(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -392,7 +378,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcXrgb(ConstScanline pScanline, t } void BitmapReadAccess::SetPixelForN32BitTcArgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 4; @@ -404,7 +390,7 @@ void BitmapReadAccess::SetPixelForN32BitTcArgb(Scanline pScanline, tools::Long n } void BitmapReadAccess::SetPixelForN32BitTcXrgb(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + (nX << 2); *pScanline++ = 0xFF; @@ -413,8 +399,7 @@ void BitmapReadAccess::SetPixelForN32BitTcXrgb(Scanline pScanline, tools::Long n *pScanline = rBitmapColor.GetBlue(); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgra(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgra(ConstScanline pScanline, tools::Long nX) { pScanline = pScanline + nX * 4; @@ -427,8 +412,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgra(ConstScanline pScanline, t vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgrx(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgrx(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -441,7 +425,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgrx(ConstScanline pScanline, t } void BitmapReadAccess::SetPixelForN32BitTcBgra(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 4; @@ -453,7 +437,7 @@ void BitmapReadAccess::SetPixelForN32BitTcBgra(Scanline pScanline, tools::Long n } void BitmapReadAccess::SetPixelForN32BitTcBgrx(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + (nX << 2); *pScanline++ = rBitmapColor.GetBlue(); @@ -462,8 +446,7 @@ void BitmapReadAccess::SetPixelForN32BitTcBgrx(Scanline pScanline, tools::Long n *pScanline = 0xFF; } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgba(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgba(ConstScanline pScanline, tools::Long nX) { pScanline = pScanline + nX * 4; @@ -476,8 +459,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgba(ConstScanline pScanline, t vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgbx(ConstScanline pScanline, tools::Long nX, - const ColorMask&) +BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgbx(ConstScanline pScanline, tools::Long nX) { BitmapColor aBitmapColor; @@ -490,7 +472,7 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgbx(ConstScanline pScanline, t } void BitmapReadAccess::SetPixelForN32BitTcRgba(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + nX * 4; @@ -502,7 +484,7 @@ void BitmapReadAccess::SetPixelForN32BitTcRgba(Scanline pScanline, tools::Long n } void BitmapReadAccess::SetPixelForN32BitTcRgbx(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, const ColorMask&) + const BitmapColor& rBitmapColor) { pScanline = pScanline + (nX << 2); *pScanline++ = rBitmapColor.GetRed(); @@ -511,19 +493,4 @@ void BitmapReadAccess::SetPixelForN32BitTcRgbx(Scanline pScanline, tools::Long n *pScanline = 0xFF; } -BitmapColor BitmapReadAccess::GetPixelForN32BitTcMask(ConstScanline pScanline, tools::Long nX, - const ColorMask& rMask) -{ - BitmapColor aColor; - rMask.GetColorFor32Bit(aColor, pScanline + (nX << 2)); - return aColor; -} - -void BitmapReadAccess::SetPixelForN32BitTcMask(Scanline pScanline, tools::Long nX, - const BitmapColor& rBitmapColor, - const ColorMask& rMask) -{ - rMask.SetColorFor32Bit(rBitmapColor, pScanline + (nX << 2)); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/bitmap/BitmapWriteAccess.cxx b/vcl/source/bitmap/BitmapWriteAccess.cxx index f2fc5424eb0e..cf5686e031fe 100644 --- a/vcl/source/bitmap/BitmapWriteAccess.cxx +++ b/vcl/source/bitmap/BitmapWriteAccess.cxx @@ -85,8 +85,6 @@ void BitmapWriteAccess::CopyScanline(tools::Long nY, ConstScanline aSrcScanline, nSrcScanlineSize)) return; - DBG_ASSERT(eFormat != ScanlineFormat::N32BitTcMask, - "No support for pixel formats with color masks yet!"); FncGetPixel pFncGetPixel; switch (eFormat) { @@ -134,9 +132,6 @@ void BitmapWriteAccess::CopyScanline(tools::Long nY, ConstScanline aSrcScanline, assert(!Bitmap32IsPreMultipled()); pFncGetPixel = GetPixelForN32BitTcRgbx; break; - case ScanlineFormat::N32BitTcMask: - pFncGetPixel = GetPixelForN32BitTcMask; - break; default: assert(false); @@ -146,10 +141,9 @@ void BitmapWriteAccess::CopyScanline(tools::Long nY, ConstScanline aSrcScanline, if (pFncGetPixel) { - const ColorMask aDummyMask; Scanline pScanline = GetScanline(nY); for (tools::Long nX = 0, nWidth = mpBuffer->mnWidth; nX < nWidth; ++nX) - SetPixelOnData(pScanline, nX, pFncGetPixel(aSrcScanline, nX, aDummyMask)); + SetPixelOnData(pScanline, nX, pFncGetPixel(aSrcScanline, nX)); } } } diff --git a/vcl/source/bitmap/BlendFrameCache.cxx b/vcl/source/bitmap/BlendFrameCache.cxx index fc883710c988..92d982d5e4d8 100644 --- a/vcl/source/bitmap/BlendFrameCache.cxx +++ b/vcl/source/bitmap/BlendFrameCache.cxx @@ -43,93 +43,92 @@ BlendFrameCache::BlendFrameCache(Size const& rSize, sal_uInt8 nAlpha, Color cons aContent.Erase(COL_BLACK); - BitmapScopedWriteAccess pContent(aContent); - BitmapScopedWriteAccess pAlpha(aAlpha); - - if (!pContent || !pAlpha) - return; - - Scanline pScanContent = pContent->GetScanline(0); - Scanline pScanAlpha = pContent->GetScanline(0); - - // x == 0, y == 0, top-left corner - pContent->SetPixelOnData(pScanContent, 0, rColorTopLeft); - pAlpha->SetPixelOnData(pScanAlpha, 0, BitmapColor(nAlpha)); - - tools::Long x(0); - const tools::Long nW(rSize.Width()); - - // y == 0, top line left to right - for (x = 1; x < nW - 1; x++) { - Color aMix(rColorTopLeft); + BitmapScopedWriteAccess pContent(aContent); + BitmapScopedWriteAccess pAlpha(aAlpha); - aMix.Merge(rColorTopRight, 255 - sal_uInt8((x * 255) / nW)); - pContent->SetPixelOnData(pScanContent, x, aMix); - pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); - } + if (!pContent || !pAlpha) + return; - // x == nW - 1, y == 0, top-right corner - // #i123690# Caution! When nW is 1, x == nW is possible (!) - if (x < nW) - { - pContent->SetPixelOnData(pScanContent, x, rColorTopRight); - pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); - } - - tools::Long y(0); - const tools::Long nH(rSize.Height()); - - // x == 0 and nW - 1, left and right line top-down - for (y = 1; y < nH - 1; y++) - { - pScanContent = pContent->GetScanline(y); - pScanAlpha = pContent->GetScanline(y); - Color aMixA(rColorTopLeft); + Scanline pScanContent = pContent->GetScanline(0); + Scanline pScanAlpha = pContent->GetScanline(0); - aMixA.Merge(rColorBottomLeft, 255 - sal_uInt8((y * 255) / nH)); - pContent->SetPixelOnData(pScanContent, 0, aMixA); + // x == 0, y == 0, top-left corner + pContent->SetPixelOnData(pScanContent, 0, rColorTopLeft); pAlpha->SetPixelOnData(pScanAlpha, 0, BitmapColor(nAlpha)); - // #i123690# Caution! When nW is 1, x == nW is possible (!) - if (x < nW) - { - Color aMixB(rColorTopRight); - - aMixB.Merge(rColorBottomRight, 255 - sal_uInt8((y * 255) / nH)); - pContent->SetPixelOnData(pScanContent, x, aMixB); - pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); - } - } - - // #i123690# Caution! When nH is 1, y == nH is possible (!) - if (y < nH) - { - // x == 0, y == nH - 1, bottom-left corner - pContent->SetPixelOnData(pScanContent, 0, rColorBottomLeft); - pAlpha->SetPixelOnData(pScanAlpha, 0, BitmapColor(nAlpha)); + tools::Long x; + const tools::Long nW(rSize.Width()); - // y == nH - 1, bottom line left to right + // y == 0, top line left to right for (x = 1; x < nW - 1; x++) { - Color aMix(rColorBottomLeft); + Color aMix(rColorTopLeft); - aMix.Merge(rColorBottomRight, 255 - sal_uInt8(((x - 0) * 255) / nW)); + aMix.Merge(rColorTopRight, 255 - sal_uInt8((x * 255) / nW)); pContent->SetPixelOnData(pScanContent, x, aMix); pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); } - // x == nW - 1, y == nH - 1, bottom-right corner + // x == nW - 1, y == 0, top-right corner // #i123690# Caution! When nW is 1, x == nW is possible (!) if (x < nW) { - pContent->SetPixelOnData(pScanContent, x, rColorBottomRight); + pContent->SetPixelOnData(pScanContent, x, rColorTopRight); pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); } - } - pContent.reset(); - pAlpha.reset(); + tools::Long y; + const tools::Long nH(rSize.Height()); + + // x == 0 and nW - 1, left and right line top-down + for (y = 1; y < nH - 1; y++) + { + pScanContent = pContent->GetScanline(y); + pScanAlpha = pContent->GetScanline(y); + Color aMixA(rColorTopLeft); + + aMixA.Merge(rColorBottomLeft, 255 - sal_uInt8((y * 255) / nH)); + pContent->SetPixelOnData(pScanContent, 0, aMixA); + pAlpha->SetPixelOnData(pScanAlpha, 0, BitmapColor(nAlpha)); + + // #i123690# Caution! When nW is 1, x == nW is possible (!) + if (x < nW) + { + Color aMixB(rColorTopRight); + + aMixB.Merge(rColorBottomRight, 255 - sal_uInt8((y * 255) / nH)); + pContent->SetPixelOnData(pScanContent, x, aMixB); + pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); + } + } + + // #i123690# Caution! When nH is 1, y == nH is possible (!) + if (y < nH) + { + // x == 0, y == nH - 1, bottom-left corner + pContent->SetPixelOnData(pScanContent, 0, rColorBottomLeft); + pAlpha->SetPixelOnData(pScanAlpha, 0, BitmapColor(nAlpha)); + + // y == nH - 1, bottom line left to right + for (x = 1; x < nW - 1; x++) + { + Color aMix(rColorBottomLeft); + + aMix.Merge(rColorBottomRight, 255 - sal_uInt8(((x - 0) * 255) / nW)); + pContent->SetPixelOnData(pScanContent, x, aMix); + pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); + } + + // x == nW - 1, y == nH - 1, bottom-right corner + // #i123690# Caution! When nW is 1, x == nW is possible (!) + if (x < nW) + { + pContent->SetPixelOnData(pScanContent, x, rColorBottomRight); + pAlpha->SetPixelOnData(pScanAlpha, x, BitmapColor(nAlpha)); + } + } + } m_aLastResult = BitmapEx(aContent, aAlpha); } diff --git a/vcl/source/bitmap/bmpfast.cxx b/vcl/source/bitmap/bmpfast.cxx index bae0ed1f5b3f..37fba37615b1 100644 --- a/vcl/source/bitmap/bmpfast.cxx +++ b/vcl/source/bitmap/bmpfast.cxx @@ -268,7 +268,13 @@ static bool ImplCopyImage( BitmapBuffer& rDstBuffer, const BitmapBuffer& rSrcBuf const PIXBYTE* pRawSrc = rSrcBuffer.mpBits; PIXBYTE* pRawDst = rDstBuffer.mpBits; - if( nSrcLinestep == nDstLinestep ) + // source and destination don't match upside down + if (rSrcBuffer.meDirection != rDstBuffer.meDirection) + { + pRawDst += (rSrcBuffer.mnHeight - 1) * nDstLinestep; + nDstLinestep = -rDstBuffer.mnScanlineSize; + } + else if( nSrcLinestep == nDstLinestep ) { memcpy( pRawDst, pRawSrc, rSrcBuffer.mnHeight * nDstLinestep ); return true; @@ -302,6 +308,13 @@ static bool ImplConvertToBitmap( TrueColorPixelPtr<SRCFMT>& rSrcLine, TrueColorPixelPtr<DSTFMT> aDstLine; aDstLine.SetRawPtr( rDstBuffer.mpBits ); + // source and destination don't match upside down + if (rSrcBuffer.meDirection != rDstBuffer.meDirection) + { + aDstLine.AddByteOffset( (rSrcBuffer.mnHeight - 1) * nDstLinestep ); + nDstLinestep = -nDstLinestep; + } + for( int y = rSrcBuffer.mnHeight; --y >= 0; ) { ImplConvertLine( aDstLine, rSrcLine, rSrcBuffer.mnWidth ); @@ -324,10 +337,6 @@ static bool ImplConvertFromBitmap( BitmapBuffer& rDst, const BitmapBuffer& rSrc case ScanlineFormat::N8BitPal: break; - case ScanlineFormat::N32BitTcMask: -// return ImplConvertToBitmap<ScanlineFormat::N32BitTcMask>( aSrcType, rDst, rSrc ); - break; - case ScanlineFormat::N24BitTcBgr: return ImplConvertToBitmap<ScanlineFormat::N24BitTcBgr>( aSrcType, rDst, rSrc ); case ScanlineFormat::N24BitTcRgb: @@ -366,6 +375,7 @@ bool ImplFastBitmapConversion( BitmapBuffer& rDst, const BitmapBuffer& rSrc, return false; // vertical mirroring if( rTR.mnDestHeight < 0 ) + // TODO: rDst.meDirection != ScanlineDirection::TopDown; return false; // offsetted conversion is not implemented yet @@ -410,10 +420,6 @@ bool ImplFastBitmapConversion( BitmapBuffer& rDst, const BitmapBuffer& rSrc, case ScanlineFormat::N1BitMsbPal: break; - case ScanlineFormat::N32BitTcMask: -// return ImplConvertFromBitmap<ScanlineFormat::N32BitTcMask>( rDst, rSrc ); - break; - case ScanlineFormat::N8BitPal: if(rSrc.maPalette.IsGreyPalette8Bit()) return ImplConvertFromBitmap<ScanlineFormat::N8BitPal>( rDst, rSrc ); @@ -449,7 +455,10 @@ bool ImplFastBitmapConversion( BitmapBuffer& rDst, const BitmapBuffer& rSrc, static inline ConstScanline ImplGetScanline( const BitmapBuffer& rBuf, tools::Long nY ) { - return rBuf.mpBits + nY * rBuf.mnScanlineSize; + if (rBuf.meDirection == ScanlineDirection::TopDown) + return rBuf.mpBits + nY * rBuf.mnScanlineSize; + else + return rBuf.mpBits + (rBuf.mnHeight - 1 - nY) * rBuf.mnScanlineSize; } static inline Scanline ImplGetScanline( BitmapBuffer& rBuf, tools::Long nY ) @@ -567,6 +576,20 @@ static bool ImplBlendToBitmap( TrueColorPixelPtr<SRCFMT>& rSrcLine, if( rMskBuffer.mnHeight == 1 ) nMskLinestep = 0; + // source and mask don't match: upside down + if (rSrcBuffer.meDirection != rMskBuffer.meDirection) + { + aMskLine.AddByteOffset( (rSrcBuffer.mnHeight - 1) * nMskLinestep ); + nMskLinestep = -nMskLinestep; + } + + // source and destination don't match: upside down + if (rSrcBuffer.meDirection != rDstBuffer.meDirection) + { + aDstLine.AddByteOffset( (rDstBuffer.mnHeight - 1) * nDstLinestep ); + nDstLinestep = -nDstLinestep; + } + assert(rDstBuffer.mnHeight <= rSrcBuffer.mnHeight && "not sure about that?"); for (int y = rDstBuffer.mnHeight; --y >= 0;) { @@ -622,10 +645,6 @@ static bool ImplBlendFromBitmap( BitmapBuffer& rDst, const BitmapBuffer& rSrc, c case ScanlineFormat::N8BitPal: break; - case ScanlineFormat::N32BitTcMask: -// return ImplBlendToBitmap<ScanlineFormat::N32BitTcMask>( aSrcType, rDst, rSrc, rMsk ); - break; - case ScanlineFormat::N24BitTcBgr: return ImplBlendToBitmap<ScanlineFormat::N24BitTcBgr>( aSrcType, rDst, rSrc, rMsk ); case ScanlineFormat::N24BitTcRgb: @@ -669,6 +688,7 @@ bool ImplFastBitmapBlending( BitmapWriteAccess const & rDstWA, return false; // vertical mirroring if( rTR.mnDestHeight < 0 ) + // TODO: rDst.meDirection != ScanlineDirection::TopDown; return false; // offsetted blending is not implemented yet @@ -712,10 +732,6 @@ bool ImplFastBitmapBlending( BitmapWriteAccess const & rDstWA, case ScanlineFormat::N1BitMsbPal: break; - case ScanlineFormat::N32BitTcMask: -// return ImplBlendFromBitmap<ScanlineFormat::N32BitTcMask>( rDst, rSrc ); - break; - case ScanlineFormat::N8BitPal: if(rSrc.maPalette.IsGreyPalette8Bit()) return ImplBlendFromBitmap<ScanlineFormat::N8BitPal>( rDst, rSrc, rMsk ); @@ -789,8 +805,6 @@ bool ImplFastEraseBitmap( BitmapBuffer& rDst, const BitmapColor& rColor ) // TODO: handle other bitmap formats switch (rDst.meFormat) { - case ScanlineFormat::N32BitTcMask: - case ScanlineFormat::N24BitTcBgr: case ScanlineFormat::N24BitTcRgb: diff --git a/vcl/source/bitmap/dibtools.cxx b/vcl/source/bitmap/dibtools.cxx index cd7155e47935..e7a0d4ed8c7f 100644 --- a/vcl/source/bitmap/dibtools.cxx +++ b/vcl/source/bitmap/dibtools.cxx @@ -34,6 +34,7 @@ #include <vcl/bitmapex.hxx> #include <vcl/outdev.hxx> #include <vcl/BitmapWriteAccess.hxx> +#include <vcl/ColorMask.hxx> #include <memory> #define DIBCOREHEADERSIZE ( 12UL ) @@ -137,11 +138,6 @@ vcl::PixelFormat convertToBPP(sal_uInt16 nCount) vcl::PixelFormat::N24_BPP; } -bool isBitfieldCompression( ScanlineFormat nScanlineFormat ) -{ - return ScanlineFormat::N32BitTcMask == nScanlineFormat; -} - bool ImplReadDIBInfoHeader(SvStream& rIStm, DIBV5Header& rHeader, bool& bTopDown, bool bMSOFormat) { if (rIStm.remainingSize() <= 4) @@ -499,7 +495,7 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r { // we can't trust arbitrary-sourced index based formats to have correct indexes, so we exclude the pal formats // from raw read and force checking their colormap indexes - bNative = bTopDown && !bRLE && !bTCMask && ( rAcc.GetScanlineSize() == nAlignedWidth ); + bNative = ( ( rAcc.IsBottomUp() != bTopDown ) && !bRLE && !bTCMask && ( rAcc.GetScanlineSize() == nAlignedWidth ) ); break; } @@ -1232,7 +1228,7 @@ bool ImplWriteDIBBits(SvStream& rOStm, BitmapReadAccess const & rAcc, sal_uLong { if(BITFIELDS == nCompression) { - const ColorMask& rMask = rAcc.GetColorMask(); + ColorMask rMask; SVBT32 aVal32; UInt32ToSVBT32( rMask.GetRedMask(), aVal32 ); @@ -1246,8 +1242,13 @@ bool ImplWriteDIBBits(SvStream& rOStm, BitmapReadAccess const & rAcc, sal_uLong rImageSize = rOStm.Tell(); - for( tools::Long nY = rAcc.Height() - 1, nScanlineSize = rAcc.GetScanlineSize(); nY >= 0; nY-- ) - rOStm.WriteBytes( rAcc.GetScanline(nY), nScanlineSize ); + if( rAcc.IsBottomUp() ) + rOStm.WriteBytes(rAcc.GetBuffer(), rAcc.Height() * rAcc.GetScanlineSize()); + else + { + for( tools::Long nY = rAcc.Height() - 1, nScanlineSize = rAcc.GetScanlineSize(); nY >= 0; nY-- ) + rOStm.WriteBytes( rAcc.GetScanline(nY), nScanlineSize ); + } } else if((RLE_4 == nCompression) || (RLE_8 == nCompression)) { @@ -1266,60 +1267,88 @@ bool ImplWriteDIBBits(SvStream& rOStm, BitmapReadAccess const & rAcc, sal_uLong // (other cases are not written below) const auto ePixelFormat(convertToBPP(rAcc.GetBitCount())); const sal_uLong nAlignedWidth(AlignedWidth4Bytes(rAcc.Width() * sal_Int32(ePixelFormat))); + bool bNative(false); - rImageSize = rOStm.Tell(); - - const tools::Long nWidth(rAcc.Width()); - const tools::Long nHeight(rAcc.Height()); - std::vector<sal_uInt8> aBuf(nAlignedWidth); - switch(ePixelFormat) + switch(rAcc.GetScanlineFormat()) { - case vcl::PixelFormat::N8_BPP: + case ScanlineFormat::N1BitMsbPal: + case ScanlineFormat::N8BitPal: + case ScanlineFormat::N24BitTcBgr: { - for( tools::Long nY = nHeight - 1; nY >= 0; nY-- ) + if(rAcc.IsBottomUp() && (rAcc.GetScanlineSize() == nAlignedWidth)) { - sal_uInt8* pTmp = aBuf.data(); - Scanline pScanline = rAcc.GetScanline( nY ); - - for( tools::Long nX = 0; nX < nWidth; nX++ ) - *pTmp++ = rAcc.GetIndexFromData( pScanline, nX ); - - rOStm.WriteBytes(aBuf.data(), nAlignedWidth); + bNative = true; } + + break; } - break; - case vcl::PixelFormat::N24_BPP: + default: { - //valgrind, zero out the trailing unused alignment bytes - size_t nUnusedBytes = nAlignedWidth - nWidth * 3; - memset(aBuf.data() + nAlignedWidth - nUnusedBytes, 0, nUnusedBytes); + break; } - [[fallthrough]]; - // #i59239# fallback to 24 bit format, if bitcount is non-default - default: + } + + rImageSize = rOStm.Tell(); + + if(bNative) + { + rOStm.WriteBytes(rAcc.GetBuffer(), nAlignedWidth * rAcc.Height()); + } + else + { + const tools::Long nWidth(rAcc.Width()); + const tools::Long nHeight(rAcc.Height()); + std::vector<sal_uInt8> aBuf(nAlignedWidth); + switch(ePixelFormat) { - BitmapColor aPixelColor; + case vcl::PixelFormat::N8_BPP: + { + for( tools::Long nY = nHeight - 1; nY >= 0; nY-- ) + { + sal_uInt8* pTmp = aBuf.data(); + Scanline pScanline = rAcc.GetScanline( nY ); + + for( tools::Long nX = 0; nX < nWidth; nX++ ) + *pTmp++ = rAcc.GetIndexFromData( pScanline, nX ); + + rOStm.WriteBytes(aBuf.data(), nAlignedWidth); + } + } + break; - for( tools::Long nY = nHeight - 1; nY >= 0; nY-- ) + case vcl::PixelFormat::N24_BPP: { - sal_uInt8* pTmp = aBuf.data(); + //valgrind, zero out the trailing unused alignment bytes + size_t nUnusedBytes = nAlignedWidth - nWidth * 3; + memset(aBuf.data() + nAlignedWidth - nUnusedBytes, 0, nUnusedBytes); + } + [[fallthrough]]; + // #i59239# fallback to 24 bit format, if bitcount is non-default + default: + { + BitmapColor aPixelColor; - for( tools::Long nX = 0; nX < nWidth; nX++ ) + for( tools::Long nY = nHeight - 1; nY >= 0; nY-- ) { - // when alpha is used, this may be non-24bit main bitmap, so use GetColor - // instead of GetPixel to ensure RGB value - aPixelColor = rAcc.GetColor( nY, nX ); + sal_uInt8* pTmp = aBuf.data(); - *pTmp++ = aPixelColor.GetBlue(); - *pTmp++ = aPixelColor.GetGreen(); - *pTmp++ = aPixelColor.GetRed(); - } + for( tools::Long nX = 0; nX < nWidth; nX++ ) + { + // when alpha is used, this may be non-24bit main bitmap, so use GetColor + // instead of GetPixel to ensure RGB value + aPixelColor = rAcc.GetColor( nY, nX ); + + *pTmp++ = aPixelColor.GetBlue(); + *pTmp++ = aPixelColor.GetGreen(); + *pTmp++ = aPixelColor.GetRed(); + } - rOStm.WriteBytes(aBuf.data(), nAlignedWidth); + rOStm.WriteBytes(aBuf.data(), nAlignedWidth); + } } + break; } - break; } } @@ -1342,32 +1371,23 @@ bool ImplWriteDIBBody(const Bitmap& rBitmap, SvStream& rOStm, BitmapReadAccess c aHeader.nHeight = rAcc.Height(); aHeader.nPlanes = 1; - if(isBitfieldCompression(rAcc.GetScanlineFormat())) + // #i5xxx# Limit bitcount to 24bit, the 32 bit cases are + // not handled properly below (would have to set color + // masks, and nCompression=BITFIELDS - but color mask is + // not set for formats != *_TC_*). Note that this very + // problem might cause trouble at other places - the + // introduction of 32 bit RGBA bitmaps is relatively + // recent. + // #i59239# discretize bitcount to 1,8,24 (other cases + // are not written below) + const auto ePixelFormat(convertToBPP(rAcc.GetBitCount())); + aHeader.nBitCount = sal_uInt16(ePixelFormat); + aHeader.nSizeImage = rAcc.Height() * AlignedWidth4Bytes(rAcc.Width() * aHeader.nBitCount); + + if (bCompressed) { - aHeader.nBitCount = 32; - aHeader.nSizeImage = rAcc.Height() * rAcc.GetScanlineSize(); - nCompression = BITFIELDS; - } - else - { - // #i5xxx# Limit bitcount to 24bit, the 32 bit cases are - // not handled properly below (would have to set color - // masks, and nCompression=BITFIELDS - but color mask is - // not set for formats != *_TC_*). Note that this very - // problem might cause trouble at other places - the - // introduction of 32 bit RGBA bitmaps is relatively - // recent. - // #i59239# discretize bitcount to 1,8,24 (other cases - // are not written below) - const auto ePixelFormat(convertToBPP(rAcc.GetBitCount())); - aHeader.nBitCount = sal_uInt16(ePixelFormat); - aHeader.nSizeImage = rAcc.Height() * AlignedWidth4Bytes(rAcc.Width() * aHeader.nBitCount); - - if (bCompressed) - { - if (ePixelFormat == vcl::PixelFormat::N8_BPP) - nCompression = RLE_8; - } + if (ePixelFormat == vcl::PixelFormat::N8_BPP) + nCompression = RLE_8; } if((rOStm.GetCompressMode() & SvStreamCompressFlags::ZBITMAP) && (rOStm.GetVersion() >= SOFFICE_FILEFORMAT_40)) @@ -1477,7 +1497,7 @@ bool ImplWriteDIBBody(const Bitmap& rBitmap, SvStream& rOStm, BitmapReadAccess c bool ImplWriteDIBFileHeader(SvStream& rOStm, BitmapReadAccess const & rAcc) { - const sal_uInt32 nPalCount((rAcc.HasPalette() ? rAcc.GetPaletteEntryCount() : isBitfieldCompression(rAcc.GetScanlineFormat()) ? 3UL : 0UL)); + const sal_uInt32 nPalCount((rAcc.HasPalette() ? rAcc.GetPaletteEntryCount() : 0UL)); const sal_uInt32 nOffset(14 + DIBINFOHEADERSIZE + nPalCount * 4UL); rOStm.WriteUInt16( 0x4D42 ); // 'MB' from BITMAPFILEHEADER diff --git a/vcl/source/bitmap/salbmp.cxx b/vcl/source/bitmap/salbmp.cxx index a84fc63f4042..3e8f0b255d2d 100644 --- a/vcl/source/bitmap/salbmp.cxx +++ b/vcl/source/bitmap/salbmp.cxx @@ -62,11 +62,19 @@ void SalBitmap::updateChecksum() const break; } } - if( pBuf->mnScanlineSize == lineBitsCount / 8 ) - nCrc = rtl_crc32(nCrc, pBuf->mpBits, pBuf->mnScanlineSize * pBuf->mnHeight); - else // Do not include padding with undefined content in the checksum. - for( tools::Long y = 0; y < pBuf->mnHeight; ++y ) + if (pBuf->meDirection == ScanlineDirection::TopDown) + { + if( pBuf->mnScanlineSize == lineBitsCount / 8 ) + nCrc = rtl_crc32(nCrc, pBuf->mpBits, pBuf->mnScanlineSize * pBuf->mnHeight); + else // Do not include padding with undefined content in the checksum. + for( tools::Long y = 0; y < pBuf->mnHeight; ++y ) + nCrc = scanlineChecksum(nCrc, pBuf->mpBits + y * pBuf->mnScanlineSize, lineBitsCount, extraBitsMask); + } + else // Compute checksum in the order of scanlines, to make it consistent between different bitmap implementations. + { + for( tools::Long y = pBuf->mnHeight - 1; y >= 0; --y ) nCrc = scanlineChecksum(nCrc, pBuf->mpBits + y * pBuf->mnScanlineSize, lineBitsCount, extraBitsMask); + } pThis->ReleaseBuffer(pBuf, BitmapAccessMode::Read); pThis->mnChecksum = nCrc; pThis->mbChecksumValid = true; diff --git a/vcl/source/filter/imet/ios2met.cxx b/vcl/source/filter/imet/ios2met.cxx index c91eb770cf62..d92174731b65 100644 --- a/vcl/source/filter/imet/ios2met.cxx +++ b/vcl/source/filter/imet/ios2met.cxx @@ -212,6 +212,8 @@ enum PenStyle { PEN_NULL, PEN_SOLID, PEN_DOT, PEN_DASH, PEN_DASHDOT }; #define GOrdSVwWin 0x27 /* 1 Set viewing window */ #define GOrdPVwWin 0x67 /* 1 Push and set viewing window */ +constexpr double tau = 2.0 * M_PI; + //============================ OS2METReader ================================== namespace { @@ -1124,8 +1126,8 @@ void OS2METReader::ReadArc(bool bGivenPos) rx=r/q; ry=r/p; // We now have to find out how the starting and the end point // have to be chosen so that point no. 2 lies inside the drawn arc: - w1=fmod((atan2(x1-cx,y1-cy)-atan2(x2-cx,y2-cy)),6.28318530718); if (w1<0) w1+=6.28318530718; - w3=fmod((atan2(x3-cx,y3-cy)-atan2(x2-cx,y2-cy)),6.28318530718); if (w3<0) w3+=6.28318530718; + w1=fmod((atan2(x1-cx,y1-cy)-atan2(x2-cx,y2-cy)),tau); if (w1<0) w1+=tau; + w3=fmod((atan2(x3-cx,y3-cy)-atan2(x2-cx,y2-cy)),tau); if (w3<0) w3+=tau; if (w3<w1) { pVirDev->DrawArc(tools::Rectangle(static_cast<sal_Int32>(cx-rx),static_cast<sal_Int32>(cy-ry), static_cast<sal_Int32>(cx+rx),static_cast<sal_Int32>(cy+ry)),aP1,aP3); diff --git a/vcl/source/filter/webp/reader.cxx b/vcl/source/filter/webp/reader.cxx index 2cc3f8c6a08e..cfc28a18440b 100644 --- a/vcl/source/filter/webp/reader.cxx +++ b/vcl/source/filter/webp/reader.cxx @@ -215,7 +215,23 @@ static bool readWebp(SvStream& stream, Graphic& graphic) switch (pixelMode) { case PixelMode::DirectRead: + { + // Adjust for IsBottomUp() if necessary. + if (access->IsBottomUp()) + { + std::vector<char> tmp; + const sal_uInt32 lineSize = access->GetScanlineSize(); + tmp.resize(lineSize); + for (tools::Long y = 0; y < access->Height() / 2; ++y) + { + tools::Long otherY = access->Height() - 1 - y; + memcpy(tmp.data(), access->GetScanline(y), lineSize); + memcpy(access->GetScanline(y), access->GetScanline(otherY), lineSize); + memcpy(access->GetScanline(otherY), tmp.data(), lineSize); + } + } break; + } case PixelMode::Split: { // Split to normal and alpha bitmaps. diff --git a/vcl/source/filter/webp/writer.cxx b/vcl/source/filter/webp/writer.cxx index 6a4e772eafd4..cd63cd2d2786 100644 --- a/vcl/source/filter/webp/writer.cxx +++ b/vcl/source/filter/webp/writer.cxx @@ -99,7 +99,7 @@ static bool writeWebp(SvStream& rStream, const BitmapEx& bitmapEx, bool lossless BitmapScopedReadAccess access(bitmap); BitmapScopedReadAccess accessAlpha(bitmapAlpha); bool dataDone = false; - if (bitmapAlpha.IsEmpty()) + if (!access->IsBottomUp() && bitmapAlpha.IsEmpty()) { // Try to directly copy the bitmap data. switch (access->GetScanlineFormat()) diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx index 428cbad77838..24585bea784b 100644 --- a/vcl/source/gdi/WidgetDefinitionReader.cxx +++ b/vcl/source/gdi/WidgetDefinitionReader.cxx @@ -15,6 +15,7 @@ #include <osl/file.hxx> #include <tools/stream.hxx> #include <o3tl/string_view.hxx> +#include <o3tl/numeric.hxx> #include <unordered_map> namespace vcl @@ -28,35 +29,6 @@ bool lcl_fileExists(OUString const& sFilename) return osl::FileBase::E_None == eRC; } -int lcl_gethex(char aChar) -{ - if (aChar >= '0' && aChar <= '9') - return aChar - '0'; - else if (aChar >= 'a' && aChar <= 'f') - return aChar - 'a' + 10; - else if (aChar >= 'A' && aChar <= 'F') - return aChar - 'A' + 10; - else - return 0; -} - -bool readColor(OString const& rString, Color& rColor) -{ - if (rString.getLength() != 7) - return false; - - const char aChar(rString[0]); - - if (aChar != '#') - return false; - - rColor.SetRed((lcl_gethex(rString[1]) << 4) | lcl_gethex(rString[2])); - rColor.SetGreen((lcl_gethex(rString[3]) << 4) | lcl_gethex(rString[4])); - rColor.SetBlue((lcl_gethex(rString[5]) << 4) | lcl_gethex(rString[6])); - - return true; -} - bool readSetting(OString const& rInputString, OString& rOutputString) { if (!rInputString.isEmpty()) @@ -202,9 +174,9 @@ void WidgetDefinitionReader::readDrawingDefinition( if (rWalker.name() == "rect") { Color aStrokeColor; - readColor(rWalker.attribute("stroke"_ostr), aStrokeColor); + color::createFromString(rWalker.attribute("stroke"_ostr), aStrokeColor); Color aFillColor; - readColor(rWalker.attribute("fill"_ostr), aFillColor); + color::createFromString(rWalker.attribute("fill"_ostr), aFillColor); OString sStrokeWidth = rWalker.attribute("stroke-width"_ostr); sal_Int32 nStrokeWidth = -1; if (!sStrokeWidth.isEmpty()) @@ -238,7 +210,7 @@ void WidgetDefinitionReader::readDrawingDefinition( else if (rWalker.name() == "line") { Color aStrokeColor; - readColor(rWalker.attribute("stroke"_ostr), aStrokeColor); + color::createFromString(rWalker.attribute("stroke"_ostr), aStrokeColor); OString sStrokeWidth = rWalker.attribute("stroke-width"_ostr); sal_Int32 nStrokeWidth = -1; @@ -459,7 +431,7 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition) auto pair = aStyleColorMap.find(aWalker.name()); if (pair != aStyleColorMap.end()) { - readColor(aWalker.attribute("value"_ostr), *pair->second); + color::createFromString(aWalker.attribute("value"_ostr), *pair->second); } aWalker.next(); } diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 7e048c4d6dd3..f88de484f126 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -111,6 +111,8 @@ static bool g_bDebugDisableCompression = getenv("VCL_DEBUG_DISABLE_PDFCOMPRESSIO namespace { +constexpr std::string_view constNamespacePDF2("http://iso.org/pdf2/ssn"); + constexpr sal_Int32 nLog10Divisor = 3; constexpr double fDivisor = 1000.0; @@ -1334,6 +1336,12 @@ PDFWriterImpl::PDFWriterImpl( const PDFWriter::PDFWriterContext& rContext, m_aContext.Tagged = true; } + // Add common PDF 2.0 namespace when we are using PDF 2.0 + if (m_aContext.Version == PDFWriter::PDFVersion::PDF_2_0) + { + m_aNamespacesMap.emplace(constNamespacePDF2, createObject()); + } + if( m_aContext.DPIx == 0 || m_aContext.DPIy == 0 ) SetReferenceDevice( VirtualDevice::RefDevMode::PDF1 ); else @@ -1933,6 +1941,30 @@ OString PDFWriterImpl::emitStructureAttributes( PDFStructureElement& i_rEle ) return aRet.makeStringAndClear(); } +// Write the namespace objects to the stream +void PDFWriterImpl::emitNamespaces() +{ + if (m_aContext.Version < PDFWriter::PDFVersion::PDF_2_0) + return; + + for (auto&[sNamespace, nObject] : m_aNamespacesMap) + { + if (!updateObject(nObject)) + return; + + COSWriter aWriter(m_aContext.Encryption.getParams(), m_pPDFEncryptor); + aWriter.startObject(nObject); + aWriter.startDict(); + aWriter.write("/Type", "/Namespace"); + aWriter.writeKeyAndLiteral("/NS", sNamespace); + aWriter.endDict(); + aWriter.endObject(); + + if (!writeBuffer(aWriter.getLine())) + m_aNamespacesMap[sNamespace] = 0; + } +} + sal_Int32 PDFWriterImpl::emitStructure( PDFStructureElement& rEle ) { assert(rEle.m_nOwnElement == 0 || rEle.m_oType); @@ -1979,10 +2011,21 @@ sal_Int32 PDFWriterImpl::emitStructure( PDFStructureElement& rEle ) nParentTree = createObject(); if (!nParentTree) return 0; - aLine.append( "/StructTreeRoot\n" - "/ParentTree " - + OString::number(nParentTree) - + " 0 R\n" ); + aLine.append("/StructTreeRoot\n"); + aWriter.writeKeyAndReference("/ParentTree", nParentTree); + + // Write the reference to the PDF 2.0 namespace + if (m_aContext.Version >= PDFWriter::PDFVersion::PDF_2_0) + { + auto iterator = m_aNamespacesMap.find(constNamespacePDF2); + if (iterator != m_aNamespacesMap.end()) + { + aLine.append("/Namespaces ["); + aWriter.writeReference(iterator->second); + aLine.append("]"); + } + } + if( ! m_aRoleMap.empty() ) { aLine.append( "/RoleMap<<" ); @@ -2002,8 +2045,16 @@ sal_Int32 PDFWriterImpl::emitStructure( PDFStructureElement& rEle ) } else { - aLine.append( "/StructElem\n" - "/S/" ); + aLine.append("/StructElem"); + + // Write the reference to the PDF 2.0 namespace + if (m_aContext.Version >= PDFWriter::PDFVersion::PDF_2_0) + { + auto iterator = m_aNamespacesMap.find(constNamespacePDF2); + if (iterator != m_aNamespacesMap.end()) + aWriter.writeKeyAndReference("/NS", iterator->second); + } + aLine.append("/S/"); if( !rEle.m_aAlias.isEmpty() ) aLine.append( rEle.m_aAlias ); else @@ -5149,6 +5200,8 @@ bool PDFWriterImpl::emitCatalog() // emit metadata sal_Int32 nMetadataObject = emitDocumentMetadata(); + emitNamespaces(); + sal_Int32 nStructureDict = 0; if(m_aStructure.size() > 1) { @@ -5206,10 +5259,13 @@ bool PDFWriterImpl::emitCatalog() aWriter.startObject(rAttachedFile.mnObjectId); aWriter.startDict(); aWriter.write("/Type", "/Filespec"); - if (PDFWriter::PDFVersion::PDF_2_0 <= m_aContext.Version) + + // Add associated files relationship (since PDF 2.0) + if (m_aContext.Version >= PDFWriter::PDFVersion::PDF_2_0 || m_nPDFA_Version == 3) { aWriter.write("/AFRelationship", "/Source"); } + aWriter.writeKeyAndUnicodeEncrypt("/F", rAttachedFile.maFilename, rAttachedFile.mnObjectId); if (PDFWriter::PDFVersion::PDF_1_7 <= m_aContext.Version) { @@ -5249,6 +5305,16 @@ bool PDFWriterImpl::emitCatalog() if (!m_aDocumentAttachedFiles.empty()) { + // Write the associated files catalog entry (since PDF 2.0) + if (m_aContext.Version >= PDFWriter::PDFVersion::PDF_2_0 || m_nPDFA_Version == 3) + { + aLine.append("/AF"); + aLine.append("["); + for (auto & rAttachedFile : m_aDocumentAttachedFiles) + aWriter.writeReference(rAttachedFile.mnObjectId); + aLine.append("]"); + } + aWriter.startDictWithKey("/Names"); aWriter.startDictWithKey("/EmbeddedFiles"); aLine.append("/Names ["); @@ -5341,12 +5407,13 @@ bool PDFWriterImpl::emitCatalog() } // viewer preferences, if we had some, then emit - if( m_aContext.HideViewerToolbar || + if (m_aContext.HideViewerToolbar || (!m_aContext.DocumentInfo.Title.isEmpty() && m_aContext.DisplayPDFDocumentTitle) || m_aContext.HideViewerMenubar || m_aContext.HideViewerWindowControls || m_aContext.FitWindow || m_aContext.CenterWindow || (m_aContext.FirstPageLeft && m_aContext.PageLayout == PDFWriter::ContinuousFacing ) || - m_aContext.OpenInFullScreenMode ) + m_aContext.OpenInFullScreenMode || + m_bIsPDF_UA) { aLine.append( "/ViewerPreferences<<" ); if( m_aContext.HideViewerToolbar ) @@ -5359,7 +5426,8 @@ bool PDFWriterImpl::emitCatalog() aLine.append( "/FitWindow true\n" ); if( m_aContext.CenterWindow ) aLine.append( "/CenterWindow true\n" ); - if (!m_aContext.DocumentInfo.Title.isEmpty() && m_aContext.DisplayPDFDocumentTitle) + // PDF/UA-2 requires /DisplayDocTitle set to true + if ((!m_aContext.DocumentInfo.Title.isEmpty() && m_aContext.DisplayPDFDocumentTitle) || m_bIsPDF_UA) aLine.append( "/DisplayDocTitle true\n" ); if( m_aContext.FirstPageLeft && m_aContext.PageLayout == PDFWriter::ContinuousFacing ) aLine.append( "/Direction/R2L\n" ); @@ -5877,7 +5945,11 @@ sal_Int32 PDFWriterImpl::emitDocumentMetadata() if (m_nPDFA_Version > 0) aMetadata.mnPDF_A = m_nPDFA_Version; - aMetadata.mbPDF_UA = m_bIsPDF_UA; + if (m_bIsPDF_UA) + { + // If PDF 2.0+ we need to use PDF/UA-2 otherwise PDF/UA-1 + aMetadata.mnPDF_UA = (m_aContext.Version >= PDFWriter::PDFVersion::PDF_2_0) ? 2 : 1; + } lcl_assignMeta(m_aContext.DocumentInfo.Title, aMetadata.msTitle); lcl_assignMeta(m_aContext.DocumentInfo.Author, aMetadata.msAuthor); @@ -9113,8 +9185,12 @@ void PDFWriterImpl::writeJPG( const JPGEmit& rObject ) { BitmapEmit aEmit; aEmit.m_nObject = nMaskObject; - aEmit.m_aBitmap = BitmapEx( rObject.m_aAlphaMask.GetBitmap(), rObject.m_aAlphaMask ); - writeBitmapObject( aEmit, true ); + // tdf#164223 invert alpha mask for JPEG images + AlphaMask aAlpha = rObject.m_aAlphaMask; + if( aAlpha.hasAlpha() ) + aAlpha.Invert(); + aEmit.m_aBitmap = BitmapEx( rObject.m_aAlphaMask.GetBitmap(), aAlpha ); + writeBitmapMaskObject( aEmit ); } writeReferenceXObject(rObject.m_aReferenceXObject); @@ -9535,7 +9611,7 @@ void PDFWriterImpl::mergeAnnotationsFromExternalPage(filter::PDFObjectElement* p } -bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& rObject, bool bMask ) +bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& rObject ) { if (rObject.m_aReferenceXObject.hasExternalPDFData() && !m_aContext.UseReferenceXObject) { @@ -9546,35 +9622,13 @@ bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& rObject, bool bMask ) if (!updateObject(rObject.m_nObject)) return false; - Bitmap aBitmap; bool bWriteMask = false; - if( ! bMask ) - { - aBitmap = rObject.m_aBitmap.GetBitmap(); - if( rObject.m_aBitmap.IsAlpha() ) - { - if( m_aContext.Version >= PDFWriter::PDFVersion::PDF_1_4 ) - bWriteMask = true; - // else draw without alpha channel - } - } - else + Bitmap aBitmap = rObject.m_aBitmap.GetBitmap(); + if( rObject.m_aBitmap.IsAlpha() ) { - if( m_aContext.Version < PDFWriter::PDFVersion::PDF_1_4 || ! rObject.m_aBitmap.IsAlpha() ) - { - if( rObject.m_aBitmap.IsAlpha() ) - { - aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap(); - aBitmap.Convert( BmpConversion::N1BitThreshold ); - SAL_WARN_IF(aBitmap.getPixelFormat() != vcl::PixelFormat::N8_BPP, "vcl.pdfwriter", "mask conversion failed" ); - } - } - else if (aBitmap.getPixelFormat() != vcl::PixelFormat::N8_BPP) - { - aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap(); - aBitmap.Convert( BmpConversion::N8BitGreys ); - SAL_WARN_IF(aBitmap.getPixelFormat() != vcl::PixelFormat::N8_BPP, "vcl.pdfwriter", "alpha mask conversion failed" ); - } + if( m_aContext.Version >= PDFWriter::PDFVersion::PDF_1_4 ) + bWriteMask = true; + // else draw without alpha channel } BitmapScopedReadAccess pAccess(aBitmap); @@ -9629,64 +9683,53 @@ bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& rObject, bool bMask ) aLine.append( ">>\n" ); } } - if( ! bMask ) + aLine.append( "/ColorSpace" ); + if( bTrueColor ) + aLine.append( "/DeviceRGB\n" ); + else { - aLine.append( "/ColorSpace" ); - if( bTrueColor ) - aLine.append( "/DeviceRGB\n" ); - else - { - aLine.append( "[ /Indexed/DeviceRGB " ); - aLine.append( static_cast<sal_Int32>(pAccess->GetPaletteEntryCount()-1) ); - aLine.append( "\n<" ); - if (m_aContext.Encryption.canEncrypt()) + aLine.append( "[ /Indexed/DeviceRGB " ); + aLine.append( static_cast<sal_Int32>(pAccess->GetPaletteEntryCount()-1) ); + aLine.append( "\n<" ); + if (m_aContext.Encryption.canEncrypt()) + { + enableStringEncryption(rObject.m_nObject); + //check encryption buffer size + m_vEncryptionBuffer.resize(pAccess->GetPaletteEntryCount()*3); + int nChar = 0; + //fill the encryption buffer + for( sal_uInt16 i = 0; i < pAccess->GetPaletteEntryCount(); i++ ) { - enableStringEncryption(rObject.m_nObject); - //check encryption buffer size - m_vEncryptionBuffer.resize(pAccess->GetPaletteEntryCount()*3); - int nChar = 0; - //fill the encryption buffer - for( sal_uInt16 i = 0; i < pAccess->GetPaletteEntryCount(); i++ ) - { - const BitmapColor& rColor = pAccess->GetPaletteColor( i ); - m_vEncryptionBuffer[nChar++] = rColor.GetRed(); - m_vEncryptionBuffer[nChar++] = rColor.GetGreen(); - m_vEncryptionBuffer[nChar++] = rColor.GetBlue(); - } - //encrypt the colorspace lookup table - std::vector<sal_uInt8> aOutputBuffer(nChar); - m_pPDFEncryptor->encrypt(m_vEncryptionBuffer.data(), nChar, aOutputBuffer, nChar); - //now queue the data for output - COSWriter::appendHexArray(aOutputBuffer.data(), aOutputBuffer.size(), aLine); + const BitmapColor& rColor = pAccess->GetPaletteColor( i ); + m_vEncryptionBuffer[nChar++] = rColor.GetRed(); + m_vEncryptionBuffer[nChar++] = rColor.GetGreen(); + m_vEncryptionBuffer[nChar++] = rColor.GetBlue(); } - else //no encryption requested (PDF/A-1a program flow drops here) + //encrypt the colorspace lookup table + std::vector<sal_uInt8> aOutputBuffer(nChar); + m_pPDFEncryptor->encrypt(m_vEncryptionBuffer.data(), nChar, aOutputBuffer, nChar); + //now queue the data for output + COSWriter::appendHexArray(aOutputBuffer.data(), aOutputBuffer.size(), aLine); + } + else //no encryption requested (PDF/A-1a program flow drops here) + { + for( sal_uInt16 i = 0; i < pAccess->GetPaletteEntryCount(); i++ ) { - for( sal_uInt16 i = 0; i < pAccess->GetPaletteEntryCount(); i++ ) - { - const BitmapColor& rColor = pAccess->GetPaletteColor( i ); - COSWriter::appendHex( rColor.GetRed(), aLine ); - COSWriter::appendHex( rColor.GetGreen(), aLine ); - COSWriter::appendHex( rColor.GetBlue(), aLine ); - } + const BitmapColor& rColor = pAccess->GetPaletteColor( i ); + COSWriter::appendHex( rColor.GetRed(), aLine ); + COSWriter::appendHex( rColor.GetGreen(), aLine ); + COSWriter::appendHex( rColor.GetBlue(), aLine ); } - aLine.append( ">\n]\n" ); } - } - else - { - aLine.append( "/ColorSpace/DeviceGray\n" - "/Decode [ 1 0 ]\n" ); + aLine.append( ">\n]\n" ); } - if (!bMask && !m_bIsPDF_A1) + if (!m_bIsPDF_A1) { if( bWriteMask ) { nMaskObject = createObject(); - if (rObject.m_aBitmap.IsAlpha()) - aLine.append( "/SMask " ); - else - aLine.append( "/Mask " ); + aLine.append( "/SMask " ); aLine.append( nMaskObject ); aLine.append( " 0 R\n" ); } @@ -9760,9 +9803,100 @@ bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& rObject, bool bMask ) BitmapEmit aEmit; aEmit.m_nObject = nMaskObject; aEmit.m_aBitmap = rObject.m_aBitmap; - return writeBitmapObject( aEmit, true ); + return writeBitmapMaskObject( aEmit ); + } + + writeReferenceXObject(rObject.m_aReferenceXObject); + + return true; +} + +bool PDFWriterImpl::writeBitmapMaskObject( const BitmapEmit& rObject ) +{ + assert( rObject.m_aBitmap.IsAlpha() ); + assert( rObject.m_aBitmap.GetAlphaMask().GetBitmap().getPixelFormat() == vcl::PixelFormat::N8_BPP ); + + if (rObject.m_aReferenceXObject.hasExternalPDFData() && !m_aContext.UseReferenceXObject) + { + writeReferenceXObject(rObject.m_aReferenceXObject); + return true; + } + + if (!updateObject(rObject.m_nObject)) + return false; + + Bitmap aBitmap; + if( m_aContext.Version < PDFWriter::PDFVersion::PDF_1_4 ) + { + aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap(); + aBitmap.Convert( BmpConversion::N1BitThreshold ); + } + else + { + aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap(); } + const sal_Int32 nBitsPerComponent = 8; + + sal_Int32 nStreamLengthObject = createObject(); + + if (g_bDebugDisableCompression) + { + emitComment( "PDFWriterImpl::writeBitmapObject" ); + } + OStringBuffer aLine(1024); + aLine.append( rObject.m_nObject ); + aLine.append( " 0 obj\n" + "<</Type/XObject/Subtype/Image/Width " ); + aLine.append( static_cast<sal_Int32>(aBitmap.GetSizePixel().Width()) ); + aLine.append( "/Height " ); + aLine.append( static_cast<sal_Int32>(aBitmap.GetSizePixel().Height()) ); + aLine.append( "/BitsPerComponent " ); + aLine.append( nBitsPerComponent ); + aLine.append( "/Length " ); + aLine.append( nStreamLengthObject ); + aLine.append( " 0 R\n" ); + if (!g_bDebugDisableCompression) + { + aLine.append( "/Filter/FlateDecode" ); + } + aLine.append( "/ColorSpace/DeviceGray\n" + "/Decode [ 1 0 ]\n" ); + + aLine.append( ">>\n" + "stream\n" ); + if (!writeBuffer(aLine)) return false; + sal_uInt64 nStartPos = 0; + if (osl::File::E_None != m_aFile.getPos(nStartPos)) + return false; + + checkAndEnableStreamEncryption( rObject.m_nObject ); + beginCompression(); + BitmapScopedReadAccess pAccess(aBitmap); + //With PDF bitmaps, each row is padded to a BYTE boundary (multiple of 8 bits). + const int nScanLineBytes = ((pAccess->GetBitCount() * pAccess->Width()) + 7U) / 8U; + for( tools::Long i = 0; i < pAccess->Height(); i++ ) + { + if (!writeBufferBytes(pAccess->GetScanline(i), nScanLineBytes)) + return false; + } + endCompression(); + disableStreamEncryption(); + + sal_uInt64 nEndPos = 0; + if (osl::File::E_None != m_aFile.getPos(nEndPos)) + return false; + aLine.setLength( 0 ); + aLine.append( "\nendstream\nendobj\n\n" ); + if (!writeBuffer(aLine)) return false; + if (!updateObject(nStreamLengthObject)) return false; + aLine.setLength( 0 ); + aLine.append( nStreamLengthObject ); + aLine.append( " 0 obj\n" ); + aLine.append( static_cast<sal_Int64>(nEndPos-nStartPos) ); + aLine.append( "\nendobj\n\n" ); + if (!writeBuffer(aLine)) return false; + writeReferenceXObject(rObject.m_aReferenceXObject); return true; diff --git a/vcl/source/gdi/salmisc.cxx b/vcl/source/gdi/salmisc.cxx index 2ab6f77a23f1..05cae7ee3e21 100644 --- a/vcl/source/gdi/salmisc.cxx +++ b/vcl/source/gdi/salmisc.cxx @@ -55,8 +55,6 @@ static void ImplPALToPAL( const BitmapBuffer& rSrcBuffer, BitmapBuffer& rDstBuff Scanline* pSrcScanMap, Scanline* pDstScanMap, sal_Int32 const * pMapX, const sal_Int32* pMapY ) { const tools::Long nHeight1 = rDstBuffer.mnHeight - 1; - const ColorMask& rSrcMask = rSrcBuffer.maColorMask; - const ColorMask& rDstMask = rDstBuffer.maColorMask; BitmapPalette aColMap( rSrcBuffer.maPalette.GetEntryCount() ); BitmapColor* pColMapBuf = aColMap.ImplGetColorBuffer(); BitmapColor aIndex( 0 ); @@ -77,7 +75,7 @@ static void ImplPALToPAL( const BitmapBuffer& rSrcBuffer, BitmapBuffer& rDstBuff Scanline pSrcScan(pSrcScanMap[nMapY]), pDstScan(pDstScanMap[nActY]); for (tools::Long nX = 0; nX < rDstBuffer.mnWidth; ++nX) - pFncSetPixel( pDstScan, nX, pColMapBuf[ pFncGetPixel( pSrcScan, pMapX[ nX ], rSrcMask ).GetIndex() ], rDstMask ); + pFncSetPixel( pDstScan, nX, pColMapBuf[ pFncGetPixel( pSrcScan, pMapX[ nX ] ).GetIndex() ] ); DOUBLE_SCANLINES(); } @@ -88,8 +86,6 @@ static void ImplPALToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD Scanline* pSrcScanMap, Scanline* pDstScanMap, sal_Int32 const * pMapX, const sal_Int32* pMapY ) { const tools::Long nHeight1 = rDstBuffer.mnHeight - 1; - const ColorMask& rSrcMask = rSrcBuffer.maColorMask; - const ColorMask& rDstMask = rDstBuffer.maColorMask; const BitmapColor* pColBuf = rSrcBuffer.maPalette.ImplGetColorBuffer(); if (rSrcBuffer.meFormat == ScanlineFormat::N1BitMsbPal) @@ -107,8 +103,7 @@ static void ImplPALToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD { nMapX = pMapX[ nX ]; pFncSetPixel( pDstScan, nX++, - pSrcScan[ nMapX >> 3 ] & ( 1 << ( 7 - ( nMapX & 7 ) ) ) ? aCol1 : aCol0, - rDstMask ); + pSrcScan[ nMapX >> 3 ] & ( 1 << ( 7 - ( nMapX & 7 ) ) ) ? aCol1 : aCol0 ); } DOUBLE_SCANLINES(); @@ -122,7 +117,7 @@ static void ImplPALToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD Scanline pSrcScan(pSrcScanMap[nMapY]), pDstScan(pDstScanMap[nActY]); for (tools::Long nX = 0; nX < rDstBuffer.mnWidth; ++nX) - pFncSetPixel( pDstScan, nX, pColBuf[ pSrcScan[ pMapX[ nX ] ] ], rDstMask ); + pFncSetPixel( pDstScan, nX, pColBuf[ pSrcScan[ pMapX[ nX ] ] ] ); DOUBLE_SCANLINES(); } @@ -135,7 +130,7 @@ static void ImplPALToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD Scanline pSrcScan(pSrcScanMap[nMapY]), pDstScan(pDstScanMap[nActY]); for (tools::Long nX = 0; nX < rDstBuffer.mnWidth; ++nX) - pFncSetPixel( pDstScan, nX, pColBuf[ pFncGetPixel( pSrcScan, pMapX[ nX ], rSrcMask ).GetIndex() ], rDstMask ); + pFncSetPixel( pDstScan, nX, pColBuf[ pFncGetPixel( pSrcScan, pMapX[ nX ] ).GetIndex() ] ); DOUBLE_SCANLINES(); } @@ -147,8 +142,6 @@ static void ImplTCToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rDs Scanline* pSrcScanMap, Scanline* pDstScanMap, sal_Int32 const * pMapX, const sal_Int32* pMapY ) { const tools::Long nHeight1 = rDstBuffer.mnHeight - 1; - const ColorMask& rSrcMask = rSrcBuffer.maColorMask; - const ColorMask& rDstMask = rDstBuffer.maColorMask; if (rSrcBuffer.meFormat == ScanlineFormat::N24BitTcBgr) { @@ -166,7 +159,7 @@ static void ImplTCToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rDs aCol.SetBlue( *pPixel++ ); aCol.SetGreen( *pPixel++ ); aCol.SetRed( *pPixel ); - pFncSetPixel( pDstScan, nX, aCol, rDstMask ); + pFncSetPixel( pDstScan, nX, aCol ); } DOUBLE_SCANLINES() @@ -180,20 +173,18 @@ static void ImplTCToTC( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rDs Scanline pSrcScan(pSrcScanMap[nMapY]), pDstScan(pDstScanMap[nActY]); for (tools::Long nX = 0; nX < rDstBuffer.mnWidth; ++nX) - pFncSetPixel( pDstScan, nX, pFncGetPixel( pSrcScan, pMapX[ nX ], rSrcMask ), rDstMask ); + pFncSetPixel( pDstScan, nX, pFncGetPixel( pSrcScan, pMapX[ nX ] ) ); DOUBLE_SCANLINES(); } } } -static void ImplTCToPAL( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rDstBuffer, +static void ImplTCToPAL( BitmapBuffer const & rDstBuffer, FncGetPixel pFncGetPixel, FncSetPixel pFncSetPixel, Scanline* pSrcScanMap, Scanline* pDstScanMap, sal_Int32 const * pMapX, const sal_Int32* pMapY ) { const tools::Long nHeight1 = rDstBuffer.mnHeight- 1; - const ColorMask& rSrcMask = rSrcBuffer.maColorMask; - const ColorMask& rDstMask = rDstBuffer.maColorMask; std::unique_ptr<sal_uInt8[]> pColToPalMap(new sal_uInt8[ TC_TO_PAL_COLORS ]); BitmapColor aIndex( 0 ); @@ -218,8 +209,8 @@ static void ImplTCToPAL( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD for (tools::Long nX = 0; nX < rDstBuffer.mnWidth; ++nX) { - aIndex.SetIndex( pColToPalMap[ ImplIndexFromColor( pFncGetPixel( pSrcScan, pMapX[ nX ], rSrcMask ) ) ] ); - pFncSetPixel( pDstScan, nX, aIndex, rDstMask ); + aIndex.SetIndex( pColToPalMap[ ImplIndexFromColor( pFncGetPixel( pSrcScan, pMapX[ nX ] ) ) ] ); + pFncSetPixel( pDstScan, nX, aIndex ); } DOUBLE_SCANLINES(); @@ -228,13 +219,14 @@ static void ImplTCToPAL( const BitmapBuffer& rSrcBuffer, BitmapBuffer const & rD std::optional<BitmapBuffer> StretchAndConvert( const BitmapBuffer& rSrcBuffer, const SalTwoRect& rTwoRect, - ScanlineFormat nDstBitmapFormat, std::optional<BitmapPalette> pDstPal, const ColorMask* pDstMask ) + ScanlineFormat nDstBitmapFormat, std::optional<BitmapPalette> pDstPal ) { FncGetPixel pFncGetPixel; FncSetPixel pFncSetPixel; std::optional<BitmapBuffer> pDstBuffer(std::in_place); + pDstBuffer->meDirection = rSrcBuffer.meDirection; // set function for getting pixels pFncGetPixel = BitmapReadAccess::GetPixelFunction(rSrcBuffer.meFormat); if( !pFncGetPixel ) @@ -261,7 +253,6 @@ std::optional<BitmapBuffer> StretchAndConvert( IMPL_CASE_SET_FORMAT( N32BitTcBgrx, 32 ); IMPL_CASE_SET_FORMAT( N32BitTcRgba, 32 ); IMPL_CASE_SET_FORMAT( N32BitTcRgbx, 32 ); - IMPL_CASE_SET_FORMAT( N32BitTcMask, 32 ); default: // should never come here @@ -314,15 +305,6 @@ std::optional<BitmapBuffer> StretchAndConvert( } pDstBuffer->maPalette = *pDstPal; } - else if (nDstBitmapFormat == ScanlineFormat::N32BitTcMask) - { - assert(pDstMask && "destination buffer requires color mask"); - if (!pDstMask) - { - return std::nullopt; - } - pDstBuffer->maColorMask = *pDstMask; - } // short circuit the most important conversions bool bFastConvert = ImplFastBitmapConversion( *pDstBuffer, rSrcBuffer, rTwoRect ); @@ -378,15 +360,33 @@ std::optional<BitmapBuffer> StretchAndConvert( } // source scanline buffer - Scanline pTmpScan = rSrcBuffer.mpBits; - tools::Long nOffset = rSrcBuffer.mnScanlineSize; + Scanline pTmpScan; + tools::Long nOffset; + if (rSrcBuffer.meDirection == ScanlineDirection::TopDown) + { + pTmpScan = rSrcBuffer.mpBits; + nOffset = rSrcBuffer.mnScanlineSize; + } + else + { + pTmpScan = rSrcBuffer.mpBits + ( rSrcBuffer.mnHeight - 1 ) * rSrcBuffer.mnScanlineSize; + nOffset = -rSrcBuffer.mnScanlineSize; + } for (tools::Long i = 0; i < rSrcBuffer.mnHeight; i++, pTmpScan += nOffset) pSrcScan[ i ] = pTmpScan; // destination scanline buffer - pTmpScan = pDstBuffer->mpBits; - nOffset = pDstBuffer->mnScanlineSize; + if (pDstBuffer->meDirection == ScanlineDirection::TopDown) + { + pTmpScan = pDstBuffer->mpBits; + nOffset = pDstBuffer->mnScanlineSize; + } + else + { + pTmpScan = pDstBuffer->mpBits + ( pDstBuffer->mnHeight - 1 ) * pDstBuffer->mnScanlineSize; + nOffset = -pDstBuffer->mnScanlineSize; + } for (tools::Long i = 0; i < pDstBuffer->mnHeight; i++, pTmpScan += nOffset) pDstScan[ i ] = pTmpScan; @@ -409,7 +409,7 @@ std::optional<BitmapBuffer> StretchAndConvert( } else { - ImplTCToPAL( rSrcBuffer, *pDstBuffer, pFncGetPixel, pFncSetPixel, + ImplTCToPAL( *pDstBuffer, pFncGetPixel, pFncSetPixel, pSrcScan.get(), pDstScan.get(), pMapX.get(), pMapY.get() ); } diff --git a/vcl/source/helper/canvasbitmap.cxx b/vcl/source/helper/canvasbitmap.cxx index 55a606a466e4..e2bd7b1b8f80 100644 --- a/vcl/source/helper/canvasbitmap.cxx +++ b/vcl/source/helper/canvasbitmap.cxx @@ -275,15 +275,6 @@ VclCanvasBitmap::VclCanvasBitmap( const BitmapEx& rBitmap ) : } break; - case ScanlineFormat::N32BitTcMask: - m_bPalette = false; - m_nBitsPerInputPixel = 32; - m_aLayout.IsMsbFirst = false; // doesn't matter - setComponentInfo( m_pBmpAcc->GetColorMask().GetRedMask(), - m_pBmpAcc->GetColorMask().GetGreenMask(), - m_pBmpAcc->GetColorMask().GetBlueMask() ); - break; - default: OSL_FAIL( "unsupported bitmap format" ); break; @@ -399,6 +390,11 @@ uno::Sequence< sal_Int8 > SAL_CALL VclCanvasBitmap::getData( rendering::IntegerB bitmapLayout.ScanLineStride= aRequestedBytes.getOpenWidth(); sal_Int32 nScanlineStride=bitmapLayout.ScanLineStride; + if (m_pBmpAcc->IsBottomUp()) + { + pOutBuf += bitmapLayout.ScanLineStride*(aRequestedBytes.getOpenHeight()-1); + nScanlineStride *= -1; + } if( !m_aBmpEx.IsAlpha() ) { diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index c0ab64b8ab7f..19fb34df5d96 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -561,16 +561,25 @@ BitmapEx OpenGLHelper::ConvertBufferToBitmapEx(const sal_uInt8* const pBuffer, t BitmapScopedWriteAccess pAlphaWriteAccess( aAlpha ); #ifdef _WIN32 assert(pWriteAccess->GetScanlineFormat() == ScanlineFormat::N24BitTcBgr); + assert(pWriteAccess->IsTopDown()); + assert(pAlphaWriteAccess->IsTopDown()); #else assert(pWriteAccess->GetScanlineFormat() == ScanlineFormat::N24BitTcRgb); + assert(!pWriteAccess->IsTopDown()); + assert(!pAlphaWriteAccess->IsTopDown()); #endif assert(pAlphaWriteAccess->GetScanlineFormat() == ScanlineFormat::N8BitPal); size_t nCurPos = 0; for( tools::Long y = 0; y < nHeight; ++y) { +#ifdef _WIN32 Scanline pScan = pWriteAccess->GetScanline(y); Scanline pAlphaScan = pAlphaWriteAccess->GetScanline(y); +#else + Scanline pScan = pWriteAccess->GetScanline(nHeight-1-y); + Scanline pAlphaScan = pAlphaWriteAccess->GetScanline(nHeight-1-y); +#endif for( tools::Long x = 0; x < nWidth; ++x ) { *pScan++ = pBuffer[nCurPos]; diff --git a/vcl/source/pdf/XmpMetadata.cxx b/vcl/source/pdf/XmpMetadata.cxx index c7e6b17deb3d..0bc84404321e 100644 --- a/vcl/source/pdf/XmpMetadata.cxx +++ b/vcl/source/pdf/XmpMetadata.cxx @@ -206,7 +206,7 @@ void XmpMetadata::write() } // PDF/UA - if (mbPDF_UA) + if (mnPDF_UA > 0) { if (mnPDF_A != 0) { // tdf#157517 PDF/A extension schema is required @@ -289,7 +289,7 @@ void XmpMetadata::write() aXmlWriter.endElement(); // pdfaExtension:schemas aXmlWriter.endElement(); // rdf:Description } - OString sPdfUaVersion = OString::number(1); + OString sPdfUaVersion = OString::number(mnPDF_UA); aXmlWriter.startElement("rdf:Description"); aXmlWriter.attribute("rdf:about", ""_ostr); aXmlWriter.attribute("xmlns:pdfuaid", "http://www.aiim.org/pdfua/ns/id/"_ostr); @@ -298,6 +298,12 @@ void XmpMetadata::write() aXmlWriter.content(sPdfUaVersion); aXmlWriter.endElement(); + if (mnPDF_UA == 2) + { + aXmlWriter.startElement("pdfuaid:rev"); + aXmlWriter.content("2024"_ostr); + aXmlWriter.endElement(); + } aXmlWriter.endElement(); } diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx index 9c97c0bfd81d..4fc5a1b5d838 100644 --- a/vcl/source/treelist/svtabbx.cxx +++ b/vcl/source/treelist/svtabbx.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <accessibility/accessibletablistbox.hxx> + #include <comphelper/types.hxx> #include <vcl/accessiblefactory.hxx> #include <vcl/toolkit/svtabbx.hxx> @@ -216,8 +218,6 @@ void SvTabListBox::SetTabs() if( mvTabList.empty() ) return; - DBG_ASSERT(!mvTabList.empty(),"TabList ?"); - // The tree listbox has now inserted its tabs into the list. Now we // fluff up the list with additional tabs and adjust the rightmost tab // of the tree listbox. @@ -288,17 +288,17 @@ void SvTabListBox::dispose() SvTreeListBox::dispose(); } -void SvTabListBox::SetTabs(sal_uInt16 nTabs, tools::Long const pTabPositions[], MapUnit eMapUnit) +void SvTabListBox::SetTabs(const std::vector<tools::Long>& rTabPositions, MapUnit eMapUnit) { - assert(0 < nTabs); - mvTabList.resize(nTabs); + assert(!rTabPositions.empty()); + mvTabList.resize(rTabPositions.size()); MapMode aMMSource( eMapUnit ); MapMode aMMDest( MapUnit::MapPixel ); - for( sal_uInt16 nIdx = 0; nIdx < sal_uInt16(mvTabList.size()); nIdx++, pTabPositions++ ) + for( sal_uInt16 nIdx = 0; nIdx < sal_uInt16(mvTabList.size()); nIdx++) { - Size aSize( *pTabPositions, 0 ); + Size aSize(rTabPositions.at(nIdx), 0); aSize = LogicToLogic( aSize, &aMMSource, &aMMDest ); tools::Long nNewTab = aSize.Width(); mvTabList[nIdx].SetPos( nNewTab ); @@ -1165,9 +1165,8 @@ Reference< XAccessible > SvHeaderTabListBox::CreateAccessible() Reference< XAccessible > xAccParent = pParent->GetAccessible(); if ( xAccParent.is() ) { - m_pAccessible = AccessibleFactory::createAccessibleTabListBox( xAccParent, *this ); - if ( m_pAccessible ) - xAccessible = m_pAccessible->getMyself(); + m_pAccessible = new accessibility::AccessibleTabListBox(xAccParent, *this); + xAccessible = m_pAccessible->getMyself(); } } return xAccessible; diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 8b33aa64c8db..ecf2302bfe4d 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -939,6 +939,10 @@ bool Dialog::ImplStartExecute() // Also pNotifier may be nullptr when a dialog (e.g., "update // links?") is to be shown when loading a document. + // Never crash in release builds (assume "cancel"), but allow + // to see the not yet async / not properly set up dialogs in + // debug builds. + assert(!"A dialog without a notifier: make me async / properly set up"); return false; } } diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 7b3c2a78be62..bdb5bba774fa 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -77,8 +77,8 @@ struct MenuLayoutData : public ControlLayoutData using namespace vcl; -#define EXTRAITEMHEIGHT 4 -#define SPACE_AROUND_TITLE 4 +constexpr auto EXTRAITEMHEIGHT = 4; +constexpr auto SPACE_AROUND_TITLE = 4; static bool ImplAccelDisabled() { @@ -1137,7 +1137,12 @@ void Menu::SetTipHelpText( sal_uInt16 nItemId, const OUString& rStr ) MenuItemData* pData = pItemList->GetData( nItemId ); if ( pData ) + { pData->aTipHelpText = rStr; + + if (ImplGetSalMenu() && pData->pSalMenuItem) + ImplGetSalMenu()->SetItemTooltip(pData->pSalMenuItem.get(), rStr); + } } OUString Menu::GetTipHelpText( sal_uInt16 nItemId ) const diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index fd7897fea5f6..fdb13c52eb95 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -792,7 +792,7 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, NotifyEventType n ContextMenuEvent* pEv = new ContextMenuEvent; pEv->pWindow = std::move(pChild); pEv->aChildPos = aChildPos; - Application::PostUserEvent( Link<void*,void>( pEv, ContextMenuEventLink ) ); + Application::PostUserEvent( LINK_NONMEMBER( pEv, ContextMenuEventLink ) ); } else bRet = ! ImplCallCommand( pChild, CommandEventId::ContextMenu, nullptr, true, &aChildPos ); @@ -2272,7 +2272,7 @@ static void ImplHandleClose( const vcl::Window* pWindow ) { DelayedCloseEvent* pEv = new DelayedCloseEvent; pEv->pWindow = pWin; - Application::PostUserEvent( Link<void*,void>( pEv, DelayedCloseEventLink ) ); + Application::PostUserEvent( LINK_NONMEMBER( pEv, DelayedCloseEventLink ) ); } } diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx index 99fc1eb277d5..94a69add0501 100644 --- a/vcl/unx/generic/printer/cpdmgr.cxx +++ b/vcl/unx/generic/printer/cpdmgr.cxx @@ -328,7 +328,7 @@ const PPDParser* CPDManager::createCPDParser(const OUString& rPrinter) OUString aValueName; PPDValue* pValue; std::vector<PPDKey*> keys; - std::vector<OUString> default_values; + std::unordered_map<OUString, OUString> aOptionDefaults; for (int i = 0; i < num_attribute; i++) { char *name, *default_value; @@ -352,7 +352,7 @@ const PPDParser* CPDManager::createCPDParser(const OUString& rPrinter) // PageSize key is used in many places aOptionName = u"PageSize"_ustr; } - default_values.push_back(aDefaultValue); + aOptionDefaults[aOptionName] = aDefaultValue; pKey = new PPDKey(aOptionName); // If number of values are 0, this is not settable via UI @@ -425,23 +425,26 @@ const PPDParser* CPDManager::createCPDParser(const OUString& rPrinter) PPDContext& rContext = m_aDefaultContexts[aPrinter]; rContext.setParser(pNewParser); setDefaultPaper(rContext); - std::vector<OUString>::iterator defit = default_values.begin(); - for (auto const& key : keys) + + for (const auto & [ rKey, rDefValue ] : aOptionDefaults) { - const PPDValue* p1Value = key->getValue(*defit); - if (p1Value) + const PPDKey* key = pNewParser->getKey(rKey); + if (key) { - if (p1Value != key->getDefaultValue()) + const PPDValue* p1Value = key->getValue(rDefValue); + if (p1Value) { - rContext.setValue(key, p1Value, true); - SAL_INFO("vcl.unx.print", - "key " << key->getKey() << " is set to " << *defit); + if (p1Value != key->getDefaultValue()) + { + rContext.setValue(key, p1Value, true); + SAL_INFO("vcl.unx.print", + "key " << key->getKey() << " is set to " << rDefValue); + } + else + SAL_INFO("vcl.unx.print", + "key " << key->getKey() << " is defaulted to " << rDefValue); } - else - SAL_INFO("vcl.unx.print", - "key " << key->getKey() << " is defaulted to " << *defit); } - ++defit; } rInfo.m_pParser = pNewParser; diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx b/vcl/unx/gtk3/salnativewidgets-gtk.cxx index c3bbda65728f..e88d823781aa 100644 --- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx @@ -2705,6 +2705,7 @@ bool GtkSalGraphics::updateSettings(AllSettings& rSettings) // High contrast aStyleSet.SetHighContrastMode(g_strcmp0(pThemeName, "HighContrast") == 0); g_free(pThemeName); + aStyleSet.SetSystemColorsLoaded(true); // finally update the collected settings rSettings.SetStyleSettings( aStyleSet ); diff --git a/vcl/win/app/fileregistration.cxx b/vcl/win/app/fileregistration.cxx index 9e72e5bf03a0..31a3d996ed72 100644 --- a/vcl/win/app/fileregistration.cxx +++ b/vcl/win/app/fileregistration.cxx @@ -24,11 +24,10 @@ #include <prewin.h> #include <Shobjidl.h> #include <systools/win32/comtools.hxx> +#include <systools/win32/extended_max_path.hxx> #include <versionhelpers.h> #include <postwin.h> -#define MAX_LONG_PATH 32767 - namespace vcl::fileregistration { static void LaunchModernSettingsDialogDefaultApps() @@ -75,25 +74,25 @@ static bool IsDefaultAppInstalledInReg() { const wchar_t* keyPath = L"SOFTWARE\\LibreOffice\\UNO\\InstallPath"; - WCHAR szRegPath[MAX_LONG_PATH]; - DWORD cbData = static_cast<DWORD>(MAX_LONG_PATH * sizeof(WCHAR)); - auto rc = RegGetValueW(HKEY_LOCAL_MACHINE, keyPath, nullptr, RRF_RT_REG_SZ, nullptr, - static_cast<PVOID>(szRegPath), &cbData); + WCHAR szRegPath[EXTENDED_MAX_PATH]; + DWORD cbData = sizeof(szRegPath); + auto rc = RegGetValueW(HKEY_LOCAL_MACHINE, keyPath, nullptr, RRF_RT_REG_SZ, nullptr, szRegPath, + &cbData); if (rc != ERROR_SUCCESS) return false; - WCHAR szProcPath[MAX_LONG_PATH]; - if (!GetModuleFileNameW(nullptr, szProcPath, MAX_LONG_PATH)) + WCHAR szProcPath[EXTENDED_MAX_PATH]; + if (!GetModuleFileNameW(nullptr, szProcPath, EXTENDED_MAX_PATH)) return false; - WCHAR szFullProcPath[MAX_LONG_PATH]; - if (!GetFullPathNameW(szProcPath, MAX_LONG_PATH, szFullProcPath, nullptr)) + WCHAR szFullProcPath[EXTENDED_MAX_PATH]; + if (!GetFullPathNameW(szProcPath, EXTENDED_MAX_PATH, szFullProcPath, nullptr)) return false; - if (!GetLongPathNameW(szFullProcPath, szFullProcPath, MAX_LONG_PATH)) + if (!GetLongPathNameW(szFullProcPath, szFullProcPath, EXTENDED_MAX_PATH)) return false; - if (!GetLongPathNameW(szRegPath, szRegPath, MAX_LONG_PATH)) + if (!GetLongPathNameW(szRegPath, szRegPath, EXTENDED_MAX_PATH)) return false; if (wcslen(szRegPath) > 0 && wcsstr(szFullProcPath, szRegPath) != nullptr) diff --git a/vcl/win/gdi/salbmp.cxx b/vcl/win/gdi/salbmp.cxx index 780f91ee8fdb..4559e22f30ed 100644 --- a/vcl/win/gdi/salbmp.cxx +++ b/vcl/win/gdi/salbmp.cxx @@ -21,7 +21,6 @@ #include <vcl/BitmapAccessMode.hxx> #include <vcl/BitmapBuffer.hxx> #include <vcl/BitmapPalette.hxx> -#include <vcl/ColorMask.hxx> #include <vcl/Scanline.hxx> #include <com/sun/star/beans/XFastPropertySet.hpp> #include <win/wincomp.hxx> @@ -251,6 +250,7 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap() { sal_uInt8* pSrcRGB(pRGB->mpBits); const sal_uInt32 nExtraRGB(pRGB->mnScanlineSize - (nW * 3)); + const bool bTopDown(pRGB->meDirection == ScanlineDirection::TopDown); const Gdiplus::Rect aAllRect(0, 0, nW, nH); Gdiplus::BitmapData aGdiPlusBitmapData; pRetval->LockBits(&aAllRect, Gdiplus::ImageLockModeWrite, PixelFormat24bppRGB, &aGdiPlusBitmapData); @@ -258,7 +258,8 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap() // copy data to Gdiplus::Bitmap; format is BGR here in both cases, so memcpy is possible for(sal_uInt32 y(0); y < nH; y++) { - sal_uInt8* targetPixels = static_cast<sal_uInt8*>(aGdiPlusBitmapData.Scan0) + (y * aGdiPlusBitmapData.Stride); + const sal_uInt32 nYInsert(bTopDown ? y : nH - y - 1); + sal_uInt8* targetPixels = static_cast<sal_uInt8*>(aGdiPlusBitmapData.Scan0) + (nYInsert * aGdiPlusBitmapData.Stride); memcpy(targetPixels, pSrcRGB, nW * 3); pSrcRGB += nW * 3 + nExtraRGB; @@ -335,13 +336,11 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap(const Win { // convert alpha bitmap to ScanlineFormat::N8BitPal format if not yet in that format SalTwoRect aSalTwoRect(0, 0, pA->mnWidth, pA->mnHeight, 0, 0, pA->mnWidth, pA->mnHeight); - const BitmapPalette& rTargetPalette = Bitmap::GetGreyPalette(256); pExtraA = StretchAndConvert( *pA, aSalTwoRect, - ScanlineFormat::N8BitPal, - rTargetPalette); + ScanlineFormat::N8BitPal); pSalA->ReleaseBuffer(pA, BitmapAccessMode::Read); pA = pExtraA ? &*pExtraA : nullptr; @@ -368,6 +367,7 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap(const Win sal_uInt8* pSrcA(pA->mpBits); const sal_uInt32 nExtraRGB(pRGB->mnScanlineSize - (nW * 3)); const sal_uInt32 nExtraA(pA->mnScanlineSize - nW); + const bool bTopDown(pRGB->meDirection == ScanlineDirection::TopDown); const Gdiplus::Rect aAllRect(0, 0, nW, nH); Gdiplus::BitmapData aGdiPlusBitmapData; pRetval->LockBits(&aAllRect, Gdiplus::ImageLockModeWrite, PixelFormat32bppARGB, &aGdiPlusBitmapData); @@ -376,7 +376,8 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap(const Win // A from alpha, so inner loop is needed (who invented BitmapEx..?) for(sal_uInt32 y(0); y < nH; y++) { - sal_uInt8* targetPixels = static_cast<sal_uInt8*>(aGdiPlusBitmapData.Scan0) + (y * aGdiPlusBitmapData.Stride); + const sal_uInt32 nYInsert(bTopDown ? y : nH - y - 1); + sal_uInt8* targetPixels = static_cast<sal_uInt8*>(aGdiPlusBitmapData.Scan0) + (nYInsert * aGdiPlusBitmapData.Stride); for(sal_uInt32 x(0); x < nW; x++) { @@ -429,73 +430,45 @@ std::shared_ptr<Gdiplus::Bitmap> WinSalBitmap::ImplCreateGdiPlusBitmap(const Win return pRetval; } -bool WinSalBitmap::Create( HANDLE hBitmap ) +bool WinSalBitmap::Create( HBITMAP hBitmap ) { - bool bRet = true; + assert(hBitmap); + assert(!mhDIB && "already created"); + assert(!mhDDB && "already created"); - mhDDB = static_cast<HBITMAP>( hBitmap ); - - if( mhDIB ) - { - if (PBITMAPINFOHEADER pBIH = static_cast<PBITMAPINFOHEADER>(GlobalLock( mhDIB ))) - { - maSize = Size( pBIH->biWidth, pBIH->biHeight ); - mnBitCount = pBIH->biBitCount; - - if( mnBitCount ) - mnBitCount = ( mnBitCount <= 1 ) ? 1 : ( mnBitCount <= 4 ) ? 4 : ( mnBitCount <= 8 ) ? 8 : 24; - - GlobalUnlock( mhDIB ); - } - else - bRet = false; - } - else if( mhDDB ) - { - BITMAP aDDBInfo; - - if( GetObjectW( mhDDB, sizeof( aDDBInfo ), &aDDBInfo ) ) - { - maSize = Size( aDDBInfo.bmWidth, aDDBInfo.bmHeight ); - mnBitCount = aDDBInfo.bmPlanes * aDDBInfo.bmBitsPixel; + BITMAP aDDBInfo; + if( !GetObjectW( hBitmap, sizeof( aDDBInfo ), &aDDBInfo ) ) + return false; - if( mnBitCount ) - { - mnBitCount = ( mnBitCount <= 1 ) ? 1 : - ( mnBitCount <= 4 ) ? 4 : - ( mnBitCount <= 8 ) ? 8 : 24; - } - } - else - { - mhDDB = nullptr; - bRet = false; - } - } - else - bRet = false; + mhDDB = hBitmap; + maSize = Size( aDDBInfo.bmWidth, aDDBInfo.bmHeight ); + mnBitCount = aDDBInfo.bmPlanes * aDDBInfo.bmBitsPixel; - return bRet; + return true; } bool WinSalBitmap::Create(const Size& rSize, vcl::PixelFormat ePixelFormat, const BitmapPalette& rPal) { - bool bRet = false; + assert(!mhDIB && "already created"); + assert(!mhDDB && "already created"); - mhDIB = ImplCreateDIB(rSize, ePixelFormat, rPal); + HGLOBAL hDIB = ImplCreateDIB(rSize, ePixelFormat, rPal); - if( mhDIB ) - { - maSize = rSize; - mnBitCount = vcl::pixelFormatBitCount(ePixelFormat); - bRet = true; - } + if( !hDIB ) + return false; - return bRet; + mhDIB = hDIB; + maSize = rSize; + mnBitCount = vcl::pixelFormatBitCount(ePixelFormat); + + return true; } bool WinSalBitmap::Create( const SalBitmap& rSSalBitmap ) { + assert(!mhDIB && "already created"); + assert(!mhDDB && "already created"); + bool bRet = false; const WinSalBitmap& rSalBitmap = static_cast<const WinSalBitmap&>(rSSalBitmap); @@ -523,6 +496,9 @@ bool WinSalBitmap::Create( const SalBitmap& rSSalBitmap ) bool WinSalBitmap::Create( const SalBitmap& rSSalBmp, SalGraphics* pSGraphics ) { + assert(!mhDIB && "already created"); + assert(!mhDDB && "already created"); + const WinSalBitmap& rSalBmp = static_cast<const WinSalBitmap&>(rSSalBmp); if(!rSalBmp.mhDIB) return false; @@ -535,20 +511,10 @@ bool WinSalBitmap::Create( const SalBitmap& rSSalBmp, SalGraphics* pSGraphics ) WinSalGraphics* pGraphics = static_cast<WinSalGraphics*>(pSGraphics); HDC hDC = pGraphics->getHDC(); - HBITMAP hNewDDB; BITMAP aDDBInfo; PBYTE pBits = reinterpret_cast<PBYTE>(pBI) + pBI->bmiHeader.biSize + - ImplGetDIBColorCount( rSalBmp.mhDIB ) * sizeof( RGBQUAD ); - - if( pBI->bmiHeader.biBitCount == 1 ) - { - hNewDDB = CreateBitmap( pBI->bmiHeader.biWidth, pBI->bmiHeader.biHeight, 1, 1, nullptr ); - - if( hNewDDB ) - SetDIBits( hDC, hNewDDB, 0, pBI->bmiHeader.biHeight, pBits, pBI, DIB_RGB_COLORS ); - } - else - hNewDDB = CreateDIBitmap( hDC, &pBI->bmiHeader, CBM_INIT, pBits, pBI, DIB_RGB_COLORS ); + ImplGetDIBColorCount( rSalBmp.mhDIB ) * sizeof( RGBQUAD ); + HBITMAP hNewDDB = CreateDIBitmap( hDC, &pBI->bmiHeader, CBM_INIT, pBits, pBI, DIB_RGB_COLORS ); GlobalUnlock( rSalBmp.mhDIB ); @@ -568,10 +534,15 @@ bool WinSalBitmap::Create( const SalBitmap& rSSalBmp, SalGraphics* pSGraphics ) bool WinSalBitmap::Create(const SalBitmap& rSSalBmp, vcl::PixelFormat eNewPixelFormat) { + assert(!mhDIB && "already created"); + assert(!mhDDB && "already created"); + bool bRet = false; const WinSalBitmap& rSalBmp = static_cast<const WinSalBitmap&>(rSSalBmp); + assert( rSalBmp.mhDDB && "why copy an empty WinSalBitmap"); + if( rSalBmp.mhDDB ) { mhDIB = ImplCreateDIB( rSalBmp.maSize, eNewPixelFormat, BitmapPalette() ); @@ -623,14 +594,17 @@ bool WinSalBitmap::Create( const css::uno::Reference< css::rendering::XBitmapCan css::uno::Reference< css::beans::XFastPropertySet > xFastPropertySet( rBitmapCanvas, css::uno::UNO_QUERY ); - if( xFastPropertySet ) { + assert( xFastPropertySet && "creating without an xFastPropertySet?"); + + if( xFastPropertySet ) + { css::uno::Sequence< css::uno::Any > args; if( xFastPropertySet->getFastPropertyValue(bMask ? 2 : 1) >>= args ) { sal_Int64 aHBmp64; if( args[0] >>= aHBmp64 ) { - return Create( reinterpret_cast<HANDLE>(aHBmp64) ); + return Create( reinterpret_cast<HBITMAP>(aHBmp64) ); } } } @@ -786,11 +760,11 @@ BitmapBuffer* WinSalBitmap::AcquireBuffer( BitmapAccessMode /*nMode*/ ) { pBuffer.reset(new BitmapBuffer); - pBuffer->meFormat = pBIH->biBitCount == 1 ? ScanlineFormat::N1BitMsbPal : - pBIH->biBitCount == 8 ? ScanlineFormat::N8BitPal : + pBuffer->meFormat = pBIH->biBitCount == 8 ? ScanlineFormat::N8BitPal : pBIH->biBitCount == 24 ? ScanlineFormat::N24BitTcBgr : - pBIH->biBitCount == 32 ? ScanlineFormat::N32BitTcMask : + pBIH->biBitCount == 32 ? ScanlineFormat::N32BitTcXrgb : ScanlineFormat::NONE; + assert (pBuffer->meFormat != ScanlineFormat::NONE); if (pBuffer->meFormat != ScanlineFormat::NONE) { @@ -807,44 +781,6 @@ BitmapBuffer* WinSalBitmap::AcquireBuffer( BitmapAccessMode /*nMode*/ ) memcpy( pBuffer->maPalette.ImplGetColorBuffer(), pBI->bmiColors, nPalCount * sizeof( RGBQUAD ) ); pBuffer->mpBits = reinterpret_cast<PBYTE>(pBI) + pBI->bmiHeader.biSize + nPalCount * sizeof( RGBQUAD ); } - else if( ( pBIH->biBitCount == 16 ) || ( pBIH->biBitCount == 32 ) ) - { - sal_uLong nOffset = 0; - - if( pBIH->biCompression == BI_BITFIELDS ) - { - nOffset = 3 * sizeof( RGBQUAD ); - ColorMaskElement aRedMask(*reinterpret_cast<UINT32*>(&pBI->bmiColors[ 0 ])); - aRedMask.CalcMaskShift(); - ColorMaskElement aGreenMask(*reinterpret_cast<UINT32*>(&pBI->bmiColors[ 1 ])); - aGreenMask.CalcMaskShift(); - ColorMaskElement aBlueMask(*reinterpret_cast<UINT32*>(&pBI->bmiColors[ 2 ])); - aBlueMask.CalcMaskShift(); - pBuffer->maColorMask = ColorMask(aRedMask, aGreenMask, aBlueMask); - } - else if( pBIH->biBitCount == 16 ) - { - ColorMaskElement aRedMask(0x00007c00UL); - aRedMask.CalcMaskShift(); - ColorMaskElement aGreenMask(0x000003e0UL); - aGreenMask.CalcMaskShift(); - ColorMaskElement aBlueMask(0x0000001fUL); - aBlueMask.CalcMaskShift(); - pBuffer->maColorMask = ColorMask(aRedMask, aGreenMask, aBlueMask); - } - else - { - ColorMaskElement aRedMask(0x00ff0000UL); - aRedMask.CalcMaskShift(); - ColorMaskElement aGreenMask(0x0000ff00UL); - aGreenMask.CalcMaskShift(); - ColorMaskElement aBlueMask(0x000000ffUL); - aBlueMask.CalcMaskShift(); - pBuffer->maColorMask = ColorMask(aRedMask, aGreenMask, aBlueMask); - } - - pBuffer->mpBits = reinterpret_cast<PBYTE>(pBI) + pBI->bmiHeader.biSize + nOffset; - } else pBuffer->mpBits = reinterpret_cast<PBYTE>(pBI) + pBI->bmiHeader.biSize; } diff --git a/vcl/win/gdi/salgdi2.cxx b/vcl/win/gdi/salgdi2.cxx index b4aa68fa29cb..ba4afc157bc3 100644 --- a/vcl/win/gdi/salgdi2.cxx +++ b/vcl/win/gdi/salgdi2.cxx @@ -116,10 +116,14 @@ void convertToWinSalBitmap(SalBitmap& rSalBitmap, WinSalBitmap& rWinSalBitmap) rWinSalBitmap.Create(rSalBitmap.GetSize(), vcl::bitDepthToPixelFormat(rSalBitmap.GetBitCount()), aBitmapPalette); BitmapBuffer* pWrite = rWinSalBitmap.AcquireBuffer(BitmapAccessMode::Write); - // convert to bottom-up data - sal_uInt8* pSource = pRead->mpBits + pRead->mnScanlineSize * (pRead->mnHeight - 1); + sal_uInt8* pSource(pRead->mpBits); sal_uInt8* pDestination(pWrite->mpBits); - tools::Long readRowChange = -pRead->mnScanlineSize; + tools::Long readRowChange = pRead->mnScanlineSize; + if (pRead->meDirection == ScanlineDirection::TopDown) + { + pSource += pRead->mnScanlineSize * (pRead->mnHeight - 1); + readRowChange = -readRowChange; + } std::unique_ptr<ColorScanlineConverter> pConverter; diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx b/vcl/win/gdi/salnativewidgets-luna.cxx index 18946824ed99..993a0113dcff 100644 --- a/vcl/win/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/gdi/salnativewidgets-luna.cxx @@ -543,25 +543,28 @@ static bool drawThemedControl(HDC hDC, ControlType nType, int iPart, int iState, if (iPart == BP_PUSHBUTTON) { Color aButtonColor = ThemeColors::GetThemeColors().GetButtonColor(); - const Color& rButtonRectColor = ThemeColors::GetThemeColors().GetDisabledColor(); + Color aButtonRectColor = ThemeColors::GetThemeColors().GetDisabledColor(); if (iState == PBS_PRESSED) - aButtonColor.Merge(rButtonRectColor, 230); + aButtonColor.Merge(aButtonRectColor, 230); else if (iState == PBS_DISABLED) - aButtonColor = ThemeColors::GetThemeColors().GetDisabledColor(); + if (UseDarkMode()) + aButtonRectColor.DecreaseLuminance(150); + else + aButtonRectColor.IncreaseLuminance(150); else if (iState == PBS_HOT) - aButtonColor.Merge(rButtonRectColor, 170); + aButtonColor.Merge(aButtonRectColor, 170); else if (iState == PBS_DEFAULTED) - aButtonColor.Merge(rButtonRectColor, 150); + aButtonColor.Merge(aButtonRectColor, 150); ScopedHBRUSH hbrush(CreateSolidBrush(RGB(aButtonColor.GetRed(), aButtonColor.GetGreen(), aButtonColor.GetBlue()))); FillRect(hDC, &rc, hbrush.get()); - hbrush = ScopedHBRUSH(CreateSolidBrush(RGB(rButtonRectColor.GetRed(), - rButtonRectColor.GetGreen(), - rButtonRectColor.GetBlue()))); + hbrush = ScopedHBRUSH(CreateSolidBrush(RGB(aButtonRectColor.GetRed(), + aButtonRectColor.GetGreen(), + aButtonRectColor.GetBlue()))); FrameRect(hDC, &rc, hbrush.get()); return true; } diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index 82bb02d85e1c..a9376209680c 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -3002,6 +3002,7 @@ void WinSalFrame::UpdateSettings( AllSettings& rSettings ) aStyleSettings.SetMenuColor(aStyleSettings.GetWindowColor()); if (ThemeColors::VclPluginCanUseThemeColors()) lcl_LoadColorsFromTheme(aStyleSettings); + aStyleSettings.SetSystemColorsLoaded(true); rSettings.SetMouseSettings( aMouseSettings ); rSettings.SetStyleSettings( aStyleSettings ); @@ -3206,7 +3207,7 @@ void WinSalFrame::SetTaskBarProgress(int nCurrentProgress) { if (!m_pTaskbarList3) { - HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_ITaskbarList3, (void **)&m_pTaskbarList3); + HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList3)); if (!SUCCEEDED(hr) || !m_pTaskbarList3) return; } @@ -3218,7 +3219,7 @@ void WinSalFrame::SetTaskBarState(VclTaskBarStates eTaskBarState) { if (!m_pTaskbarList3) { - HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_ITaskbarList3, (void **)&m_pTaskbarList3); + HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList3)); if (!SUCCEEDED(hr) || !m_pTaskbarList3) return; } diff --git a/wizards/source/scriptforge/po/es.po b/wizards/source/scriptforge/po/es.po index 201ac61589fa..1b3291215465 100644 --- a/wizards/source/scriptforge/po/es.po +++ b/wizards/source/scriptforge/po/es.po @@ -16,7 +16,7 @@ msgstr "" "Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?" "product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n" "POT-Creation-Date: 2025-01-11 13:09:17\n" -"PO-Revision-Date: 2025-01-14 12:43+0100\n" +"PO-Revision-Date: 2025-01-16 17:46+0100\n" "Last-Translator: B. Antonio Fernández\n" "Language-Team: es_ES\n" "Language: es\n" @@ -94,7 +94,6 @@ msgid "" " « ByStep » = %3" msgstr "" "Los valores respectivos de 'From',UpTo' y 'ByStep' son incoherentes.\n" -"Les valeurs respectives de 'From', 'UpTo' et 'ByStep' sont incohérentes.\n" "\n" " « From » = %1\n" " « UpTo » = %2\n" @@ -118,7 +117,7 @@ msgid "" "%3 = '%4'" msgstr "" "Ha fallado la apertura del documento de Base.\n" -"Algunos argumento pueden ser erróneos.\n" +"Algunos argumentos pueden ser erróneos.\n" "\n" "El archivo no existe o no está registrado con el nombre indicado.\n" "\n" @@ -139,8 +138,8 @@ msgid "" "\n" "The index = %1." msgstr "" -"No se encuentra el formulario dentro de los formularios del documento '%2'." -"El índice indicado está fuera de límites.\n" +"El formulario indicado no se encuentra entre los formularios del documento " +"'%2'. El índice indicado está fuera de límites.\n" "\n" "El documento de Base es '%3'.\n" "\n" @@ -197,13 +196,13 @@ msgid "" "The name of the sheet = '%2'\n" "The index = %1." msgstr "" -"El formulario no se encuentra en la hoja de Calc. El índice indicado está " -"fuera de límites.\n" +"El formulario indicado no se encuentra en la hoja de Calc. El índice " +"indicado está fuera de límites.\n" "\n" -"El documento de Calc es '%3'.\n" +"Documento de Calc = '%3'.\n" "\n" -"El nombre de la hoja = '%2'\n" -"El índice = %1." +"Nombre de la hoja = '%2'\n" +"Índice = %1." #. SF_Session.ExecuteCalcFunction error message #. 'Calc' should not be translated @@ -213,7 +212,7 @@ msgid "" "The Calc '%1' function encountered an error. Either the given function does " "not exist or its arguments are invalid." msgstr "" -"La función de Calc '%1' a encontrado un error. La función no existe o los " +"La función de Calc '%1' ha devuelto un error. La función no existe o los " "argumentos indicados no son válidos." #. SF_Chart.ExportToFile error message @@ -233,7 +232,7 @@ msgid "" "%3 = %4" msgstr "" "No se ha podido exportar el gráfico.\n" -"El archivo de destino no se debe sobrescribir o tiene establecido el " +"El archivo de destino no se puede sobrescribir o tiene establecido el " "atributo de solo lectura.\n" "\n" "%1 = '%2'\n" @@ -270,9 +269,9 @@ msgid "" msgstr "" "El archivo indicado no se reconoce como un archivo CSV válido.\n" "\n" -" « File name » = %1\n" -" Line number = %2\n" -" Content = %3" +" « Nombre de archivo » = %1\n" +" Línea = %2\n" +" Contenido = %3" #. SF_Base GetDatabase #. %1: An identifier @@ -290,12 +289,12 @@ msgid "" "« %3 » = '%4'\n" "« Document » = %5" msgstr "" -"No se puede acceder a la base de datos asociada al documento Base.\n" -"Verifique los parámetros de conexión y contraseña .\n" +"No se puede acceder a la base de datos asociada al documento de Base.\n" +"Verifique los parámetros de conexión/ inicio de sesión .\n" "\n" "« %1 » = '%2'\n" "« %3 » = '%4'\n" -"« Document » = %5" +"« Documento » = %5" #. SF_Database when running update SQL statement #. %1: The concerned method @@ -318,9 +317,10 @@ msgid "" "\n" "The concerned dialog is '%1'." msgstr "" -"No se pudo ejecutar el comando porque el diálogo se cerró inadvertidamente.\n" +"No se pudo ejecutar el comando porque el diálogo se ha cerrado " +"inadvertidamente.\n" "\n" -"El diálogo es '%1'." +"Diálogo = '%1'." #. SF_Dialog creation #. %1: An identifier @@ -341,7 +341,8 @@ msgid "" "« %5 » = %6\n" "« %7 » = %8" msgstr "" -"No se ha podido encontrar el diálogo en la biblioteca indicada.\n" +"No se ha podido encontrar el diálogo en el contenedor o biblioteca " +"indicados.\n" "« %1 » = %2\n" "« %3 » = %4\n" "« %5 » = %6\n" @@ -382,7 +383,7 @@ msgstr "" "Error en uno de los argumentos.\n" "\n" "No se reconoce el tipo de documento, no se ha indicado ninguna plantilla \n" -"o no se encuentra la plantilla en su equipo.\n" +"o la plantilla no se encuentra en su equipo.\n" "\n" "%1 = '%2'\n" "%3 = '%4'" @@ -400,7 +401,7 @@ msgstr "" "La acción indicada no se ha podido ejecutar porque el documento se cerró " "inadvertidamente.\n" "\n" -"El documento es '%1'" +"Documento = '%1'" #. SF_UI.OpenDocument error message #. %1: An identifier @@ -425,8 +426,7 @@ msgstr "" "Ha fallado la apertura del documento.\n" "Error en alguno de los argumentos.\n" "\n" -"El archivo no existe, la contraseña no es válida o el filtro indicado no es " -"válido.\n" +"El archivo no existe, la contraseña o el filtro indicado no son válidos.\n" "\n" "%1 = '%2'\n" "%3 = '%4'\n" @@ -443,7 +443,7 @@ msgid "" "\n" "« %1 » = %2" msgstr "" -"Ha intentado editar un documento no modificable El documento no ha " +"Ha intentado editar un documento no modificable El documento no se ha " "cambiado.\n" "\n" "« %1 » = %2" @@ -463,7 +463,7 @@ msgid "" msgstr "" "No se puede guardar el documento.\n" "El documento se ha abierto en modo de solo lectura, el archivo destino es de " -"solo lectura o el archivo destino no está definido.\n" +"solo lectura o no se ha definido el archivo destino.\n" "\n" "%1 = '%2'" @@ -576,8 +576,8 @@ msgid "" "\n" "File name = '%1'" msgstr "" -"No se ha completado la lectura del archivo porque se encontró un inesperado " -"fin de archivo.\n" +"No se ha completado la lectura del archivo porque se encontró un final " +"inesperado de archivo.\n" "\n" "Nombre del archivo = '%1'" @@ -586,7 +586,7 @@ msgstr "" #, kde-format msgctxt "ERRORLOCATION" msgid "Location : %1" -msgstr "localizado en la línea: %1" +msgstr "Localizado en la línea: %1" #. Title in error message box #. %1: an error number @@ -611,7 +611,7 @@ msgid "" "%1 = '%2'\n" "%3 = %4" msgstr "" -"No se puede exportar El campo de la base de datos.\n" +"No se puede exportar el campo de la base de datos.\n" "El archivo destino no puede sobrescribirse o es de solo lectura.\n" "\n" "%1 = '%2'\n" @@ -627,8 +627,8 @@ msgid "" "\n" "File name = '%1'" msgstr "" -"El archivo se ha cerrado previamente, no se puede ejecutar la operación " -"indicada.\n" +"No se puede ejecutar la operación indicada con el archivo porque el archivo " +"se ha cerrado previamente, .\n" "\n" "Nombre del archivo = '%1'" @@ -644,8 +644,8 @@ msgid "" "File name = '%1'\n" "Open mode = %2" msgstr "" -"No se ha podido realizar la operación indicada con el archivo porque es " -"incompatible con el modo de apertura del archivo.\n" +"No se ha puede ejecutar la operación indicada con el archivo porque es " +"incompatible con el modo en que se ha abierto.\n" "\n" "Nombre del archivo = '%1'\n" "Modo de apertura = %2" @@ -661,7 +661,7 @@ msgid "" "\n" "« %1 » = '%3'" msgstr "" -"El método « %2 » no es aplicable en el sistema de archivos interno de un " +"El método « %2 » no es aplicable en el sistema de archivos interno del " "documento.\n" "\n" "« %1 » = '%3'" @@ -727,6 +727,7 @@ msgstr "" " https://bugs.documentfoundation.org/\n" "\n" "Mas detalles : \n" +"\n" #. SF_Dictionary Add/ReplaceKey error message #. @@ -735,7 +736,7 @@ msgid "" "The insertion or the update of an entry into a dictionary failed because the " "given key contains only spaces." msgstr "" -"El registro o actualización de una entrada en un diccionario ha fallado " +"El registro o actualización de una entrada en el diccionario ha fallado " "porque la clave indicada contiene solo espacios." #. Logfile record @@ -806,8 +807,8 @@ msgid "" "\n" "« %1 » = %2" msgstr "" -"« %1 » contiene el nombre de una carpeta que ya existe, no el nombre de un " -"fichero.\n" +"« %1 » contiene el nombre de una carpeta que ya existe, no el de un " +"archivo.\n" "\n" "« %1 » = %2" @@ -821,7 +822,8 @@ msgid "" "\n" "« %1 » = %2" msgstr "" -"« %1 » contiene el nombre de un archivo que ya existe, no de una carpeta.\n" +"« %1 » contiene el nombre de un archivo que ya existe, no el de una " +"carpeta.\n" "\n" "« %1 » = %2" @@ -890,8 +892,8 @@ msgid "" " %3 : « %4 »\n" " %5 : « %6 »" msgstr "" -"El gestor de páginas no se puede modificar debido a incoherencia en los " -"argumentos.\n" +"No se pudo configurar el Administrador de páginas debido a argumentos " +"inconsistentes..\n" "\n" " %1 : « %2 »\n" " %3 : « %4 »\n" @@ -902,7 +904,7 @@ msgctxt "PYTHONSHELL" msgid "" "The APSO extension could not be located in your LibreOffice installation." msgstr "" -"No se puede encontrar la extensión APSO en la instalación de LibreOffice." +"No se puede encontrar la extensión APSO en su instalación de LibreOffice." #. SF_Calc.ExportRangeToFile error message #. %1: An identifier @@ -921,8 +923,7 @@ msgid "" "%3 = %4" msgstr "" "El rango indicado no se puede exportar.\n" -"El archivo destino no se puede sobrescribir o tiene el atributo de solo " -"lectura.\n" +"No se permite sobrescribir el archivo destino o es de solo lectura.\n" "\n" "%1 = '%2'\n" "%3 = %4" @@ -938,8 +939,8 @@ msgid "" "\n" "« %1 » = %2" msgstr "" -"No está permitido copiar o mover un archivo a una carpeta que tiene atributo " -"de solo lectura ni borrar dicho archivo o carpeta.\n" +"No está permitido copiar o mover un archivo a un destino de solo lectura y " +"tampoco borrar dicho archivo o carpeta.\n" "\n" "« %1 » = %2" @@ -961,9 +962,9 @@ msgid "" "Field value : « %2 »\n" "Field type : « %3 »" msgstr "" -"No se ha podido insertar o actualizar por el sistema de gestión de la base " -"de datos.\n" -"Posibles causea:\n" +"No se ha podido insertar o actualizar un registro de la base de datos por el " +"sistema de base de datos.\n" +"Posibles causas:\n" "- el campo no es actualizable\n" "- se ha proporcionado un valor [NULL] que está prohibido para el campo\n" "- el tipo de valor proporcionado y el tipo de campo son incompatibles\n" @@ -1031,7 +1032,7 @@ msgid "" "SQL Statement : « %1 »" msgstr "" "No se ha podido interpretar o ejecutar una instrucción SQL por el sistema de " -"gestión de la base de datos.\n" +"base de datos.\n" "Verifique la sintaxis y los nombres de tablas y campos ...\n" "\n" "Instrucción SQL : « %1 »" @@ -1053,7 +1054,7 @@ msgid "" " « %3 »" msgstr "" "No se ha podido interpretar o ejecutar una instrucción SQL por el sistema de " -"gestión de la base de datos.\n" +"base de datos.\n" "Verifique la sintaxis y los nombres de tablas y campos ...\n" "\n" "Instrucción SQL : « %1 »\n" @@ -1118,7 +1119,7 @@ msgid "" "The UnitTest service cannot proceed further with the on-going test." msgstr "" "El método '%1' no es el esperado en el contexto actual.\n" -"El servicio UnitTest no puede continuar con la comprobación actual." +"El servicio UnitTest no puede continuar con la comprobación." #. SF_FileSystem copy/move/delete error message #. %1: An identifier @@ -1173,7 +1174,7 @@ msgid "" "\n" "« %1 » = %2" msgstr "" -"No se ha registrado ningún servicio con el nombre '%4' para la librería " +"No se ha registrado ningún servicio con el nombre '%4' para la biblioteca " "'%3'.\n" "\n" "« %1 » = %2" @@ -1238,7 +1239,7 @@ msgstr "" #, kde-format msgctxt "VALIDATEFILE" msgid " « %1 » must be of type String." -msgstr " « %1 » debe ser del tipo String." +msgstr " « %1 » debe ser de tipo String." #. SF_Utils._ValidateFile error message #. %1: Wrong argument name @@ -1314,7 +1315,7 @@ msgstr " « %1 » debe ser del tipo o tipos siguientes: %2" #, kde-format msgctxt "VALIDATEVALUES" msgid " « %1 » must contain one of next values : %2" -msgstr " « %1 » solo admite uno de los siguiente valores : %2" +msgstr " « %1 » debe contener uno de los siguiente valores : %2" #. SF_Utils._ValidateFile error message #. %1: Wrong argument name @@ -1366,8 +1367,8 @@ msgid "" "« %1 » = %2\n" "« %3 » = %4" msgstr "" -"La referencia indicada no se corresponde con ninguna posición válida en el " -"texto.\n" +"El fragmento de texto indicado no se corresponde con ninguna posición válida " +"en el texto.\n" "\n" "« %1 » = %2\n" "« %3 » = %4" @@ -1382,9 +1383,3 @@ msgid "" msgstr "" "Una de las direcciones de correo no es válida.\n" "Dirección no válida = « %1 »" - -#, kde-format -#~ msgctxt "VALIDATEREGEX" -#~ msgid " « %1 » must match next regular expression : %2" -#~ msgstr "" -#~ " « %1 » doit se conformer à l'expression régulière suivante : %2" diff --git a/wizards/source/scriptforge/po/fr.po b/wizards/source/scriptforge/po/fr.po index 7f4f62bf43dc..772c7d81b669 100644 --- a/wizards/source/scriptforge/po/fr.po +++ b/wizards/source/scriptforge/po/fr.po @@ -1396,9 +1396,3 @@ msgid "" msgstr "" "Une des adresses e-mail est invalide.\n" "Adresse invalide = « %1 »" - -#, kde-format -#~ msgctxt "VALIDATEREGEX" -#~ msgid " « %1 » must match next regular expression : %2" -#~ msgstr "" -#~ " « %1 » doit se conformer à l'expression régulière suivante : %2" diff --git a/wizards/source/scriptforge/po/pt.po b/wizards/source/scriptforge/po/pt.po index aa4f5d5cfac6..38e08718b6b2 100644 --- a/wizards/source/scriptforge/po/pt.po +++ b/wizards/source/scriptforge/po/pt.po @@ -131,14 +131,6 @@ msgstr " « %1 » deve conter um dos seguintes valores : %2" #. SF_Utils._Validate error message #. %1: Wrong argument name -#. %2: A regular expression -#, kde-format -msgctxt "VALIDATEREGEX" -msgid " « %1 » must match next regular expression : %2" -msgstr " « %1 » deve corresponder à seguinte expressão regular : %2" - -#. SF_Utils._Validate error message -#. %1: Wrong argument name #. %2: The name of a Basic class #, kde-format msgctxt "VALIDATECLASS" diff --git a/wizards/source/scriptforge/python/scriptforge.py b/wizards/source/scriptforge/python/scriptforge.py index d558cc0bbd2c..3e3e91cfcde2 100644 --- a/wizards/source/scriptforge/python/scriptforge.py +++ b/wizards/source/scriptforge/python/scriptforge.py @@ -2512,7 +2512,7 @@ class SFDocuments: return self.ExecMethod(self.vbGet + self.flgUno, 'XSpreadsheet', sheetname) # Usual methods - def A1Style(self, row1, column1, row2 = 0, column2 = 0, sheetname = '~'): + def A1Style(self, row1, column1, row2 = 0, column2 = 0, sheetname = ''): return self.ExecMethod(self.vbMethod, 'A1Style', row1, column1, row2, column2, sheetname) def Activate(self, sheetname = ''): @@ -2608,6 +2608,9 @@ class SFDocuments: def InsertSheet(self, sheetname, beforesheet = 32768): return self.ExecMethod(self.vbMethod, 'InsertSheet', sheetname, beforesheet) + def Intersect(self, range1, range2): + return self.ExecMethod(self.vbMethod, 'Intersect', range1, range2) + def MoveRange(self, source, destination): return self.ExecMethod(self.vbMethod, 'MoveRange', source, destination) @@ -2926,14 +2929,17 @@ class SFWidgets: A context menu is usually predefined at LibreOffice installation. Customization is done statically with the Tools + Customize dialog. - The actual service provides a mean to make temporary additions at - the bottom of a context menu. Those changes are lost when the document is closed. + + The actual service provides means + - to make temporary additions at the bottom of a context menu, + - to replace entirely a context menu. + Those changes are lost when the document is closed. """ # Mandatory class properties for service registration serviceimplementation = 'basic' servicename = 'SFWidgets.ContextMenu' servicesynonyms = ('contextmenu', 'sfwidgets.contextmenu') - serviceproperties = dict(ShortcutCharacter = 0, SubmenuCharacter = 0) + serviceproperties = dict(ParentDocument = 0, ShortcutCharacter = 0, SubmenuCharacter = 0) def Activate(self, enable = True): return self.ExecMethod(self.vbMethod, 'Activate', enable) @@ -2941,6 +2947,9 @@ class SFWidgets: def AddItem(self, menuitem, command = '', script = ''): return self.ExecMethod(self.vbMethod, 'AddItem', menuitem, command, script) + def RemoveAllItems(self): + return self.ExecMethod(self.vbMethod, 'RemoveAllItems') + # ######################################################################### # SF_PopupMenu CLASS diff --git a/wizards/source/scriptforge/python/scriptforge.pyi b/wizards/source/scriptforge/python/scriptforge.pyi index d35ee2304fb0..b04fa691b6ac 100644 --- a/wizards/source/scriptforge/python/scriptforge.pyi +++ b/wizards/source/scriptforge/python/scriptforge.pyi @@ -5655,6 +5655,19 @@ class SFDocuments: """ ... + def Intersect(self, range1:RANGE, range2:RANGE) -> RANGE: + """ + Computes the intersection between two ranges, i.e. the range common to both input ranges. + Args + ``range1``: the first range, as a string. + + ``range2``: the second range, as a string. + Returns + The string representing the intersection between the two input ranges, + or a zero-length string when the intersection is empty. + """ + ... + def MoveRange(self, source: RANGE, destination: RANGE) -> RANGE: """ Moves a specified source range to a destination cell. @@ -6913,15 +6926,18 @@ class SFWidgets: """ Complete a predefined context menu with new items. - A context menu is obtained by a right-click on several areas of a document. + A context menu is obtained by a right-click on specific areas of a document. Each area determines its own context menu. (Consider right-clicking on a cell or on a sheet tab in a Calc document). Each component model has its own set of context menus. A context menu is usually predefined at LibreOffice installation. Customization is done statically with the Tools + Customize dialog. - The actual service provides a mean to make temporary additions at - the bottom of a context menu in an active document. Those changes are lost when the document is closed. + + The actual service provides means + - to make temporary additions at the bottom of a context menu, + - to replace entirely a context menu. + Those changes are lost when the document is closed. The name of a context menu is the last component of the resource URL: "private:resource/popupmenu/the-name-here" @@ -6929,6 +6945,8 @@ class SFWidgets: Context menu items are either usual items or line separators. Checkboxes or radio buttons are not supported. """ + ParentDocument: Union[DOCUMENT, BASE, CALC, FORMDOCUMENT, WRITER] + """ Document class (or one of its subclasses) instance to which the context menu belongs to. """ ShortcutCharacter: str """ Character used to define the access key of a menu item. The default character is "~" (tilde). """ SubmenuCharacter: str @@ -6960,11 +6978,11 @@ class SFWidgets: def Activate(self, enable: bool = ...) -> None: """ - Make the added items of the context menu available for execution, or, at the opposite, - disable them, depending on the argument. + Make the added items of the context menu stored in the document available for execution, + or, at the opposite, disable them, depending on the argument. Args - ``enable``: when ``True`` (default), the new items of the context menu are made visible. - When ``False``, they are suppressed. + ``enable``: when ``True`` (default), the local menu stored in the document is made active. + When False, the global menu defined at LibreOffice level takes the precedence. Returns None """ @@ -6996,6 +7014,19 @@ class SFWidgets: """ ... + def RemoveAllItems(self) -> None: + """ + Remove all items, both + - predefined with ``Tools + Customize`` and saved in the document + - added by ``AddItem()`` + Adding custom items (``AddItem``) remains possible. + This action cannot be reverted except by closing and reopening the document. + + Returns + None + """ + ... + # ######################################################################### # SF_PopupMenu CLASS # ######################################################################### diff --git a/wizards/source/sfdocuments/SF_Calc.xba b/wizards/source/sfdocuments/SF_Calc.xba index 8b3b7101ed40..7bd5e4e8d251 100644 --- a/wizards/source/sfdocuments/SF_Calc.xba +++ b/wizards/source/sfdocuments/SF_Calc.xba @@ -372,7 +372,7 @@ Const cstSubArgs = "Row1, Column1, [Row2], [Column2], [SheetName]="&qu Check: If IsMissing(Row2) Or IsEmpty(Row2) Then Row2 = 0 If IsMissing(Column2) Or IsEmpty(Column2) Then Column2 = 0 - If IsMissing(SheetName) Or IsEmpty(SheetName) Then SheetName = "~" + If IsMissing(SheetName) Or IsEmpty(SheetName) Then SheetName = "" vSheetName = SheetName If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then @@ -388,6 +388,11 @@ Check: If Row2 > MAXROWS Then Row2 = MAXROWS If Column1 > MAXCOLS Then Column1 = MAXCOLS If Column2 > MAXCOLS Then Column2 = MAXCOLS + If Row1 <= 0 Or Column1 <= 0 Then GoTo Catch + If Row2 = Row1 And Column2 = Column1 Then ' Single cell + Row2 = 0 + Column2 = 0 + End If If Row2 > 0 And Row2 < Row1 Then lTemp = Row2 : Row2 = Row1 : Row1 = lTemp @@ -398,9 +403,9 @@ Check: Try: ' Surround the sheet name with single quotes when required by the presence of special characters - vSheetName = _QuoteSheetName(vSheetName) + If Len(vSheetName) > 0 Then vSheetName = "$" & _QuoteSheetName(vSheetName) & "." ' Define the new range string - sA1Style = "$" & vSheetName & "." _ + sA1Style = vSheetName _ & "$" & _GetColumnName(Column1) & "$" & CLng(Row1) _ & Iif(Row2 > 0 And Column2 > 0, ":$" & _GetColumnName(Column2) & "$" & CLng(Row2), "") @@ -2088,6 +2093,71 @@ Catch: End Function ' SFDocuments.SF_Calc.InsertSheet REM ----------------------------------------------------------------------------- +Public Function Intersect(Optional ByVal Range1 As Variant _ + , Optional ByVal Range2 As Variant _ + ) As String +''' Returns the cell range as a string that is common to the input ranges +''' Args: +''' Range1: a first range as a string +''' Range2: a second range as a string +''' Returns: +''' The intersection, as a string, representing the range common to both input ranges, +''' or a zero-length string when the intersection is empty. +''' Example: +''' calc.Intersect("J7:M11", "$Sheet2.$L$10:$N$17") +''' ' $Sheet2.$L$10:$M$11 when Sheet2 is the current sheet, otherwise the empty string + +Dim sIntersect As String ' Return value +Dim oRangeAddress1 As Object ' SF_UI._Address type +Dim oRangeAddress2 As Object ' SF_UI._Address type +Dim oRange1 As Object ' com.sun.star.table.CellRangeAddress +Dim oRange2 As Object ' com.sun.star.table.CellRangeAddress +Dim lStartRow As Long ' Intersection starting row +Dim lEndRow As Long ' Intersection ending row +Dim lStartColumn As Long ' Intersection starting column +Dim lEndColumn As Long ' Intersection ending column + +Const cstThisSub = "SFDocuments.Calc.Intersect" +Const cstSubArgs = "Range1, Range2" + + If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch + sIntersect = "" + +Check: + If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then + If Not _IsStillAlive(True) Then GoTo Finally + If Not ScriptForge.SF_Utils._Validate(Range1, "Range1", V_STRING) Then GoTo Finally + If Not ScriptForge.SF_Utils._Validate(Range2, "Range2", V_STRING) Then GoTo Finally + End If + + Set oRangeAddress1 = _ParseAddress(Range1) + Set oRange1 = oRangeAddress1.XCellRange.RangeAddress + Set oRangeAddress2 = _ParseAddress(Range2) + Set oRange2 = oRangeAddress2.XCellRange.RangeAddress + + If oRangeAddress1.SheetName <> oRangeAddress2.SheetName Then GoTo Finally + +Try: + ' Find the top-left and bottom-right coordinates of the intersection + lStartRow = Iif(oRange1.StartRow > oRange2.StartRow, oRange1.StartRow, oRange2.StartRow) + 1 + lStartColumn = Iif(oRange1.StartColumn > oRange2.StartColumn, oRange1.StartColumn, oRange2.StartColumn) + 1 + lEndRow = Iif(oRange1.EndRow < oRange2.EndRow, oRange1.EndRow, oRange2.EndRow) + 1 + lEndColumn = Iif(oRange1.EndColumn < oRange2.EndColumn, oRange1.EndColumn, oRange2.EndColumn) + 1 + + ' Check that the 2 ranges overlap each other + If lStartRow <= lEndRow And lStartColumn <= lEndColumn Then + sIntersect = A1Style(lStartRow, lStartColumn, lEndRow, lEndColumn, oRangeAddress1.SheetName) + End If + +Finally: + Intersect = sIntersect + 'ScriptForge.SF_Utils._ExitFunction(cstThisSub) + Exit Function +Catch: + GoTo Finally +End Function ' SFDocuments.SF_Calc.Intersect + +REM ----------------------------------------------------------------------------- Public Function Methods() As Variant ''' Return the list of public methods of the Calc service as an array @@ -2114,6 +2184,7 @@ Public Function Methods() As Variant , "ImportFromCSVFile" _ , "ImportFromDatabase" _ , "InsertSheet" _ + , "Intersect" _ , "MoveRange" _ , "MoveSheet" _ , "Offset" _ diff --git a/wizards/source/sfdocuments/SF_Register.xba b/wizards/source/sfdocuments/SF_Register.xba index c2a58bc61a8d..028a483ea050 100644 --- a/wizards/source/sfdocuments/SF_Register.xba +++ b/wizards/source/sfdocuments/SF_Register.xba @@ -422,6 +422,7 @@ Try: Case Else ' Only superclass Set oDocument = New SF_Document Set oSuperDocument = oDocument + Set oSuperDocument.[_SubClass] = oDocument End Select With oDocument ' Initialize attributes of subclass Set .[Me] = oDocument diff --git a/wizards/source/sfdocuments/script.xlb b/wizards/source/sfdocuments/script.xlb index 3d2264bd3f6d..8188fd53bb1f 100644 --- a/wizards/source/sfdocuments/script.xlb +++ b/wizards/source/sfdocuments/script.xlb @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd"> <library:library xmlns:library="http://openoffice.org/2000/library" library:name="SFDocuments" library:readonly="false" library:passwordprotected="false"> - <library:element library:name="__License"/> - <library:element library:name="SF_Form"/> - <library:element library:name="SF_DocumentListener"/> - <library:element library:name="SF_Document"/> - <library:element library:name="SF_Calc"/> - <library:element library:name="SF_Writer"/> - <library:element library:name="SF_Register"/> - <library:element library:name="SF_Base"/> - <library:element library:name="SF_FormControl"/> - <library:element library:name="SF_FormDocument"/> <library:element library:name="SF_Chart"/> + <library:element library:name="SF_FormDocument"/> + <library:element library:name="SF_FormControl"/> + <library:element library:name="SF_Base"/> + <library:element library:name="SF_Register"/> + <library:element library:name="SF_Writer"/> + <library:element library:name="SF_Calc"/> + <library:element library:name="SF_Document"/> + <library:element library:name="SF_DocumentListener"/> + <library:element library:name="SF_Form"/> + <library:element library:name="__License"/> </library:library>
\ No newline at end of file diff --git a/wizards/source/sfwidgets/SF_ContextMenu.xba b/wizards/source/sfwidgets/SF_ContextMenu.xba index 0694569cf9c0..49610cec32b2 100644 --- a/wizards/source/sfwidgets/SF_ContextMenu.xba +++ b/wizards/source/sfwidgets/SF_ContextMenu.xba @@ -14,7 +14,7 @@ Option Explicit ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''' SF_ContextMenu ''' ============== -''' Complete a predefined context menu with new items. +''' Complete pr replace a predefined context menu with new items. ''' ''' A context menu is obtained by a right-click on several areas of a document. ''' Each area determines its own context menu. @@ -23,8 +23,13 @@ Option Explicit ''' ''' A context menu is usually predefined at LibreOffice installation. ''' Customization is done statically with the Tools + Customize dialog. -''' The actual service provides a mean to make temporary additions at -''' the bottom of a context menu. Those changes are lost when the document is closed. +''' The actual service provides tools to configure a context menu preset in an open document. +''' Context menus configured at LibreOffice installation level are not included. +''' The service provides a mean to +''' - make temporary additions at the bottom of a context menu +''' - replace a context menu. +''' The changes are lost when the document is closed. +''' The context menu may be emptied, which gives the illusion that the right-click is inactive. ''' ''' The name of a context menu is the last component of the resource URL: ''' "private:resource/popupmenu/the-name-here" @@ -36,10 +41,12 @@ Option Explicit ''' ''' A context menu is setup in next sequence: ''' 1. Define each menu item, submenu or line separator with AddItem(...) -''' 2. Activate() the menu to make it visible and active -''' 3. If meaningful, it can be temporarily deactivate with Activate(False) +''' 2. Activate() the local menu to make it visible and active +''' 3. If meaningful, it can be temporarily deactivated with Activate(False) +''' In that case, the menu defined at LibreOffice level takes the lead. ''' 4. Items can be optionally added, and the menu might be made active again -''' 5. Dispose() cleans the memory resources +''' 5, RemoveAllItems(...) optionally removes all standard and all added items +''' 6. Dispose() cleans the memory resources ''' ''' Definitions: ''' SubmenuCharacter: the character or the character string that identifies how menus are cascading @@ -112,6 +119,7 @@ Private ServiceName As String ' Menu descriptors Private Component As Object ' com.sun.star.lang.XComponent +Private DocumentType As String ' "Calc", "Writer", ... Private ResourceURL As String ' private:resource/popupmenu/... Private ConfigManager As Object ' com.sun.star.ui.XUIConfigurationManager Private MenuTree As Variant ' Dictionary nodename - com.sun.star.ui.ItemDescriptor pair @@ -133,6 +141,7 @@ Private Sub Class_Initialize() ObjectType = "ContextMenu" ServiceName = "SFWidgets.ContextMenu" Set Component = Nothing + DocumentType = "" Set ConfigManager = Nothing ResourceURL = "" Set MenuTree = Nothing @@ -155,6 +164,12 @@ End Function ' SFWidgets.SF_ContextMenu Explicit Destructor REM ================================================================== PROPERTIES REM ----------------------------------------------------------------------------- +Property Get ParentDocument() As Variant +''' The ParentDocument property returns a document class (or one of its subclasses) instance + ParentDocument = _PropertyGet("ParentDocument") +End Property ' SFWidgets.SF_ContextMenu.ParentDocument (get) + +REM ----------------------------------------------------------------------------- Property Get ShortcutCharacter() As Variant ''' The ShortcutCharacter property specifies character preceding the underline access key ShortcutCharacter = _PropertyGet("ShortcutCharacter") @@ -171,11 +186,11 @@ REM ===================================================================== METHOD REM ----------------------------------------------------------------------------- Public Sub Activate(Optional ByVal Enable As Variant) As Variant -''' Make the added items of the context menu available for execution, +''' Make the added items of the context menu stored in the document available for execution, ''' or, at the opposite, disable them, depending on the argument. ''' Args: -''' Enable: When True (default), the new items of the context menu are made visible. -''' When False, they are suppressed. +''' Enable: When True (default), the local menu stored in the document is made active. +''' When False, the global menu defined at LibreOffice level takes the precedence. ''' Returns: ''' None ''' Examples: @@ -346,8 +361,10 @@ Public Function Methods() As Variant ''' Return the list of public methods of the Model service as an array Methods = Array( _ - "AddItem" _ + "Activate" _ + , "AddItem" _ , "Execute" _ + , "RemoveAllItems" _ ) End Function ' SFWidgets.SF_ContextMenu.Methods @@ -357,13 +374,66 @@ Public Function Properties() As Variant ''' Return the list or properties of the Timer a.AddItem("B>B1")class as an array Properties = Array( _ - "ShortcutCharacter" _ + "ParentDocument" _ + , "ShortcutCharacter" _ , "SubmenuCharacter" _ ) End Function ' SFWidgets.SF_ContextMenu.Properties REM ----------------------------------------------------------------------------- +Public Sub RemoveAllItems() +''' Remove all items, both +''' - predefined with Tools + Customize and saved in the document +''' - added by contextmenu.AddItem() +''' Adding custom items (AddItem) remains possible. +''' This action cannot be reverted except by closing and reopening the document. +''' Example: Associate next Sub with the on-right-click event of a sheet. +''' => The custom menu appears when right-clicking in column C, otherwise normal behaviour +''' Sub OnRightClick1(Optional XRange) ' Xrange is a com.sun.star.table.XCellRange +''' Dim calc, menu, bColumn +''' Set calc = CreateScriptService("Calc", ThisComponent) +''' Set menu = calc.ContextMenus("cell") +''' menu.RemoveAllItems() +''' bColumn = ( Len(calc.Intersect("Sheet1.$C:$C", XRange.AbsoluteName)) > 0 ) +''' If bColumn Then +''' menu.AddItem("A", Script := "vnd.sun.star.script:Standard.Module1.EnterA?language=Basic&location=document") +''' ... +''' End If +''' menu.Activate(bColumn) +''' End Sub + +Dim i As Long + +Const cstThisSub = "SFWidgets.ContextMenu.RemoveAllItems" +Const cstSubArgs = "" + +Check: + If SF_Utils._ErrorHandling() Then On Local Error GoTo Catch + SF_Utils._EnterFunction(cstThisSub, cstSubArgs) + +Try: + For i = MenuContainer.Count - 1 To 0 Step -1 + MenuContainer.removeByIndex(i) + Next i + + With ConfigManager + If .hasSettings(ResourceURL) Then +' .removeSettings(ResourceURL) + .replaceSettings(ResourceURL, MenuContainer) + Else + .insertSettings(ResourceURL, MenuContainer) + End If + End With + +Finally: + SF_Utils._ExitFunction(cstThisSub) + Exit Sub +Catch: + GoTo Finally +End Sub ' SFWidgets.SF_ContextMenu.RemoveAllItems + +REM ----------------------------------------------------------------------------- Public Function SetProperty(Optional ByVal PropertyName As Variant _ , Optional ByRef Value As Variant _ ) As Boolean @@ -514,6 +584,7 @@ Private Function _PropertyGet(Optional ByVal psProperty As String) As Variant ''' psProperty: the name of the property Dim vGet As Variant ' Return value +Dim oWindow As Object ' SF_UI.Window object Dim cstThisSub As String Const cstSubArgs = "" @@ -524,6 +595,11 @@ Const cstSubArgs = "" _PropertyGet = Null Select Case UCase(psProperty) + Case UCase("ParentDocument") + If Not IsNull(Component) Then + Set oWindow = ScriptForge.SF_UI._IdentifyWindow(Component) + If Not IsNull(oWindow) Then Set _PropertyGet = CreateScriptService(oWindow.DocumentType, Component) Else Set _PropertyGet = Nothing + End If Case UCase("ShortcutCharacter") _PropertyGet = _UnderlineAccessKeyChar Case UCase("SubmenuCharacter") diff --git a/wizards/source/sfwidgets/SF_Register.xba b/wizards/source/sfwidgets/SF_Register.xba index 468d2f76b415..99c9dc9d0d8e 100644 --- a/wizards/source/sfwidgets/SF_Register.xba +++ b/wizards/source/sfwidgets/SF_Register.xba @@ -74,7 +74,7 @@ REM ---------------------------------------------------------------------------- Public Function _NewContextMenu(Optional ByVal pvArgs As Variant) As Object ''' Create a new instance of the SF_ContextMenu class ''' Args: -''' Component: the document's component requesting a context menu +''' Component: the document's Component requesting a context menu ''' ContextMenuName: a private:resource/popupmenu/... reference ''' SubmenuChar: Delimiter used in menu trees ''' Returns: the instance or Nothing diff --git a/wizards/source/sfwidgets/script.xlb b/wizards/source/sfwidgets/script.xlb index 8fb6343d86d4..e23174375536 100644 --- a/wizards/source/sfwidgets/script.xlb +++ b/wizards/source/sfwidgets/script.xlb @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd"> <library:library xmlns:library="http://openoffice.org/2000/library" library:name="SFWidgets" library:readonly="false" library:passwordprotected="false"> - <library:element library:name="__License"/> - <library:element library:name="SF_Register"/> - <library:element library:name="SF_PopupMenu"/> - <library:element library:name="SF_Menu"/> - <library:element library:name="SF_MenuListener"/> - <library:element library:name="SF_Toolbar"/> <library:element library:name="SF_ToolbarButton"/> + <library:element library:name="SF_Toolbar"/> + <library:element library:name="SF_MenuListener"/> + <library:element library:name="SF_Menu"/> <library:element library:name="SF_ContextMenu"/> + <library:element library:name="SF_PopupMenu"/> + <library:element library:name="SF_Register"/> + <library:element library:name="__License"/> </library:library>
\ No newline at end of file diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx index a99ddff236ef..abeb2c610bae 100644 --- a/xmloff/source/core/xmluconv.cxx +++ b/xmloff/source/core/xmluconv.cxx @@ -32,6 +32,7 @@ #include <xmloff/xmlement.hxx> #include <xmloff/xmltoken.hxx> #include <rtl/math.hxx> +#include <o3tl/numeric.hxx> #include <tools/date.hxx> #include <tools/time.hxx> @@ -314,18 +315,6 @@ bool SvXMLUnitConverter::convertEnumImpl( return (eTok != XML_TOKEN_INVALID); } -static int lcl_gethex( int nChar ) -{ - if( nChar >= '0' && nChar <= '9' ) - return nChar - '0'; - else if( nChar >= 'a' && nChar <= 'f' ) - return nChar - 'a' + 10; - else if( nChar >= 'A' && nChar <= 'F' ) - return nChar - 'A' + 10; - else - return 0; -} - const char aHexTab[] = "0123456789abcdef"; @@ -950,8 +939,7 @@ bool SvXMLUnitConverter::convertHex( sal_uInt32& nVal, std::u16string_view rValu nVal = 0; for ( int i = 0; i < 8; i++ ) { - nVal = ( nVal << 4 ) - | sal::static_int_cast< sal_uInt32 >( lcl_gethex( rValue[i] ) ); + nVal = ( nVal << 4 ) | o3tl::convertToHex<sal_uInt32>(rValue[i]); } return true; diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index 1df1e2dc0d78..86c4ecb0eab9 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -3339,6 +3339,21 @@ void XMLTextParagraphExport::_exportTextGraphic( const Reference < XPropertySet > & rPropSet, const Reference < XPropertySetInfo > & rPropSetInfo ) { + // skip objects anchored at page in master documents, + // if they are imported from the subdocuments + TextContentAnchorType eAnchor; + rPropSet->getPropertyValue(u"AnchorType"_ustr) >>= eAnchor; + if( TextContentAnchorType_AT_PAGE == eAnchor ) + { + Reference<XServiceInfo> xServiceInfo(GetExport().GetModel(), UNO_QUERY); + if( xServiceInfo->supportsService(u"com.sun.star.text.GlobalDocument"_ustr) ) + { + Reference<XNamed> xNamed( rPropSet, UNO_QUERY ); + if( xNamed.is() && xNamed->getName().indexOf(" (file://") > -1 ) + return; + } + } + OUString sStyle; if( rPropSetInfo->hasPropertyByName( gsFrameStyleName ) ) { diff --git a/xmloff/source/transform/TransformerBase.cxx b/xmloff/source/transform/TransformerBase.cxx index 7c2d0807a3c2..bc61f989a684 100644 --- a/xmloff/source/transform/TransformerBase.cxx +++ b/xmloff/source/transform/TransformerBase.cxx @@ -21,6 +21,7 @@ #include <rtl/ustrbuf.hxx> #include <tools/UnitConversion.hxx> #include <osl/diagnose.h> +#include <o3tl/numeric.hxx> #include <com/sun/star/i18n/CharacterClassification.hpp> #include <com/sun/star/i18n/UnicodeType.hpp> #include <com/sun/star/util/MeasureUnit.hpp> @@ -1090,26 +1091,14 @@ bool XMLTransformerBase::DecodeStyleName( OUString& rName ) } else if( bWithinHex ) { - sal_Unicode cDigit; - if( c >= '0' && c <= '9' ) - { - cDigit = c - '0'; - } - else if( c >= 'a' && c <= 'f' ) - { - cDigit = c - 'a' + 10; - } - else if( c >= 'A' && c <= 'F' ) - { - cDigit = c - 'A' + 10; - } - else + int nValue = o3tl::convertToHex<int>(c); + if (nValue == -1) { // error bEncoded = false; break; } - cEnc = (cEnc << 4) + cDigit; + cEnc = (cEnc << 4) + nValue; } else { diff --git a/xmlreader/source/xmlreader.cxx b/xmlreader/source/xmlreader.cxx index 00489caa4987..ac4f9ad3b325 100644 --- a/xmlreader/source/xmlreader.cxx +++ b/xmlreader/source/xmlreader.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/container/NoSuchElementException.hpp> #include <com/sun/star/uno/RuntimeException.hpp> +#include <o3tl/numeric.hxx> #include <osl/file.h> #include <rtl/character.hxx> #include <rtl/string.h> @@ -388,17 +389,12 @@ char const * XmlReader::handleReference(char const * position, char const * end) if (*position == 'x') { ++position; p = position; - for (;; ++position) { - char c = *position; - if (c >= '0' && c <= '9') { - val = 16 * val + (c - '0'); - } else if (c >= 'A' && c <= 'F') { - val = 16 * val + (c - 'A') + 10; - } else if (c >= 'a' && c <= 'f') { - val = 16 * val + (c - 'a') + 10; - } else { + for (;; ++position) + { + val = o3tl::convertToHex<sal_uInt32>(*position); + if (val >= 16) break; - } + if (!rtl::isUnicodeCodePoint(val)) { // avoid overflow throw css::uno::RuntimeException( "'&#x...' too large in " + fileUrl_ ); diff --git a/xmlsecurity/qa/unit/signing/signing.cxx b/xmlsecurity/qa/unit/signing/signing.cxx index 82a7d2a1ae73..bb2c4d5df992 100644 --- a/xmlsecurity/qa/unit/signing/signing.cxx +++ b/xmlsecurity/qa/unit/signing/signing.cxx @@ -773,10 +773,9 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testPDFAddVisibleSignature) } SfxViewShell* pCurrent = SfxViewShell::Current(); CPPUNIT_ASSERT(pCurrent); - SdrView* pView = pCurrent->GetDrawView(); svl::crypto::CertificateOrName aCertificateOrName; aCertificateOrName.m_xCertificate = xCert; - svx::SignatureLineHelper::setShapeCertificate(pView, aCertificateOrName); + svx::SignatureLineHelper::setShapeCertificate(pCurrent, aCertificateOrName); // the document is modified now, but Sign function can't show SaveAs dialog // in unit test, so just clear the modified diff --git a/xmlsecurity/source/helper/pdfsignaturehelper.cxx b/xmlsecurity/source/helper/pdfsignaturehelper.cxx index 79ee45c0e3c3..8d316bcffd91 100644 --- a/xmlsecurity/source/helper/pdfsignaturehelper.cxx +++ b/xmlsecurity/source/helper/pdfsignaturehelper.cxx @@ -33,6 +33,7 @@ #include <vcl/checksum.hxx> #include <svl/cryptosign.hxx> #include <vcl/filter/PDFiumLibrary.hxx> +#include <sfx2/viewsh.hxx> using namespace ::com::sun::star; @@ -70,21 +71,14 @@ void GetSignatureLineShape(const uno::Reference<frame::XModel>& xModel, sal_Int3 return; } - uno::Reference<drawing::XShapes> xShapes(xModel->getCurrentSelection(), uno::UNO_QUERY); - if (!xShapes.is() || xShapes->getCount() < 1) - { - return; - } - - uno::Reference<beans::XPropertySet> xShapeProps(xShapes->getByIndex(0), uno::UNO_QUERY); - if (!xShapeProps.is()) + SfxViewShell* pViewShell = SfxViewShell::Get(xModel->getCurrentController()); + if (!pViewShell || !pViewShell->GetSignPDFCertificate().Is()) { return; } - comphelper::SequenceAsHashMap aMap(xShapeProps->getPropertyValue(u"InteropGrabBag"_ustr)); - auto it = aMap.find(u"SignatureCertificate"_ustr); - if (it == aMap.end()) + uno::Reference<drawing::XShapes> xShapes(xModel->getCurrentSelection(), uno::UNO_QUERY); + if (!xShapes.is() || xShapes->getCount() < 1) { return; } diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx index 581249292f1a..1014addbff27 100644 --- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +++ b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx @@ -143,6 +143,7 @@ SAL_CALL XMLSignature_MSCryptImpl::generate( } //Sign the template + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; if( xmlSecDSigCtxSign( pDsigCtx , pNode ) == 0 ) { if (pDsigCtx->status == xmlSecDSigStatusSucceeded) diff --git a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx index ce61942dda27..feb31594f5d4 100644 --- a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +++ b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx @@ -150,6 +150,7 @@ SAL_CALL XMLSignature_NssImpl::generate( } //Sign the template + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; if( xmlSecDSigCtxSign( pDsigCtx.get() , pNode ) == 0 ) { if (pDsigCtx->status == xmlSecDSigStatusSucceeded) |