summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/README.md1
-rw-r--r--sc/inc/document.hxx4
-rw-r--r--sc/inc/helpids.h3
-rw-r--r--sc/inc/scfuncs.hrc18
-rw-r--r--sc/inc/scmod.hxx2
-rw-r--r--sc/qa/extras/scfunctionlistobj.cxx2
-rw-r--r--sc/qa/unit/data/functions/spreadsheet/fods/textsplit.fods4579
-rw-r--r--sc/qa/unit/ucalc.cxx1
-rw-r--r--sc/source/core/data/document.cxx15
-rw-r--r--sc/source/core/data/funcdesc.cxx3
-rw-r--r--sc/source/core/data/patattr.cxx7
-rw-r--r--sc/source/core/inc/interpre.hxx1
-rw-r--r--sc/source/core/tool/interpr1.cxx201
-rw-r--r--sc/source/core/tool/interpr4.cxx1
-rw-r--r--sc/source/core/tool/parclass.cxx1
-rw-r--r--sc/source/core/tool/token.cxx1
-rw-r--r--sc/source/filter/excel/excdoc.cxx9
-rw-r--r--sc/source/filter/excel/xestream.cxx7
-rw-r--r--sc/source/filter/excel/xlformula.cxx1
-rw-r--r--sc/source/filter/inc/sheetdatabuffer.hxx2
-rw-r--r--sc/source/filter/inc/xestream.hxx4
-rw-r--r--sc/source/filter/oox/formulabase.cxx1
-rw-r--r--sc/source/filter/oox/sheetdatabuffer.cxx125
-rw-r--r--sc/source/filter/oox/stylesbuffer.cxx4
-rw-r--r--sc/source/filter/rtf/eeimpars.cxx8
-rw-r--r--sc/source/ui/app/drwtrans.cxx6
-rw-r--r--sc/source/ui/app/scmod.cxx9
-rw-r--r--sc/source/ui/app/transobj.cxx7
-rw-r--r--sc/source/ui/docshell/dbdocimp.cxx4
-rw-r--r--sc/source/ui/inc/gridwin.hxx1
-rw-r--r--sc/source/ui/inc/tabview.hxx2
-rw-r--r--sc/source/ui/view/drawview.cxx3
-rw-r--r--sc/source/ui/view/gridwin.cxx49
-rw-r--r--sc/source/ui/view/gridwin4.cxx48
-rw-r--r--sc/source/ui/view/tabcont.cxx18
-rw-r--r--sc/source/ui/view/tabview.cxx4
-rw-r--r--sc/source/ui/view/tabview3.cxx420
-rw-r--r--sc/source/ui/view/viewdata.cxx14
-rw-r--r--sc/source/ui/view/viewfun7.cxx4
-rw-r--r--sc/source/ui/xmlsource/xmlsourcedlg.cxx9
40 files changed, 5395 insertions, 204 deletions
diff --git a/sc/README.md b/sc/README.md
index 741d7ec5cd02..0bcdf7b2180a 100644
--- a/sc/README.md
+++ b/sc/README.md
@@ -62,6 +62,7 @@ https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocume
* HSTACK
* VSTACK
* TAKE
+ * TEXTSPLIT
* TOCOL
* TOROW
* WRAPCOLS
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 50e0f09b9e28..da809f291e90 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1212,7 +1212,9 @@ public:
* Call this if you are not sure whether to put this as an edit text or a
* simple text.
*/
- SC_DLLPUBLIC void SetTextCell( const ScAddress& rPos, const OUString& rStr );
+ SC_DLLPUBLIC void SetTextCell(const ScAddress& rPos, const OUString& rStr,
+ const ScSetStringParam* pParam = nullptr);
+
void SetEmptyCell( const ScAddress& rPos );
SC_DLLPUBLIC void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
SC_DLLPUBLIC void SetValue( const ScAddress& rPos, double fVal );
diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h
index 8aaf758181ef..c00124ba3729 100644
--- a/sc/inc/helpids.h
+++ b/sc/inc/helpids.h
@@ -470,7 +470,7 @@ inline constexpr OUString HID_FUNC_GLAETTEN = u"SC_HID_FUNC_GLAETTEN"_ustr;
inline constexpr OUString HID_FUNC_GROSS2 = u"SC_HID_FUNC_GROSS2"_ustr;
inline constexpr OUString HID_FUNC_GROSS = u"SC_HID_FUNC_GROSS"_ustr;
inline constexpr OUString HID_FUNC_KLEIN = u"SC_HID_FUNC_KLEIN"_ustr;
-inline constexpr OUString HID_FUNC_WERT = u"SC_HID_FUNC_WERT"_ustr;
+inline constexpr OUString HID_FUNC_VALUE = u"SC_HID_FUNC_VALUE"_ustr;
inline constexpr OUString HID_FUNC_TEXT = u"SC_HID_FUNC_TEXT"_ustr;
inline constexpr OUString HID_FUNC_T = u"SC_HID_FUNC_T"_ustr;
inline constexpr OUString HID_FUNC_ERSETZEN = u"SC_HID_FUNC_ERSETZEN"_ustr;
@@ -607,6 +607,7 @@ inline constexpr OUString HID_FUNC_EXPAND_MS = u"SC_HID_FUNC_EXPAND_MS"_ustr;
inline constexpr OUString HID_FUNC_HSTACK_MS = u"SC_HID_FUNC_HSTACK_MS"_ustr;
inline constexpr OUString HID_FUNC_VSTACK_MS = u"SC_HID_FUNC_VSTACK_MS"_ustr;
inline constexpr OUString HID_FUNC_TAKE_MS = u"SC_HID_FUNC_TAKE_MS"_ustr;
+inline constexpr OUString HID_FUNC_TEXTSPLIT_MS = u"SC_HID_FUNC_TEXTSPLIT_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;
diff --git a/sc/inc/scfuncs.hrc b/sc/inc/scfuncs.hrc
index e910534b39af..b81cee703397 100644
--- a/sc/inc/scfuncs.hrc
+++ b/sc/inc/scfuncs.hrc
@@ -4329,6 +4329,24 @@ const TranslateId SC_OPCODE_TAKE_ARY[] =
NC_("SC_OPCODE_TAKE", "The number of columns to take. A negative value takes from the end of the array.")
};
+// -=*# Resource for function TEXTSPLIT #*=-
+const TranslateId SC_OPCODE_TEXTSPLIT_ARY[] =
+{
+ NC_("SC_OPCODE_TEXTSPLIT", "Splits text by a given delimiter to an array of multiple cells."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Text"),
+ NC_("SC_OPCODE_TEXTSPLIT", "The text to split."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Column Delimiter"),
+ NC_("SC_OPCODE_TEXTSPLIT", "The text to delimit the columns. Multiple delimiters can be supplied."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Row Delimiter"),
+ NC_("SC_OPCODE_TEXTSPLIT", "The text to delimit the rows. Multiple delimiters can be supplied."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Ignore Empty"),
+ NC_("SC_OPCODE_TEXTSPLIT", "Set to TRUE to ignore consecutive delimiters otherwise creates an empty cell. The default to FALSE."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Match mode"),
+ NC_("SC_OPCODE_TEXTSPLIT", "Set to 1 to perform a case-insensitive match otherwise does a case-sensitive match. The default to 0."),
+ NC_("SC_OPCODE_TEXTSPLIT", "Pad with"),
+ NC_("SC_OPCODE_TEXTSPLIT", "The value with which to pad. The default is #N/A.")
+};
+
// -=*# Resource for function TOCOL #*=-
const TranslateId SC_OPCODE_TOCOL_ARY[] =
{
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index d51e742003c4..5686f8c42d89 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -134,7 +134,7 @@ public:
void AnythingChanged();
// Drag & Drop:
- const ScDragData& GetDragData() const;
+ const ScDragData* GetDragData() const;
void SetDragObject( ScTransferObj* pCellObj, ScDrawTransferObj* pDrawObj );
void ResetDragObject();
void SetDragLink(
diff --git a/sc/qa/extras/scfunctionlistobj.cxx b/sc/qa/extras/scfunctionlistobj.cxx
index 0f7d7cfefe07..0f5acb22db58 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(415)
+ , XIndexAccess(416)
, 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/textsplit.fods b/sc/qa/unit/data/functions/spreadsheet/fods/textsplit.fods
new file mode 100644
index 000000000000..9978c1e2fc97
--- /dev/null
+++ b/sc/qa/unit/data/functions/spreadsheet/fods/textsplit.fods
@@ -0,0 +1,4579 @@
+<?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>PT12H31M1S</meta:editing-duration><meta:editing-cycles>158</meta:editing-cycles><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/dd6ae9d789e56d9f0dfb4370421fd38665a49163</meta:generator><dc:date>2025-05-08T20:33:10.636105478</dc:date><meta:document-statistic meta:table-count="2" meta:cell-count="312" 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="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Sans1" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss"/>
+ <style:font-face style:name="Liberation Sans2" svg:font-family="&apos;Liberation Sans&apos;"/>
+ <style:font-face style:name="Noto Sans" svg:font-family="&apos;Noto Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans CJK SC" svg:font-family="&apos;Noto Sans CJK SC&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="WenQuanYi Micro Hei" svg:font-family="&apos;WenQuanYi Micro Hei&apos;" 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="&apos;Liberation Serif&apos;" 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="&apos;Segoe UI&apos;" 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="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="WenQuanYi Micro Hei" style:font-family-asian="&apos;WenQuanYi Micro Hei&apos;" 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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N121P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;0" style:apply-style-name="N128P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N139P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N144P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N157P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N171P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;0" style:apply-style-name="N175P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N187P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N192P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N203P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N207P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;0" style:apply-style-name="N213P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N223P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;0" style:apply-style-name="N227P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N231P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N236P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N244P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N248P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N250P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N259P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N294P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N298P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N302P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N306P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N383P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N387P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N391P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N395P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N403P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N407P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N411P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N415P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N435P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N437P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N439P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N441P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N462P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N466P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N470P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N474P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N490P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N494P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N498P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N502P0"/>
+ <style:map style:condition="value()&lt;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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;0" style:apply-style-name="N10153P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N10157P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N10161P0"/>
+ <style:map style:condition="value()&lt;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()&gt;0" style:apply-style-name="N10165P0"/>
+ <style:map style:condition="value()&lt;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()&lt;=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()&lt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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()&gt;=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="2.685cm"/>
+ </style:style>
+ <style:style style:name="co6" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="6.736cm"/>
+ </style:style>
+ <style:style style:name="co7" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="2.713cm"/>
+ </style:style>
+ <style:style style:name="co8" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="7.008cm"/>
+ </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:date-style style:name="N36" number:automatic-order="true">
+ <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:boolean-style style:name="N99">
+ <number:boolean/>
+ </number:boolean-style>
+ <number:text-style style:name="N100">
+ <number:text-content/>
+ </number:text-style>
+ <style:style style:name="ce12" 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="ce14" 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="ce15" 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()=&quot;&quot;" 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="ce21" 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()=&quot;&quot;" 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="ce23" 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()=&quot;&quot;" 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="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:map style:condition="cell-content()=&quot;&quot;" 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="ce26" 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="ce9" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/>
+ <style:style style:name="ce11" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N100">
+ <style:text-properties style:font-name="Liberation Sans1"/>
+ </style:style>
+ <style:style style:name="ce27" 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="ce19" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name="Liberation Sans2"/>
+ </style:style>
+ <style:style style:name="ce13" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N100">
+ <style:text-properties style:font-name="Liberation Sans2"/>
+ </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="ce29" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:map style:condition="cell-content()=&quot;&quot;" 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="ce16" 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="start" fo:margin-left="0cm"/>
+ </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 #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="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/>
+ </style:style>
+ <style:style style:name="ce39" 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 #ffffff" 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="ce41" 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 #ffffff" style:direction="ltr" fo:border-right="0.74pt solid #ffffff" 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="ce32" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N36">
+ <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="end" 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="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="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:language="es" fo:country="ES" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-name-asian="Noto Sans CJK SC" style:font-size-asian="11pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Noto Sans" style:font-size-complex="11pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color">
+ <loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
+ </style:text-properties>
+ </style:style>
+ <style:style style:name="ce43" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:border-bottom="0.74pt solid #ffffff" 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 #ffffff" 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="ce44" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:border-bottom="0.74pt solid #ffffff" 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 #ffffff" style:direction="ltr" fo:border-right="0.74pt solid #ffffff" 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="start" css3t:text-justify="auto" fo:margin-left="0cm" style:writing-mode="page"/>
+ </style:style>
+ <style:style style:name="ce45" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:border-bottom="0.74pt solid #ffffff" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.74pt solid #ffffff" 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:paragraph-properties fo:text-align="start" fo:margin-left="0cm"/>
+ </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>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties style:font-name="Liberation Sans1"/>
+ </style:style>
+ </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-05-08">00/00/0000</text:date>, <text:time style:data-style-name="N2" text:time-value="20:31:57.077622871">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="ce12" office:value-type="string" calcext:value-type="string">
+ <text:p>TextSplit 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="ce14" office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce21" 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="ce15" office:value-type="string" calcext:value-type="string">
+ <text:p>Sheet</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce23" office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce15" 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="ce21" table:formula="of:=AND([Sheet2.I2:.I200])" 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="ce26" office:value-type="string" calcext:value-type="string">
+ <text:p>Simple TEXTSPLIT 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="ce24"/>
+ <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="=&quot;&quot;" 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:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co4" table:number-columns-repeated="7" 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="co7" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co8" table:default-cell-style-name="ce16"/>
+ <table:table-column table:style-name="co4" 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: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="3"/>
+ <table:table-cell table:style-name="ce29"/>
+ <table:table-cell/>
+ <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="ce18" office:value-type="string" calcext:value-type="string">
+ <text:p>Apples,Lemons,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Mr. </text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L2];&quot;,&quot;)" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Lemons" calcext:value-type="string">
+ <text:p>Lemons</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Lemons</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L2;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string">
+ <text:p>Name=Aiden, Score=93, Result=Excellent</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Ms. </text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L2]; ;&quot;,&quot;)" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</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>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L2; ;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2; ;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>1111XXX2222XXX3333</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-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Lemons" calcext:value-type="string">
+ <text:p>Lemons</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>Lemons</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A5]=[.E5])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="{=TEXTSPLIT(L2; ;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2; ;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>Apples, ,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</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>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L2; ;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2; ;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce32" office:value-type="date" office:date-value="2022-01-16" calcext:value-type="date">
+ <text:p>16/01/2022</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ </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.TEXTSPLIT([.L2];&quot;x&quot;)" office:value-type="string" office:string-value="Apples,Lemons,Oranges" calcext:value-type="string">
+ <text:p>Apples,Lemons,Oranges</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>Apples,Lemons,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L2;&quot;x&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2;&quot;x&quot;)}</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>Ms. Mia Brown, 82, Good</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ </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.TEXTSPLIT([.L2];;&quot;x&quot;)" office:value-type="string" office:string-value="Apples,Lemons,Oranges" calcext:value-type="string">
+ <text:p>Apples,Lemons,Oranges</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>Apples,Lemons,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L2;;&quot;x&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L2;;&quot;x&quot;)}</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>,,,,,,,,One,,,,,Two,,,,Three</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="3" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L3]; &quot;=&quot;; &quot;, &quot;)" office:value-type="string" office:string-value="Name" calcext:value-type="string">
+ <text:p>Name</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Aiden" calcext:value-type="string">
+ <text:p>Aiden</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>Name</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A9]=[.E9])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="{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>1111ÇÇÇ2222ÇÇÇ3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro5">
+ <table:table-cell office:value-type="string" office:string-value="Score" calcext:value-type="string">
+ <text:p>Score</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="93" calcext:value-type="string">
+ <text:p>93</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>Score</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce37"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Result" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Excellent" calcext:value-type="string">
+ <text:p>Excellent</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>Result</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Excellent</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;=&quot;; &quot;, &quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L3]; &quot;, &quot;; &quot;=&quot;)" office:value-type="string" office:string-value="Name" calcext:value-type="string">
+ <text:p>Name</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:number-columns-repeated="2"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Name</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:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A12]=[.E12])AND(ISERROR([.B12]))" office:value-type="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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce43"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Aiden" calcext:value-type="string">
+ <text:p>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Score" calcext:value-type="string">
+ <text:p>Score</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>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Score</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="93" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Result" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce41"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Excellent" calcext:value-type="string">
+ <text:p>Excellent</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:number-columns-repeated="2"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Excellent</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:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A15]=[.E15])AND(ISERROR([.B15]))" office:value-type="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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce44"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L4];&quot;XXX&quot;)" office:value-type="string" office:string-value="1111" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2222" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="3333" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce13" office:value-type="string" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L4;&quot;XXX&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L4;&quot;XXX&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce45"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L5];&quot;,&quot;)" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value=" " calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L5;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L5;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L5];&quot;,&quot;;;TRUE())" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value=" " calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L5;&quot;,&quot;;;TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L5;&quot;,&quot;;;TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L5];&quot;,&quot;;;FALSE())" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value=" " calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p><text:s/></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L5;&quot;,&quot;;;FALSE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L5;&quot;,&quot;;;FALSE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </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.TEXTSPLIT([.L5];&quot;X&quot;;;TRUE())" office:value-type="string" office:string-value="Apples, ,Oranges" calcext:value-type="string">
+ <text:p>Apples, ,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce27" office:value-type="string" calcext:value-type="string">
+ <text:p>Apples, ,Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L5;&quot;X&quot;;;TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L5;&quot;X&quot;;;TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L4];&quot;XXX&quot;;;;0)" office:value-type="string" office:string-value="1111" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2222" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="3333" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce13" office:value-type="string" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L4;&quot;XXX&quot;;;;0)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L4;&quot;XXX&quot;;;;0)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L4];&quot;xxx&quot;;;;1)" office:value-type="string" office:string-value="1111" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2222" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="3333" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce13" office:value-type="string" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L4;&quot;xxx&quot;;;;1)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L4;&quot;xxx&quot;;;;1)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L3]; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)" office:value-type="string" office:string-value="Name" calcext:value-type="string">
+ <text:p>Name</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <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>Name</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Aiden" calcext:value-type="string">
+ <text:p>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Score" calcext:value-type="string">
+ <text:p>Score</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>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Score</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="93" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Result" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A25]=[.E25])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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Excellent" calcext:value-type="string">
+ <text:p>Excellent</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <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>Excellent</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A26]=[.E26])AND([.B26]=[.F26])AND([.C26]=[.G26])AND([.D26]=[.H26])" office:value-type="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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="2" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L3]; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)" office:value-type="string" office:string-value="Name" calcext:value-type="string">
+ <text:p>Name</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 table:number-columns-repeated="2"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Name</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:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Aiden" calcext:value-type="string">
+ <text:p>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Score" calcext:value-type="string">
+ <text:p>Score</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>Aiden</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Score</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="93" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Result" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>93</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Excellent" calcext:value-type="string">
+ <text:p>Excellent</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 table:number-columns-repeated="2"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Excellent</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:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L3; &quot;, &quot;; &quot;=&quot;;;;&quot;Test&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT(TEXT([.L6]; &quot;m.d.yyyy&quot;); &quot;.&quot;)" office:value-type="string" office:string-value="1" calcext:value-type="string">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="16" calcext:value-type="string">
+ <text:p>16</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2022" calcext:value-type="string">
+ <text:p>2022</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>1<text:span text:style-name="T1">6</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>2<text:span text:style-name="T1">022</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce19"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A31]=[.E31])AND([.B31]=[.F31])AND([.C31]=[.G31])AND([.D31]=[.H31])" office:value-type="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="{=TEXTSPLIT(TEXT(L6; &quot;m.d.yyyy&quot;); &quot;.&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(TEXT(L6; &quot;m.d.yyyy&quot;); &quot;.&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT(&quot;Apples,Lemons,Oranges&quot;;&quot;,&quot;)" office:value-type="string" office:string-value="Apples" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Lemons" calcext:value-type="string">
+ <text:p>Lemons</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Oranges" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Apples</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Lemons</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Oranges</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(&quot;Apples,Lemons,Oranges&quot;;&quot;,&quot;)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(&quot;Apples,Lemons,Oranges&quot;;&quot;,&quot;)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce9" table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L7]; {&quot; &quot;;&quot;, &quot;;&quot;Mr. &quot;;&quot;Ms. &quot;};;TRUE())" office:value-type="string" office:string-value="Mia" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Brown" calcext:value-type="string">
+ <text:p>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="82" calcext:value-type="string">
+ <text:p>82</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Good" calcext:value-type="string">
+ <text:p>Good</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>8<text:span text:style-name="T1">2</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Good</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; {&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};;TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; {&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};;TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce9" table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="4" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L7]; ;{&quot; &quot;;&quot;, &quot;;&quot;Mr. &quot;;&quot;Ms. &quot;};TRUE())" office:value-type="string" office:string-value="Mia" calcext:value-type="string">
+ <text:p>Mia</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>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce9" office:value-type="string" office:string-value="Brown" calcext:value-type="string">
+ <text:p>Brown</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>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce9" office:value-type="string" office:string-value="82" calcext:value-type="string">
+ <text:p>82</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>8<text:span text:style-name="T1">2</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce9" office:value-type="string" office:string-value="Good" calcext:value-type="string">
+ <text:p>Good</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>Good</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A37]=[.E37])AND([.B37]=[.F37])AND([.C37]=[.G37])AND([.D37]=[.H37])" office:value-type="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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;};TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="5" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L7]; ;{&quot; &quot;;&quot;, &quot;;&quot;Mr. &quot;;&quot;Ms. &quot;})">
+ <text:p/>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="7"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}</text:p>
+ </table:table-cell>
+ <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 office:value-type="string" office:string-value="Mia" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce9"/>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Brown" calcext:value-type="string">
+ <text:p>Brown</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>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="82" calcext:value-type="string">
+ <text:p>82</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>8<text:span text:style-name="T1">2</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A41]=[.E41])AND([.B41]=[.F41])AND([.C41]=[.G41])AND([.D41]=[.H41])" office:value-type="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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Good" calcext:value-type="string">
+ <text:p>Good</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>Good</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;{&quot; &quot;.&quot;, &quot;.&quot;Mr. &quot;.&quot;Ms. &quot;})}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L8];&quot;,&quot;;;TRUE())" office:value-type="string" office:string-value="One" calcext:value-type="string">
+ <text:p>One</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce9" office:value-type="string" office:string-value="Two" calcext:value-type="string">
+ <text:p>Two</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Three" calcext:value-type="string">
+ <text:p>Three</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>One</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Two</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Three</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L8;&quot;,&quot;;;TRUE())}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L8;&quot;,&quot;;;TRUE())}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="5" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L7]; ;[.M2:.M5])">
+ <text:p/>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="7"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A44]=[.E44])AND([.B44]=[.F44])AND([.C44]=[.G44])AND([.D44]=[.H44])" office:value-type="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="{=TEXTSPLIT(L7; ;M2:M5)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;M2:M5)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Mia" calcext:value-type="string">
+ <text:p>Mia</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>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;M2:M5)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;M2:M5)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Brown" calcext:value-type="string">
+ <text:p>Brown</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>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;M2:M5)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;M2:M5)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="82" calcext:value-type="string">
+ <text:p>82</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>8<text:span text:style-name="T1">2</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;M2:M5)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;M2:M5)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="string" office:string-value="Good" calcext:value-type="string">
+ <text:p>Good</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>Good</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce29" 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="{=TEXTSPLIT(L7; ;M2:M5)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; ;M2:M5)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L9];&quot;ÇÇÇ&quot;;;;1)" office:value-type="string" office:string-value="1111" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2222" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="3333" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce13" office:value-type="string" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A49]=[.E49])AND([.B49]=[.F49])AND([.C49]=[.G49])AND([.D49]=[.H49])" office:value-type="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="{=TEXTSPLIT(L9;&quot;ÇÇÇ&quot;;;;1)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L9;&quot;ÇÇÇ&quot;;;;1)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="3" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L9];&quot;ççç&quot;;;;1)" office:value-type="string" office:string-value="1111" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="2222" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="3333" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>1111</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce13" office:value-type="string" calcext:value-type="string">
+ <text:p>2222</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11" office:value-type="string" calcext:value-type="string">
+ <text:p>3333</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce11"/>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A50]=[.E50])AND([.B50]=[.F50])AND([.C50]=[.G50])AND([.D50]=[.H50])" office:value-type="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="{=TEXTSPLIT(L9;&quot;ççç&quot;;;;1)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L9;&quot;ççç&quot;;;;1)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-matrix-columns-spanned="4" table:number-matrix-rows-spanned="1" table:formula="of:=COM.MICROSOFT.TEXTSPLIT([.L7]; {&quot; &quot;;&quot;, &quot;;&quot;MR. &quot;;&quot;ms. &quot;};;TRUE();1)" office:value-type="string" office:string-value="Mia" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Brown" calcext:value-type="string">
+ <text:p>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="82" calcext:value-type="string">
+ <text:p>82</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" office:string-value="Good" calcext:value-type="string">
+ <text:p>Good</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Mia</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Brown</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce19" office:value-type="string" calcext:value-type="string"><text:p>8<text:span text:style-name="T1">2</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Good</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce29" table:formula="of:=([.A51]=[.E51])AND([.B51]=[.F51])AND([.C51]=[.G51])AND([.D51]=[.H51])" office:value-type="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="{=TEXTSPLIT(L7; {&quot; &quot;.&quot;, &quot;.&quot;MR. &quot;.&quot;ms. &quot;};;TRUE();1)}" calcext:value-type="string">
+ <text:p>{=TEXTSPLIT(L7; {&quot; &quot;.&quot;, &quot;.&quot;MR. &quot;.&quot;ms. &quot;};;TRUE();1)}</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="4">
+ <table:table-cell table:number-columns-repeated="8"/>
+ <table:table-cell table:style-name="ce29"/>
+ <table:table-cell table:number-columns-repeated="4"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="1048520">
+ <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="13"/>
+ </table:table-row>
+ <calcext:conditional-formats>
+ <calcext:conditional-format calcext:target-range-address="Sheet2.I2:Sheet2.I55">
+ <calcext:condition calcext:apply-style-name="Default" calcext:value="=&quot;&quot;" 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 2e1c8fc40341..8ebef294b801 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -3125,6 +3125,7 @@ CPPUNIT_TEST_FIXTURE(Test, testFunctionLists)
"SORTBY",
"STYLE",
"TAKE",
+ "TEXTSPLIT",
"TOCOL",
"TOROW",
"UNIQUE",
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 231a42d52a4e..a1d3cb27431f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3502,7 +3502,9 @@ SCROW ScDocument::GetFirstEditTextRow( const ScRange& rRange ) const
return -1;
}
-void ScDocument::SetTextCell( const ScAddress& rPos, const OUString& rStr )
+
+void ScDocument::SetTextCell(const ScAddress& rPos, const OUString& rStr,
+ const ScSetStringParam* pParam)
{
if (ScTable* pTable = FetchTable(rPos.Tab()))
{
@@ -3514,9 +3516,14 @@ void ScDocument::SetTextCell( const ScAddress& rPos, const OUString& rStr )
}
else
{
- ScSetStringParam aParam;
- aParam.setTextInput();
- pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, &aParam);
+ if (pParam)
+ pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, pParam);
+ else
+ {
+ ScSetStringParam aParam;
+ aParam.setTextInput();
+ pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, &aParam);
+ }
}
}
}
diff --git a/sc/source/core/data/funcdesc.cxx b/sc/source/core/data/funcdesc.cxx
index 995f4dd76103..7a5bc437184e 100644
--- a/sc/source/core/data/funcdesc.cxx
+++ b/sc/source/core/data/funcdesc.cxx
@@ -466,7 +466,7 @@ ScFunctionList::ScFunctionList( bool bEnglishFunctionNames )
{ SC_OPCODE_LOWER, ENTRY(SC_OPCODE_LOWER_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_KLEIN, 1, { 0 }, 0 },
{ SC_OPCODE_LEN, ENTRY(SC_OPCODE_LEN_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_LAENGE, 1, { 0 }, 0 },
{ SC_OPCODE_T, ENTRY(SC_OPCODE_T_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_T, 1, { 0 }, 0 },
- { SC_OPCODE_VALUE, ENTRY(SC_OPCODE_VALUE_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_WERT, 1, { 0 }, 0 },
+ { SC_OPCODE_VALUE, ENTRY(SC_OPCODE_VALUE_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_VALUE, 1, { 0 }, 0 },
{ SC_OPCODE_CLEAN, ENTRY(SC_OPCODE_CLEAN_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_SAEUBERN, 1, { 0 }, 0 },
{ SC_OPCODE_CHAR, ENTRY(SC_OPCODE_CHAR_ARY), 0, ID_FUNCTION_GRP_TEXT, HID_FUNC_ZEICHEN, 1, { 0 }, 0 },
{ SC_OPCODE_LOG10, ENTRY(SC_OPCODE_LOG10_ARY), 0, ID_FUNCTION_GRP_MATH, HID_FUNC_LOG10, 1, { 0 }, 0 },
@@ -800,6 +800,7 @@ ScFunctionList::ScFunctionList( bool bEnglishFunctionNames )
{ SC_OPCODE_HSTACK, ENTRY(SC_OPCODE_HSTACK_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_HSTACK_MS, VAR_ARGS + 1, { 0, 0 }, 0 },
{ SC_OPCODE_VSTACK, ENTRY(SC_OPCODE_VSTACK_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_VSTACK_MS, VAR_ARGS + 1, { 0, 0 }, 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_TEXTSPLIT, ENTRY(SC_OPCODE_TEXTSPLIT_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_TEXTSPLIT_MS, 6, { 0, 1, 1, 1, 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 },
diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx
index 0e406b8c6cf8..2bbed442afb4 100644
--- a/sc/source/core/data/patattr.cxx
+++ b/sc/source/core/data/patattr.cxx
@@ -445,11 +445,8 @@ static bool StrCmp( const OUString* pStr1, const OUString* pStr2 )
{
if (pStr1 == pStr2)
return true;
- if (pStr1 && !pStr2)
- return false;
- if (!pStr1 && pStr2)
- return false;
- assert(pStr1 && pStr2);
+ if (pStr1 == nullptr || pStr2 == nullptr)
+ return false; // one ptr is nullptr, not both, that would have triggered above
return *pStr1 == *pStr2;
}
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index abeb868c45b2..218826b7ee18 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -736,6 +736,7 @@ private:
void ScHStack();
void ScVStack();
void ScTake();
+ void ScTextSplit();
void ScToCol();
void ScToRow();
void ScUnique();
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 63aa0583e4a3..d668c24f5e07 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -9295,6 +9295,207 @@ void ScInterpreter::ScTake()
ScTakeOrDrop(/*bTake*/ true);
}
+
+static std::vector<OUString> lcl_SplitText(const OUString& rText, const std::vector<svl::SharedString>& rDelimiters,
+ bool bIgnoreEmpty, bool bMatchMode)
+{
+ std::vector<OUString> aResStr;
+ if (!rDelimiters.size() || rText.isEmpty())
+ {
+ aResStr.push_back(rText);
+ }
+ else
+ {
+ const sal_Int32 nLength (rText.getLength());
+ sal_Int32 nStart(0);
+ while (nStart < nLength)
+ {
+ sal_Int32 nIndex = nLength;
+ sal_Int32 nDelLength(0);
+
+ // Find the first delimiter
+ for (auto& rDelimiter : rDelimiters)
+ {
+ if (rDelimiter.isEmpty())
+ continue;
+
+ OUString sDelimiter = rDelimiter.getString();
+ sal_Int32 nDelimiterIndex;
+ if (bMatchMode)
+ {
+ nDelimiterIndex = ScGlobal::getCharClass().lowercase(rText).indexOf(
+ ScGlobal::getCharClass().lowercase(sDelimiter), nStart);
+ }
+ else
+ nDelimiterIndex = rText.indexOf(sDelimiter, nStart);
+
+ if (nDelimiterIndex != -1 && nDelimiterIndex < nIndex)
+ {
+ nDelLength = sDelimiter.getLength();
+ nIndex = nDelimiterIndex;
+ }
+ }
+
+ OUString sRes(rText.copy(nStart, nIndex - nStart));
+ if (!bIgnoreEmpty || !sRes.isEmpty())
+ {
+ aResStr.push_back(sRes);
+ }
+ nStart = nIndex + nDelLength;
+ }
+ }
+ return aResStr;
+}
+
+void ScInterpreter::ScTextSplit()
+{
+ sal_uInt8 nParamCount = GetByte();
+ if (!MustHaveParamCount(nParamCount, 1, 6))
+ return;
+
+ // 6rd argument optional - pad_with
+ std::optional<svl::SharedString> aPadWith;
+ if (nParamCount == 6)
+ aPadWith = GetString();
+
+ // 5rd argument optional - match_mode
+ bool bMatchMode = false;
+ if (nParamCount >= 5)
+ {
+ if (!IsMissing())
+ {
+ bMatchMode = GetBool();
+ }
+ else
+ Pop();
+ }
+
+ // 4rd argument optional - ignore_empty
+ bool bIgnoreEmpty = false;
+ if (nParamCount >= 4)
+ {
+ if (!IsMissing())
+ bIgnoreEmpty = GetBool();
+ else
+ Pop();
+ }
+
+ // 3rd argument optional - row_delimiter
+ std::vector<svl::SharedString> aRowDelimiters;
+ if (nParamCount >= 3)
+ {
+ 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);
+ for (SCSIZE i = 0; i < nsC; i++)
+ {
+ for (SCSIZE j = 0; j < nsR; j++)
+ {
+ aRowDelimiters.push_back(pMatSource->GetString(i,j));
+ }
+ }
+ }
+ break;
+
+ default:
+ aRowDelimiters.push_back(GetString());
+ }
+ }
+
+ // 2nd argument optional - col_delimiter
+ std::vector<svl::SharedString> aColDelimiters;
+ if (nParamCount >= 2)
+ {
+ 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);
+ for (SCSIZE i = 0; i < nsC; i++)
+ {
+ for (SCSIZE j = 0; j < nsR; j++)
+ {
+ aColDelimiters.push_back(pMatSource->GetString(i,j));
+ }
+ }
+ }
+ break;
+
+ default:
+ aColDelimiters.push_back(GetString());
+ }
+ }
+
+ // 1st argument: text
+ svl::SharedString sText = GetString();
+ if (sText.isEmpty())
+ {
+ PushIllegalParameter();
+ return;
+ }
+
+ std::vector<OUString> aRowStrs = lcl_SplitText(sText.getString(), aRowDelimiters, bIgnoreEmpty, bMatchMode);
+ std::vector<std::vector<OUString>> aRes;
+
+ SCSIZE nCols = 1;
+ SCSIZE nRows = aRowStrs.size();
+ for (auto& rRow : aRowStrs)
+ {
+ std::vector<OUString> aColStrs = lcl_SplitText(rRow, aColDelimiters, bIgnoreEmpty, bMatchMode);
+ nCols = std::max(nCols, aColStrs.size());
+ aRes.push_back(aColStrs);
+ }
+
+ ScMatrixRef pResMat = GetNewMat(nCols, nRows, /*bEmpty*/true);
+ for (SCSIZE col = 0; col < nCols; ++col)
+ {
+ for (SCSIZE row = 0; row < nRows; ++row)
+ {
+ if (col < aRes[row].size())
+ {
+ pResMat->PutString(mrStrPool.intern(aRes[row][col]), col, row);
+ }
+ else
+ {
+ if (!aPadWith.has_value())
+ pResMat->PutError(FormulaError::NotAvailable, col, row);
+ else
+ pResMat->PutString(aPadWith.value(), col, row);
+ }
+ }
+ }
+
+ PushMatrix(pResMat);
+}
+
void ScInterpreter::ScToColOrRow(bool bCol)
{
sal_uInt8 nParamCount = GetByte();
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 3a996bd331f5..af2a60ef7eca 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -4130,6 +4130,7 @@ StackVar ScInterpreter::Interpret()
case ocHStack : ScHStack(); break;
case ocVStack : ScVStack(); break;
case ocTake : ScTake(); break;
+ case ocTextSplit : ScTextSplit(); break;
case ocToCol : ScToCol(); break;
case ocToRow : ScToRow(); break;
case ocUnique : ScUnique(); break;
diff --git a/sc/source/core/tool/parclass.cxx b/sc/source/core/tool/parclass.cxx
index 204c9a943f7d..7ea90ff0a23c 100644
--- a/sc/source/core/tool/parclass.cxx
+++ b/sc/source/core/tool/parclass.cxx
@@ -264,6 +264,7 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] =
{ ocTake, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } },
{ ocTTest, {{ ForceArray, ForceArray, Value, Value }, 0, Value }},
{ ocTextJoin_MS, {{ Reference, Value, Reference }, 1, Value }},
+ { ocTextSplit, {{ ReferenceOrRefArray, ReferenceOrRefArray, ReferenceOrRefArray, Value, Value, Value }, 0, ForceArrayReturn } },
{ ocToCol, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } },
{ ocToRow, {{ ReferenceOrRefArray, Value, Value, }, 0, ForceArrayReturn } },
{ ocTrend, {{ Reference, Reference, Reference, Value }, 0, Value }},
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 75b1929f321d..d2d57372a91b 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -1598,6 +1598,7 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
case ocHStack:
case ocVStack:
case ocTake:
+ case ocTextSplit:
case ocToCol:
case ocToRow:
case ocUnique:
diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx
index f62dfe0ace60..63f29d88aefc 100644
--- a/sc/source/filter/excel/excdoc.cxx
+++ b/sc/source/filter/excel/excdoc.cxx
@@ -844,7 +844,14 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm )
sax_fastparser::FSHelperPtr& rWorkbook = rStrm.GetCurrentStream();
rWorkbook->startElement( XML_workbook,
XML_xmlns, rStrm.getNamespaceURL(OOX_NS(xls)),
- FSNS(XML_xmlns, XML_r), rStrm.getNamespaceURL(OOX_NS(officeRel)) );
+ FSNS(XML_xmlns, XML_r), rStrm.getNamespaceURL(OOX_NS(officeRel)),
+ // the following are for chartex
+ FSNS(XML_xmlns, XML_mc), rStrm.getNamespaceURL(OOX_NS(mce)),
+ FSNS(XML_xmlns, XML_x15), rStrm.getNamespaceURL(OOX_NS(x15)),
+ FSNS(XML_xmlns, XML_xr), rStrm.getNamespaceURL(OOX_NS(xr)),
+ FSNS(XML_xmlns, XML_xr6), rStrm.getNamespaceURL(OOX_NS(xr6)),
+ FSNS(XML_xmlns, XML_xr10), rStrm.getNamespaceURL(OOX_NS(xr10)),
+ FSNS(XML_xmlns, XML_xr2), rStrm.getNamespaceURL(OOX_NS(xr2)) );
rWorkbook->singleElement( XML_fileVersion,
XML_appName, "Calc"
// OOXTODO: XML_codeName
diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
index b97720902f15..2dc780e35684 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -956,7 +956,9 @@ sax_fastparser::FSHelperPtr XclExpXmlStream::CreateOutputStream (
const uno::Reference< XOutputStream >& xParentRelation,
const char* sContentType,
const OUString& sRelationshipType,
- OUString* pRelationshipId )
+ OUString* pRelationshipId,
+ // if bNoHeader is true, don't create a header (<?xml... ) line
+ bool bNoHeader /* = false */ )
{
OUString sRelationshipId;
if (xParentRelation.is())
@@ -967,7 +969,8 @@ sax_fastparser::FSHelperPtr XclExpXmlStream::CreateOutputStream (
if( pRelationshipId )
*pRelationshipId = sRelationshipId;
- sax_fastparser::FSHelperPtr p = openFragmentStreamWithSerializer( sFullStream, OUString::createFromAscii( sContentType ) );
+ sax_fastparser::FSHelperPtr p = openFragmentStreamWithSerializer(
+ sFullStream, OUString::createFromAscii( sContentType ), bNoHeader );
maOpenedStreamMap[ sFullStream ] = std::make_pair( sRelationshipId, p );
diff --git a/sc/source/filter/excel/xlformula.cxx b/sc/source/filter/excel/xlformula.cxx
index cbb211b19cd0..38d4c545ed58 100644
--- a/sc/source/filter/excel/xlformula.cxx
+++ b/sc/source/filter/excel/xlformula.cxx
@@ -626,6 +626,7 @@ const XclFunctionInfo saFuncTable_2024[] =
EXC_FUNCENTRY_V_VR( ocHStack, 1, MX, 0, "HSTACK" ),
EXC_FUNCENTRY_V_VR( ocVStack, 1, MX, 0, "VSTACK" ),
EXC_FUNCENTRY_V_VR( ocTake, 1, 3, 0, "TAKE" ),
+ EXC_FUNCENTRY_V_VR( ocTextSplit, 1, 6, 0, "TEXTSPLIT" ),
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"),
diff --git a/sc/source/filter/inc/sheetdatabuffer.hxx b/sc/source/filter/inc/sheetdatabuffer.hxx
index 538631330082..cf3dd2eeed7b 100644
--- a/sc/source/filter/inc/sheetdatabuffer.hxx
+++ b/sc/source/filter/inc/sheetdatabuffer.hxx
@@ -217,7 +217,7 @@ private:
MergedRangeVector maMergedRanges; /// Merged cell ranges.
MergedRangeVector maCenterFillRanges; /// Merged cell ranges from 'center across' or 'fill' alignment.
bool mbPendingSharedFmla; /// True = maSharedFmlaAddr and maSharedBaseAddr are valid.
- std::map< sal_Int32, std::vector< ValueRange > > maXfIdRowRangeList; /// Cached XF identifiers for a ranges of rows, we try and process rowranges with the same XF id together
+ std::vector< XfIdRowRange > maXfIdRowRangeList; /// row ranges with style ids
};
} // namespace oox::xls
diff --git a/sc/source/filter/inc/xestream.hxx b/sc/source/filter/inc/xestream.hxx
index d0318848ecba..4da0e0b6067a 100644
--- a/sc/source/filter/inc/xestream.hxx
+++ b/sc/source/filter/inc/xestream.hxx
@@ -313,7 +313,9 @@ public:
const css::uno::Reference< css::io::XOutputStream >& xParentRelation,
const char* sContentType,
const OUString& sRelationshipType,
- OUString* pRelationshipId = nullptr );
+ OUString* pRelationshipId = nullptr,
+ // if bNoHeader is true, don't create a header (<?xml... ) line
+ bool bNoHeader = false);
// ignore
virtual bool exportDocument() override;
diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx
index d722b75a9837..6e37a663fdaa 100644
--- a/sc/source/filter/oox/formulabase.cxx
+++ b/sc/source/filter/oox/formulabase.cxx
@@ -901,6 +901,7 @@ const FunctionData saFuncTable2024[] =
{ "COM.MICROSOFT.HSTACK", "HSTACK", NOID, NOID, 1, MX, A, { VO }, FuncFlags::MACROCALL_NEW },
{ "COM.MICROSOFT.VSTACK", "VSTACK", NOID, NOID, 1, MX, A, { VO }, FuncFlags::MACROCALL_NEW },
{ "COM.MICROSOFT.TAKE", "TAKE", NOID, NOID, 1, 3, A, { VO }, FuncFlags::MACROCALL_NEW },
+ { "COM.MICROSOFT.TEXTSPLIT", "TEXTSPLIT", NOID, NOID, 1, 6, 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 },
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx
index e9286d5f1523..5fa7f268e43a 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -281,15 +281,14 @@ void SheetDataBuffer::setRowFormat( sal_Int32 nRow, sal_Int32 nXfId, bool bCusto
// try to expand cached row range, if formatting is equal
if( (maXfIdRowRange.maRowRange.mnLast < 0) || !maXfIdRowRange.tryExpand( nRow, nXfId ) )
{
-
- maXfIdRowRangeList[ maXfIdRowRange.mnXfId ].push_back( maXfIdRowRange.maRowRange );
+ maXfIdRowRangeList.push_back( maXfIdRowRange );
maXfIdRowRange.set( nRow, nXfId );
}
}
else if( maXfIdRowRange.maRowRange.mnLast >= 0 )
{
// finish last cached row range
- maXfIdRowRangeList[ maXfIdRowRange.mnXfId ].push_back( maXfIdRowRange.maRowRange );
+ maXfIdRowRangeList.push_back( maXfIdRowRange );
maXfIdRowRange.set( -1, -1 );
}
}
@@ -376,75 +375,83 @@ void SheetDataBuffer::addColXfStyleProcessRowRanges()
// count the number of row-range-styles we have
AddressConverter& rAddrConv = getAddressConverter();
int cnt = 0;
- for ( const auto& [nXfId, rRowRangeList] : maXfIdRowRangeList )
+ for ( const auto& rRange : maXfIdRowRangeList )
{
- if ( nXfId == -1 ) // it's a dud skip it
+ if ( rRange.mnXfId == -1 ) // it's a dud skip it
continue;
- cnt += rRowRangeList.size();
- }
- // pre-allocate space in the sorted_vector
- for ( sal_Int32 nCol = 0; nCol <= rAddrConv.getMaxApiAddress().Col(); ++nCol )
- {
- RowStyles& rRowStyles = maStylesPerColumn[ nCol ];
- rRowStyles.reserve(rRowStyles.size() + cnt);
+ ++cnt;
}
+ // sort the row ranges, so we spend less time moving data around
+ // when we insert into aStyleRows
+ std::sort(maXfIdRowRangeList.begin(), maXfIdRowRangeList.end(),
+ [](const XfIdRowRange& lhs, const XfIdRowRange& rhs)
+ {
+ return lhs.maRowRange.mnFirst < rhs.maRowRange.mnFirst;
+ });
const auto nMaxCol = rAddrConv.getMaxApiAddress().Col();
for ( sal_Int32 nCol = 0; nCol <= nMaxCol; ++nCol )
{
RowStyles& rRowStyles = maStylesPerColumn[ nCol ];
- for ( auto& [nXfId, rRowRangeList] : maXfIdRowRangeList )
+ TmpRowStyles aTempRowStyles;
+ aTempRowStyles.reserve(rRowStyles.size() + cnt);
+ RowStyles::const_iterator rows_it = rRowStyles.begin();
+ // get all row ranges for id
+ for ( const auto& rRange : maXfIdRowRangeList )
{
- if ( nXfId == -1 ) // it's a dud skip it
+ if ( rRange.mnXfId == -1 ) // it's a dud skip it
continue;
- // sort the row ranges, so we spend less time moving data around
- // when we insert into aStyleRows
- std::sort(rRowRangeList.begin(), rRowRangeList.end(),
- [](const ValueRange& lhs, const ValueRange& rhs)
- {
- return lhs.mnFirst < rhs.mnFirst;
- });
- // get all row ranges for id
- for ( const auto& rRange : rRowRangeList )
+ RowRangeStyle aStyleRows;
+ aStyleRows.mnNumFmt.first = rRange.mnXfId;
+ aStyleRows.mnNumFmt.second = -1;
+
+ // Reset row range for each column
+ aStyleRows.mnStartRow = rRange.maRowRange.mnFirst;
+ aStyleRows.mnEndRow = rRange.maRowRange.mnLast;
+
+ // If aStyleRows includes rows already allocated to a style
+ // in rRowStyles, then we need to split it into parts.
+ // ( to occupy only rows that have no style definition)
+
+ // Start iterating at the first element that is not completely before aStyleRows
+ while (rows_it != rRowStyles.end() && rows_it->mnEndRow < aStyleRows.mnStartRow)
{
- RowRangeStyle aStyleRows;
- aStyleRows.mnNumFmt.first = nXfId;
- aStyleRows.mnNumFmt.second = -1;
-
- // Reset row range for each column
- aStyleRows.mnStartRow = rRange.mnFirst;
- aStyleRows.mnEndRow = rRange.mnLast;
-
- // If aStyleRows includes rows already allocated to a style
- // in rRowStyles, then we need to split it into parts.
- // ( to occupy only rows that have no style definition)
-
- // Start iterating at the first element that is not completely before aStyleRows
- RowStyles::const_iterator rows_it = rRowStyles.lower_bound(aStyleRows);
- bool bAddRange = true;
- for ( ; rows_it != rRowStyles.end(); ++rows_it )
+ aTempRowStyles.push_back(*rows_it);
+ ++rows_it;
+ }
+ bool bAddRange = true;
+ while ( rows_it != rRowStyles.end() )
+ {
+ // Add the part of aStyleRows that does not overlap with r
+ if ( aStyleRows.mnStartRow < rows_it->mnStartRow )
+ {
+ RowRangeStyle aSplit = aStyleRows;
+ aSplit.mnEndRow = std::min(aStyleRows.mnEndRow, rows_it->mnStartRow - 1);
+ aTempRowStyles.push_back(aSplit);
+ }
+
+ // Done if no part of aStyleRows extends beyond r
+ if ( aStyleRows.mnEndRow <= rows_it->mnEndRow )
{
- // Add the part of aStyleRows that does not overlap with r
- if ( aStyleRows.mnStartRow < rows_it->mnStartRow )
- {
- RowRangeStyle aSplit = aStyleRows;
- aSplit.mnEndRow = std::min(aStyleRows.mnEndRow, rows_it->mnStartRow - 1);
- rows_it = rRowStyles.insert( aSplit ).first;
- }
-
- // Done if no part of aStyleRows extends beyond r
- if ( aStyleRows.mnEndRow <= rows_it->mnEndRow )
- {
- bAddRange = false;
- break;
- }
-
- // Cut off the part aStyleRows that was handled above
- aStyleRows.mnStartRow = rows_it->mnEndRow + 1;
+ bAddRange = false;
+ break;
}
- if ( bAddRange )
- rRowStyles.insert( aStyleRows );
+
+ // Cut off the part aStyleRows that was handled above
+ aStyleRows.mnStartRow = rows_it->mnEndRow + 1;
+
+ aTempRowStyles.push_back(*rows_it);
+ ++rows_it;
}
+ if ( bAddRange )
+ aTempRowStyles.push_back( aStyleRows );
+ }
+ while ( rows_it != rRowStyles.end() )
+ {
+ aTempRowStyles.push_back(*rows_it);
+ ++rows_it;
}
+ rRowStyles.clear();
+ rRowStyles.insert_sorted_unique_vector(std::move(aTempRowStyles));
}
}
@@ -472,7 +479,7 @@ void SheetDataBuffer::finalizeImport()
finalizeTableOperation( rRange, rModel );
// write default formatting of remaining row range
- maXfIdRowRangeList[ maXfIdRowRange.mnXfId ].push_back( maXfIdRowRange.maRowRange );
+ maXfIdRowRangeList.push_back( maXfIdRowRange );
addColXfStyles();
diff --git a/sc/source/filter/oox/stylesbuffer.cxx b/sc/source/filter/oox/stylesbuffer.cxx
index c3af8de44034..72ed6cd59882 100644
--- a/sc/source/filter/oox/stylesbuffer.cxx
+++ b/sc/source/filter/oox/stylesbuffer.cxx
@@ -2272,10 +2272,10 @@ void Xf::applyPatternToAttrList( AttrList& rAttrs, SCROW nRow1, SCROW nRow2, sal
if (!pCachedPattern)
rCache.add(nXfId, nNumFmtId, const_cast<ScPatternAttr*>(aEntry.getScPatternAttr()));
- rAttrs.maAttrs.push_back(aEntry);
-
if (!rDocImport.isLatinScript(*aEntry.getScPatternAttr()))
rAttrs.mbLatinNumFmtOnly = false;
+
+ rAttrs.maAttrs.push_back(std::move(aEntry));
}
void Xf::writeToDoc( ScDocumentImport& rDoc, const ScRange& rRange )
diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx
index 8b5b5b58dfb9..f7db07b14ff9 100644
--- a/sc/source/filter/rtf/eeimpars.cxx
+++ b/sc/source/filter/rtf/eeimpars.cxx
@@ -397,11 +397,6 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
pFormatter->ChangeIntl( LANGUAGE_SYSTEM);
}
- // #105460#, #i4180# String cells can't contain tabs or linebreaks
- // -> replace with spaces
- aStr = aStr.replaceAll( "\t", " " );
- aStr = aStr.replaceAll( "\n", " " );
-
if (bTextFormat)
{
aParam.mbDetectNumberFormat = false;
@@ -414,7 +409,8 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
aParam.mbDetectScientificNumberFormat = bConvertScientific;
}
- mpDoc->SetString(nCol, nRow, nTab, aStr, &aParam);
+ // tdf#117436 - set text cell to accommodate potential multiline cells
+ mpDoc->SetTextCell(ScAddress(nCol, nRow, nTab), aStr, &aParam);
}
}
else if (std::unique_ptr<EditTextObject> pTextObject = IsValidSel(*mpEngine, pE->aSel) ? mpEngine->CreateTextObject(pE->aSel) : nullptr)
diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
index f4e3ca9fa10e..10d163e580c8 100644
--- a/sc/source/ui/app/drwtrans.cxx
+++ b/sc/source/ui/app/drwtrans.cxx
@@ -216,7 +216,8 @@ ScDrawTransferObj::~ScDrawTransferObj()
SolarMutexGuard aSolarGuard;
ScModule* pScMod = ScModule::get();
- if (pScMod && pScMod->GetDragData().pDrawTransfer == this)
+ const ScDragData* pDragData = pScMod ? pScMod->GetDragData() : nullptr;
+ if (pDragData && pDragData->pDrawTransfer == this)
{
OSL_FAIL("ScDrawTransferObj wasn't released");
pScMod->ResetDragObject();
@@ -569,7 +570,8 @@ void ScDrawTransferObj::DragFinished( sal_Int8 nDropAction )
}
ScModule* pScMod = ScModule::get();
- if ( pScMod->GetDragData().pDrawTransfer == this )
+ const ScDragData* pDragData = pScMod ? pScMod->GetDragData() : nullptr;
+ if (pDragData && pDragData->pDrawTransfer == this)
pScMod->ResetDragObject();
m_pDragSourceView.reset();
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index e27ba3cd98f9..bfca56475ba6 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -623,16 +623,15 @@ void ScModule::ResetDragObject()
}
}
-const ScDragData& ScModule::GetDragData() const
+const ScDragData* ScModule::GetDragData() const
{
if (comphelper::LibreOfficeKit::isActive())
{
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- assert(pViewShell);
- return pViewShell->GetDragData();
+ return pViewShell ? &pViewShell->GetDragData() : nullptr;
}
- else
- return *m_pDragData;
+
+ return m_pDragData.get();
}
void ScModule::SetDragObject( ScTransferObj* pCellObj, ScDrawTransferObj* pDrawObj )
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index afa196082728..26e34f945aae 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -180,9 +180,9 @@ ScTransferObj::~ScTransferObj()
{
SolarMutexGuard aSolarGuard;
- bool bIsDisposing = comphelper::LibreOfficeKit::isActive() && !ScTabViewShell::GetActiveViewShell();
ScModule* pScMod = ScModule::get();
- if (pScMod && !bIsDisposing && pScMod->GetDragData().pCellTransfer == this)
+ const ScDragData* pDragData = pScMod ? pScMod->GetDragData() : nullptr;
+ if (pDragData && pDragData->pCellTransfer == this)
{
OSL_FAIL("ScTransferObj wasn't released");
pScMod->ResetDragObject();
@@ -602,7 +602,8 @@ void ScTransferObj::DragFinished( sal_Int8 nDropAction )
}
ScModule* pScMod = ScModule::get();
- if ( pScMod && pScMod->GetDragData().pCellTransfer == this )
+ const ScDragData* pDragData = pScMod ? pScMod->GetDragData() : nullptr;
+ if (pDragData && pDragData->pCellTransfer == this)
pScMod->ResetDragObject();
m_xDragSourceRanges = nullptr; // don't keep source after dropping
diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx
index 70616d9382b5..670433f28853 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -560,6 +560,10 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
aNewMark, InsertDeleteFlags::CONTENTS );
}
+
+ // tdf#117436 - adjust row height to accommodate potential multiline cells
+ rDoc.GetDocumentShell()->AdjustRowHeight(rParam.nRow1, nEndRow, nTab);
+
// update database range
pDBData->SetImportParam( rParam );
pDBData->SetHeader( true );
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 4ca1f2337aaa..0e101f641fed 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -441,7 +441,6 @@ public:
/// Draw content of the gridwindow; shared between the desktop and the tiled rendering.
void DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData, bool bLogicText);
- void DrawEditView(OutputDevice &rDevice, EditView *pEditView);
void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress);
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
index 69f87b16f737..2a6827b87b1a 100644
--- a/sc/source/ui/inc/tabview.hxx
+++ b/sc/source/ui/inc/tabview.hxx
@@ -124,6 +124,7 @@ private:
ScHeaderFunctionSet aHdrFunc;
std::unique_ptr<ScDrawView> pDrawView;
+ sdr::overlay::OverlayObjectList maTextEditOverlayGroup;
Size aFrameSize; // passed on as for DoResize
Point aBorderPos;
@@ -529,6 +530,7 @@ public:
void MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW nRow );
void KillEditView( bool bNoPaint );
void UpdateEditView();
+ void RefeshTextEditOverlay();
// Blocks
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 462f71f820a3..69f65dd095d7 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -401,8 +401,9 @@ void ScDrawView::MarkListHasChanged()
bSubShellSet = true;
}
else if (pObj->GetObjIdentifier() != SdrObjKind::Text // prevent switching to the drawing shell
- || !pViewSh->IsDrawTextShell()) // when creating a text object @#70206#
+ && !pViewSh->IsDrawTextShell()) // when creating a text object @#70206#
{
+ // tdf#166481: we only need to switch to draw shell if we have not already created a text shell for text edit mode
pViewSh->SetDrawShell(true);
}
}
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index faaa9ba51c82..2bf7211e6467 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -4229,7 +4229,10 @@ sal_Int8 ScGridWindow::AcceptPrivateDrop( const AcceptDropEvent& rEvt, const ScD
sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt )
{
- const ScDragData& rData = ScModule::get()->GetDragData();
+ const ScDragData* pData = ScModule::get()->GetDragData();
+ if (!pData)
+ return DND_ACTION_NONE;
+ const ScDragData& rData = *pData;
if ( rEvt.mbLeaving )
{
DrawMarkDropObj( nullptr );
@@ -4881,7 +4884,10 @@ sal_Int8 ScGridWindow::ExecuteDrop( const ExecuteDropEvent& rEvt )
DrawMarkDropObj( nullptr ); // drawing layer
ScModule* pScMod = ScModule::get();
- const ScDragData& rData = pScMod->GetDragData();
+ const ScDragData* pData = pScMod->GetDragData();
+ if (!pData)
+ return DND_ACTION_NONE;
+ const ScDragData& rData = *pData;
if (rData.pCellTransfer)
return ExecutePrivateDrop( rEvt, rData );
@@ -6588,22 +6594,24 @@ void ScGridWindow::UpdateCursorOverlay()
if (maVisibleRange.mnCol2 < nX || maVisibleRange.mnRow2 < nY)
return; // no further check needed, nothing visible
- // fdo#87382 Also display the cell cursor for the visible part of
- // merged cells if the view position is part of merged cells.
- const ScMergeAttr& rMerge = pPattern->GetItem(ATTR_MERGE);
- if (rMerge.GetColMerge() <= 1 && rMerge.GetRowMerge() <= 1)
- return; // not merged and invisible
+ if (pPattern)
+ {
+ // fdo#87382 Also display the cell cursor for the visible part of
+ // merged cells if the view position is part of merged cells.
+ const ScMergeAttr& rMerge = pPattern->GetItem(ATTR_MERGE);
+ if (rMerge.GetColMerge() <= 1 && rMerge.GetRowMerge() <= 1)
+ return; // not merged and invisible
- SCCOL nX2 = nX + rMerge.GetColMerge() - 1;
- SCROW nY2 = nY + rMerge.GetRowMerge() - 1;
- // Check if the middle or tail of the merged range is visible.
- if (maVisibleRange.mnCol1 > nX2 || maVisibleRange.mnRow1 > nY2)
- return; // no visible part
+ SCCOL nX2 = nX + rMerge.GetColMerge() - 1;
+ SCROW nY2 = nY + rMerge.GetRowMerge() - 1;
+ // Check if the middle or tail of the merged range is visible.
+ if (maVisibleRange.mnCol1 > nX2 || maVisibleRange.mnRow1 > nY2)
+ return; // no visible part
+ }
}
// don't show the cursor in overlapped cells
- const ScMergeFlagAttr& rMergeFlag = pPattern->GetItem(ATTR_MERGE_FLAG);
- bool bOverlapped = rMergeFlag.IsOverlapped();
+ const bool bOverlapped = pPattern && pPattern->GetItem(ATTR_MERGE_FLAG).IsOverlapped();
// left or above of the screen?
bool bVis = comphelper::LibreOfficeKit::isActive() || ( nX>=mrViewData.GetPosX(eHWhich) && nY>=mrViewData.GetPosY(eVWhich) );
@@ -6611,11 +6619,14 @@ void ScGridWindow::UpdateCursorOverlay()
{
SCCOL nEndX = nX;
SCROW nEndY = nY;
- const ScMergeAttr& rMerge = pPattern->GetItem(ATTR_MERGE);
- if (rMerge.GetColMerge() > 1)
- nEndX += rMerge.GetColMerge()-1;
- if (rMerge.GetRowMerge() > 1)
- nEndY += rMerge.GetRowMerge()-1;
+ if (pPattern)
+ {
+ const ScMergeAttr& rMerge = pPattern->GetItem(ATTR_MERGE);
+ if (rMerge.GetColMerge() > 1)
+ nEndX += rMerge.GetColMerge()-1;
+ if (rMerge.GetRowMerge() > 1)
+ nEndY += rMerge.GetRowMerge()-1;
+ }
bVis = ( nEndX>=mrViewData.GetPosX(eHWhich) && nEndY>=mrViewData.GetPosY(eVWhich) );
}
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 7b7d05a58779..9f36a061a849 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -33,6 +33,7 @@
#include <o3tl/unit_conversion.hxx>
#include <osl/diagnose.h>
#include <tools/UnitConversion.hxx>
+#include <tools/weakbase.hxx>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#include <comphelper/lok.hxx>
@@ -665,43 +666,6 @@ Fraction GetZoom(const ScViewData& rViewData, int i)
}
}
-
-void ScGridWindow::DrawEditView(OutputDevice &rDevice, EditView *pEditView)
-{
- SCCOL nCol1 = mrViewData.GetEditStartCol();
- SCROW nRow1 = mrViewData.GetEditStartRow();
- SCCOL nCol2 = mrViewData.GetEditEndCol();
- SCROW nRow2 = mrViewData.GetEditEndRow();
-
- rDevice.SetLineColor();
- rDevice.SetFillColor(pEditView->GetBackgroundColor());
- Point aStart = mrViewData.GetScrPos( nCol1, nRow1, eWhich );
- Point aEnd = mrViewData.GetScrPos( nCol2+1, nRow2+1, eWhich );
-
- // don't overwrite grid
- bool bLayoutRTL = mrViewData.GetDocument().IsLayoutRTL(mrViewData.GetTabNo());
- tools::Long nLayoutSign = bLayoutRTL ? -1 : 1;
- aEnd.AdjustX( -(2 * nLayoutSign) );
- aEnd.AdjustY( -2 );
-
- // set the correct mapmode
- tools::Rectangle aBackground(aStart, aEnd);
-
- // paint the background
- rDevice.SetMapMode(mrViewData.GetLogicMode());
-
- tools::Rectangle aLogicRect(rDevice.PixelToLogic(aBackground));
- //tdf#100925, rhbz#1283420, Draw some text here, to get
- //X11CairoTextRender::getCairoContext called, so that the forced read
- //from the underlying X Drawable gets it to sync.
- rDevice.DrawText(aLogicRect.BottomLeft(), u" "_ustr);
- rDevice.DrawRect(aLogicRect);
-
- // paint the editeng text
- pEditView->Paint(rDevice.PixelToLogic(aEditRectangle), &rDevice);
- rDevice.SetMapMode(MapMode(MapUnit::MapPixel));
-}
-
void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData,
bool bLogicText)
{
@@ -1343,7 +1307,6 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
if (bInPlaceEditing && !bIsTiledRendering)
{
aEditRectangle = tools::Rectangle(Point(nScrX, nScrY), Size(aOutputData.GetScrW(), aOutputData.GetScrH()));
- DrawEditView(rDevice, pEditView);
if (bInPlaceVisCursor)
pInPlaceCrsr->Show();
@@ -1435,7 +1398,7 @@ namespace
class ScLOKProxyObjectContact final : public sdr::contact::ObjectContactOfPageView
{
private:
- ScDrawView* mpScDrawView;
+ tools::WeakReference<ScDrawView> m_xScDrawView;
public:
explicit ScLOKProxyObjectContact(
@@ -1443,7 +1406,7 @@ namespace
SdrPageWindow& rPageWindow,
const char* pDebugName) :
ObjectContactOfPageView(rPageWindow, pDebugName),
- mpScDrawView(pDrawView)
+ m_xScDrawView(pDrawView)
{
}
@@ -1453,10 +1416,11 @@ namespace
basegfx::B2DVector& rTarget,
const sdr::contact::ViewObjectContact& rClient) const override
{
- if (!mpScDrawView)
+ ScDrawView* pScDrawView = m_xScDrawView.get();
+ if (!pScDrawView)
return;
- SdrPageView* pPageView(mpScDrawView->GetSdrPageView());
+ SdrPageView* pPageView(pScDrawView->GetSdrPageView());
if (!pPageView)
return;
diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx
index 4582900557f9..c33500a9a5df 100644
--- a/sc/source/ui/view/tabcont.cxx
+++ b/sc/source/ui/view/tabcont.cxx
@@ -541,15 +541,16 @@ sal_Int8 ScTabControl::ExecuteDrop( const ExecuteDropEvent& rEvt )
EndSwitchPage();
ScDocument& rDoc = rViewData.GetDocument();
- const ScDragData& rData = ScModule::get()->GetDragData();
- if ( rData.pCellTransfer && (rData.pCellTransfer->GetDragSourceFlags() & ScDragSrc::Table) &&
- rData.pCellTransfer->GetSourceDocument() == &rDoc )
+ const ScDragData* pData = ScModule::get()->GetDragData();
+ if ( pData && pData->pCellTransfer &&
+ (pData->pCellTransfer->GetDragSourceFlags() & ScDragSrc::Table) &&
+ pData->pCellTransfer->GetSourceDocument() == &rDoc )
{
// moving of tables within the document
SCTAB nPos = GetPrivatDropPos( rEvt.maPosPixel );
HideDropPos();
- if ( nPos == rData.pCellTransfer->GetVisibleTab() && rEvt.mnAction == DND_ACTION_MOVE )
+ if ( nPos == pData->pCellTransfer->GetVisibleTab() && rEvt.mnAction == DND_ACTION_MOVE )
{
// #i83005# do nothing - don't move to the same position
// (too easily triggered unintentionally, and might take a long time in large documents)
@@ -561,7 +562,7 @@ sal_Int8 ScTabControl::ExecuteDrop( const ExecuteDropEvent& rEvt )
//! use table selection from the tab control where dragging was started?
rViewData.GetView()->MoveTable( lcl_DocShellNr(rDoc), nPos, rEvt.mnAction != DND_ACTION_MOVE );
- rData.pCellTransfer->SetDragWasInternal(); // don't delete
+ pData->pCellTransfer->SetDragWasInternal(); // don't delete
return DND_ACTION_COPY;
}
}
@@ -580,9 +581,10 @@ sal_Int8 ScTabControl::AcceptDrop( const AcceptDropEvent& rEvt )
}
const ScDocument& rDoc = rViewData.GetDocument();
- const ScDragData& rData = ScModule::get()->GetDragData();
- if ( rData.pCellTransfer && (rData.pCellTransfer->GetDragSourceFlags() & ScDragSrc::Table) &&
- rData.pCellTransfer->GetSourceDocument() == &rDoc )
+ const ScDragData* pData = ScModule::get()->GetDragData();
+ if ( pData && pData->pCellTransfer &&
+ (pData->pCellTransfer->GetDragSourceFlags() & ScDragSrc::Table) &&
+ pData->pCellTransfer->GetSourceDocument() == &rDoc )
{
// moving of tables within the document
if ( !rDoc.GetChangeTrack() && rDoc.IsDocEditable() )
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 652e6b5a244f..7a0691349684 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -2406,9 +2406,7 @@ void ScTabView::SetNewVisArea()
if (bInPlaceVisCursor)
pInPlaceCrsr->Hide();
- ScGridWindow *pGridWindow = GetViewData().GetActiveWin();
- pGridWindow->DrawEditView(*pGridWindow->GetOutDev(), pEditView);
- pGridWindow->GetOutDev()->SetMapMode(GetViewData().GetLogicMode());
+ RefeshTextEditOverlay();
if (bInPlaceVisCursor)
pInPlaceCrsr->Show();
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 6cc15283d272..c6a274d89c28 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -34,6 +34,14 @@
#include <sal/log.hxx>
#include <osl/diagnose.h>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonRGBAPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
+#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
+#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
+#include <svx/sdr/overlay/overlayselection.hxx>
+#include <svtools/optionsdrawinglayer.hxx>
+
#include <IAnyRefDialog.hxx>
#include <tabview.hxx>
#include <tabvwsh.hxx>
@@ -2189,7 +2197,354 @@ void ScTabView::OnLibreOfficeKitTabChanged()
pThisViewShell->GetInputHandler()->UpdateLokReferenceMarks();
}
-// paint functions - only for this View
+// TextEditOverlayObject for TextOnOverlay TextEdit. It directly
+// implements needed EditViewCallbacks and also hosts the
+// OverlaySelection
+namespace
+{
+class ScTextEditOverlayObject : public sdr::overlay::OverlayObject, public EditViewCallbacks
+{
+ // the ScTabView the TextEdit is running at and the ScSplitPos to
+ // identify the associated data
+ ScTabView& mrScTabView;
+ ScSplitPos maScSplitPos;
+
+ // this separate OverlayObject holds and creates the selection
+ // visualization, so it can be changed/refreshed without changing
+ // the Text or TextEditBackground
+ std::unique_ptr<sdr::overlay::OverlaySelection> mxOverlayTransparentSelection;
+
+ // geometry creation for OverlayObject, in this case the extraction
+ // of edited Text from the setup EditEngine
+ virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override;
+
+ // EditView overrides
+ virtual void EditViewInvalidate(const tools::Rectangle& rRect) override;
+ virtual void EditViewSelectionChange() override;
+ virtual OutputDevice& EditViewOutputDevice() const override;
+ virtual Point EditViewPointerPosPixel() const override;
+ virtual css::uno::Reference<css::datatransfer::clipboard::XClipboard> GetClipboard() const override;
+ virtual css::uno::Reference<css::datatransfer::dnd::XDropTarget> GetDropTarget() override;
+ virtual void EditViewInputContext(const InputContext& rInputContext) override;
+ virtual void EditViewCursorRect(const tools::Rectangle& rRect, int nExtTextInputWidth) override;
+
+public:
+ // create using system selection color & ScTabView
+ ScTextEditOverlayObject(
+ const Color& rColor,
+ ScTabView& rScTabView,
+ ScSplitPos aScSplitPos);
+ virtual ~ScTextEditOverlayObject() override;
+
+ // override to mix in TextEditBackground and the Text transformed
+ // as needed
+ virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const override;
+
+ // access to OverlaySelection to add to OverlayManager
+ sdr::overlay::OverlayObject* getOverlaySelection()
+ {
+ return mxOverlayTransparentSelection.get();
+ }
+
+ void RefeshTextEditOverlay()
+ {
+ // currently just deletes all created stuff, this may
+ // be fine-tuned later if needed
+ objectChange();
+ }
+};
+
+ScTextEditOverlayObject::ScTextEditOverlayObject(
+ const Color& rColor,
+ ScTabView& rScTabView,
+ ScSplitPos aScSplitPos)
+: OverlayObject(rColor)
+, mrScTabView(rScTabView)
+, maScSplitPos(aScSplitPos)
+{
+ // no AA for TextEdit overlay
+ allowAntiAliase(false);
+
+ // establish EditViewCallbacks
+ const ScViewData& rScViewData(mrScTabView.GetViewData());
+ EditView* pEditView(rScViewData.GetEditView(maScSplitPos));
+ DBG_ASSERT(nullptr != pEditView, "NO access to EditView in ScTextEditOverlayObject!");
+ pEditView->setEditViewCallbacks(this);
+
+ // initialize empty OverlaySelection
+ std::vector<basegfx::B2DRange> aEmptySelection{};
+ mxOverlayTransparentSelection.reset(new sdr::overlay::OverlaySelection(
+ sdr::overlay::OverlayType::Transparent, rColor, std::move(aEmptySelection), true));
+}
+
+ScTextEditOverlayObject::~ScTextEditOverlayObject()
+{
+ // delete OverlaySelection - this will also remove itself from
+ // OverlayManager already
+ mxOverlayTransparentSelection.reset();
+
+ // shutdown EditViewCallbacks
+ const ScViewData& rScViewData(mrScTabView.GetViewData());
+ EditView* pEditView(rScViewData.GetEditView(maScSplitPos));
+ DBG_ASSERT(nullptr != pEditView, "NO access to EditView in ScTextEditOverlayObject!");
+ pEditView->setEditViewCallbacks(nullptr);
+
+ // remove myself
+ if (getOverlayManager())
+ getOverlayManager()->remove(*this);
+}
+
+drawinglayer::primitive2d::Primitive2DContainer ScTextEditOverlayObject::createOverlayObjectPrimitive2DSequence()
+{
+ // extract primitive representation from active EditEngine
+ drawinglayer::primitive2d::Primitive2DContainer aRetval;
+
+ ScViewData& rScViewData(mrScTabView.GetViewData());
+ const EditView* pEditView(rScViewData.GetEditView(maScSplitPos));
+ assert(pEditView && "NO access to EditView in ScTextEditOverlayObject!");
+
+ // use no transformations. The result will be in logic coordinates
+ // based on aEditRectangle and the EditEngine setup, see
+ // ScViewData::SetEditEngine
+ basegfx::B2DHomMatrix aNewTransformA;
+ basegfx::B2DHomMatrix aNewTransformB;
+
+ // get text data in LogicMode
+ OutputDevice& rOutDev(pEditView->GetOutputDevice());
+ const MapMode aOrig(rOutDev.GetMapMode());
+ rOutDev.SetMapMode(rScViewData.GetLogicMode());
+
+ pEditView->getEditEngine().StripPortions(
+ [&aRetval, &aNewTransformA, &aNewTransformB](const DrawPortionInfo& rInfo){
+ CreateTextPortionPrimitivesFromDrawPortionInfo(
+ aRetval,
+ aNewTransformA,
+ aNewTransformB,
+ rInfo);
+ },
+ [&aRetval, &aNewTransformA, &aNewTransformB](const DrawBulletInfo& rInfo){
+ CreateDrawBulletPrimitivesFromDrawBulletInfo(
+ aRetval,
+ aNewTransformA,
+ aNewTransformB,
+ rInfo);
+ });
+
+ rOutDev.SetMapMode(aOrig);
+ return aRetval;
+}
+
+void ScTextEditOverlayObject::EditViewInvalidate(const tools::Rectangle& rRect)
+{
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ // UT testPageDownInvalidation from CppunitTest_sc_tiledrendering
+ // *needs* the direct invalidates formerly done in
+ // EditView::InvalidateWindow when no EditViewCallbacks are set
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ pActiveWin->Invalidate(rRect);
+ }
+
+ RefeshTextEditOverlay();
+}
+
+void ScTextEditOverlayObject::EditViewSelectionChange()
+{
+ ScViewData& rScViewData(mrScTabView.GetViewData());
+ EditView* pEditView(rScViewData.GetEditView(maScSplitPos));
+ assert(pEditView && "NO access to EditView in ScTextEditOverlayObject!");
+
+ // get the selection rectangles
+ std::vector<tools::Rectangle> aRects;
+ pEditView->GetSelectionRectangles(aRects);
+ std::vector<basegfx::B2DRange> aLogicRanges;
+
+ if (aRects.empty())
+ {
+ // if none, reset selection at OverlayObject and we are done
+ mxOverlayTransparentSelection->setRanges(std::move(aLogicRanges));
+ return;
+ }
+
+ // create needed transformations
+ // LogicMode -> DiscreteViewCoordinates (Pixels)
+ basegfx::B2DHomMatrix aTransformToPixels;
+ OutputDevice& rOutDev(pEditView->GetOutputDevice());
+ const MapMode aOrig(rOutDev.GetMapMode());
+ rOutDev.SetMapMode(rScViewData.GetLogicMode());
+ aTransformToPixels = rOutDev.GetViewTransformation();
+
+ // DiscreteViewCoordinates (Pixels) -> LogicDrawCoordinates
+ basegfx::B2DHomMatrix aTransformToDrawCoordinates;
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ rOutDev.SetMapMode(pActiveWin->GetDrawMapMode());
+ aTransformToDrawCoordinates = rOutDev.GetInverseViewTransformation();
+ rOutDev.SetMapMode(aOrig);
+
+ for (const auto& aRect : aRects)
+ {
+ basegfx::B2DRange aRange(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom());
+
+ // range to pixels
+ aRange.transform(aTransformToPixels);
+
+ // grow by 1px for slight distance/overlap
+ aRange.grow(1.0);
+
+ // to drawinglayer coordinates & add
+ aRange.transform(aTransformToDrawCoordinates);
+ aLogicRanges.emplace_back(aRange);
+ }
+
+ mxOverlayTransparentSelection->setRanges(std::move(aLogicRanges));
+}
+
+OutputDevice& ScTextEditOverlayObject::EditViewOutputDevice() const
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ return *pActiveWin->GetOutDev();
+}
+
+Point ScTextEditOverlayObject::EditViewPointerPosPixel() const
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ return pActiveWin->GetPointerPosPixel();
+}
+
+css::uno::Reference<css::datatransfer::clipboard::XClipboard> ScTextEditOverlayObject::GetClipboard() const
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ return pActiveWin->GetClipboard();
+}
+
+css::uno::Reference<css::datatransfer::dnd::XDropTarget> ScTextEditOverlayObject::GetDropTarget()
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ return pActiveWin->GetDropTarget();
+}
+
+void ScTextEditOverlayObject::EditViewInputContext(const InputContext& rInputContext)
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ pActiveWin->SetInputContext(rInputContext);
+}
+
+void ScTextEditOverlayObject::EditViewCursorRect(const tools::Rectangle& rRect, int nExtTextInputWidth)
+{
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ pActiveWin->SetCursorRect(&rRect, nExtTextInputWidth);
+}
+
+drawinglayer::primitive2d::Primitive2DContainer ScTextEditOverlayObject::getOverlayObjectPrimitive2DSequence() const
+{
+ drawinglayer::primitive2d::Primitive2DContainer aRetval;
+
+
+ ScViewData& rScViewData(mrScTabView.GetViewData());
+ EditView* pEditView(rScViewData.GetEditView(maScSplitPos));
+ assert(pEditView && "NO access to EditView in ScTextEditOverlayObject!");
+
+ // call base implementation to get TextPrimitives in logic coordinates
+ // directly from the setup EditEngine
+ drawinglayer::primitive2d::Primitive2DContainer aText(
+ OverlayObject::getOverlayObjectPrimitive2DSequence());
+
+ if (aText.empty())
+ // no Text, done, return result
+ return aRetval;
+
+ // remember MapMode and restore at exit - we do not want
+ // to change it outside this method
+ OutputDevice& rOutDev(pEditView->GetOutputDevice());
+ const MapMode aOrig(rOutDev.GetMapMode());
+
+ // create text edit background based on pixel coordinates
+ // of involved Cells and append
+ {
+ const SCCOL nCol1(rScViewData.GetEditStartCol());
+ const SCROW nRow1(rScViewData.GetEditStartRow());
+ const SCCOL nCol2(rScViewData.GetEditEndCol());
+ const SCROW nRow2(rScViewData.GetEditEndRow());
+ const Point aStart(rScViewData.GetScrPos(nCol1, nRow1, maScSplitPos));
+ const Point aEnd(rScViewData.GetScrPos(nCol2+1, nRow2+1, maScSplitPos));
+
+ if (aStart != aEnd)
+ {
+ basegfx::B2DPolyPolygon aOutline(basegfx::utils::createPolygonFromRect(
+ basegfx::B2DRange(
+ aStart.X(), aStart.Y(),
+ aEnd.X(), aEnd.Y())));
+
+ // transform from Pixels to LogicDrawCoordinates
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ rOutDev.SetMapMode(pActiveWin->GetDrawMapMode());
+ aOutline.transform(rOutDev.GetInverseViewTransformation());
+
+ // on overlay we can now design the look more freely, it
+ // uses the CellBackgroundColor combined with 50% transparence
+ // to not completely hide what may be behind.
+ // Also currently no need to shrink by 2px (?) right/bottom
+ // to not kill cell separation lines - may have to be re-added
+ // when transparency is not wanted
+ aRetval.push_back(
+ rtl::Reference<drawinglayer::primitive2d::PolyPolygonRGBAPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonRGBAPrimitive2D(
+ aOutline,
+ pEditView->GetBackgroundColor().getBColor(),
+ 0.5)));
+ }
+ }
+
+ // create embedding transformation for Text itself and
+ // append Text
+ {
+ basegfx::B2DHomMatrix aTransform;
+
+ // transform by TextPaint StartPosition (Top-Left). This corresponds
+ // to aEditRectangle and the EditEngine setup, see
+ // ScViewData::SetEditEngine. Offset is in LogicCoordinates/LogicMode
+ const Point aStartPosition(pEditView->CalculateTextPaintStartPosition());
+ aTransform.translate(aStartPosition.X(), aStartPosition.Y());
+
+ // LogicMode -> DiscreteViewCoordinates (Pixels)
+ rOutDev.SetMapMode(rScViewData.GetLogicMode());
+ aTransform *= rOutDev.GetViewTransformation();
+
+ // DiscreteViewCoordinates (Pixels) -> LogicDrawCoordinates
+ ScGridWindow* pActiveWin(static_cast<ScGridWindow*>(mrScTabView.GetWindowByPos(maScSplitPos)));
+ rOutDev.SetMapMode(pActiveWin->GetDrawMapMode());
+ aTransform *= rOutDev.GetInverseViewTransformation();
+
+ // add text embedded to created transformation
+ aRetval.push_back(rtl::Reference<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
+ aTransform, std::move(aText))));
+ }
+
+ rOutDev.SetMapMode(aOrig);
+ return aRetval;
+}
+} // end of anonymous namespace
+
+void ScTabView::RefeshTextEditOverlay()
+{
+ // find the ScTextEditOverlayObject in the OverlayGroup and
+ // call refresh there. It is also possible to have separate
+ // holders of that data, so no find/identification would be
+ // needed, but having all associated OverlayObjects in one
+ // group makes handling simple(r). It may also be that the
+ // cursor visualization will be added to that group later
+ for (sal_uInt32 a(0); a < maTextEditOverlayGroup.count(); a++)
+ {
+ sdr::overlay::OverlayObject& rOverlayObject(maTextEditOverlayGroup.getOverlayObject(a));
+ ScTextEditOverlayObject* pScTextEditOverlayObject(dynamic_cast<ScTextEditOverlayObject*>(&rOverlayObject));
+
+ if (nullptr != pScTextEditOverlayObject)
+ {
+ pScTextEditOverlayObject->RefeshTextEditOverlay();
+ }
+ }
+}
void ScTabView::MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW nRow )
{
@@ -2204,8 +2559,9 @@ void ScTabView::MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW
{
if (pGridWin[i] && pGridWin[i]->IsVisible() && !aViewData.HasEditView(ScSplitPos(i)))
{
- ScHSplitPos eHWhich = WhichH( static_cast<ScSplitPos>(i) );
- ScVSplitPos eVWhich = WhichV( static_cast<ScSplitPos>(i) );
+ const ScSplitPos aScSplitPos(static_cast<ScSplitPos>(i));
+ ScHSplitPos eHWhich = WhichH(aScSplitPos);
+ ScVSplitPos eVWhich = WhichV(aScSplitPos);
SCCOL nScrX = aViewData.GetPosX( eHWhich );
SCROW nScrY = aViewData.GetPosY( eVWhich );
@@ -2217,39 +2573,47 @@ void ScTabView::MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW
// so input isn't lost (and the edit view may be scrolled into the visible area)
// #i26433# during spelling, the spelling view must be active
- if ( bPosVisible || aViewData.GetActivePart() == static_cast<ScSplitPos>(i) ||
- ( pSpellingView && aViewData.GetEditView(static_cast<ScSplitPos>(i)) == pSpellingView ) )
+ if ( bPosVisible || aViewData.GetActivePart() == aScSplitPos ||
+ ( pSpellingView && aViewData.GetEditView(aScSplitPos) == pSpellingView ) )
{
- pGridWin[i]->HideCursor();
-
- pGridWin[i]->DeleteCursorOverlay();
- pGridWin[i]->DeleteAutoFillOverlay();
- pGridWin[i]->DeleteCopySourceOverlay();
-
- // tdf#165621 allow the Overlay to quickly update, necessary
- // for clean graphical refreshes
- // NOTE: This also works using Application::Reschedule(true), but
- // triggers CppunitTest_desktop_lib "DesktopLOKTest::testRedlineCalc",
- // probably due to not only the timer triggering but 'other' stuff
- // that better runs later (...?). Not doing it - as long as we need
- // to do it - is safer, but forces to keep that flush just for this
- // single usage
- rtl::Reference<sdr::overlay::OverlayManager> xOverlayManager = pGridWin[i]->getOverlayManager();
- if (xOverlayManager.is())
- xOverlayManager->flush();
+ VclPtr<ScGridWindow> pScGridWindow(pGridWin[aScSplitPos]);
+ pScGridWindow->HideCursor();
+ pScGridWindow->DeleteCursorOverlay();
+ pScGridWindow->DeleteAutoFillOverlay();
+ pScGridWindow->DeleteCopySourceOverlay();
// MapMode must be set after HideCursor
- pGridWin[i]->SetMapMode(aViewData.GetLogicMode());
+ pScGridWindow->SetMapMode(aViewData.GetLogicMode());
if ( !bPosVisible )
{
// move the edit view area to the real (possibly negative) position,
// or hide if completely above or left of the window
- pGridWin[i]->UpdateEditViewPos();
+ pScGridWindow->UpdateEditViewPos();
}
- aViewData.SetEditEngine(static_cast<ScSplitPos>(i), pEngine, pGridWin[i], nCol,
+ aViewData.SetEditEngine(aScSplitPos, pEngine, pScGridWindow, nCol,
nRow);
+
+ // get OverlayManager and initialize TextEditOnOverlay for it
+ rtl::Reference<sdr::overlay::OverlayManager> xOverlayManager = pScGridWindow->getOverlayManager();
+
+ if (xOverlayManager.is() && aViewData.HasEditView(aScSplitPos))
+ {
+ const Color aHilightColor(SvtOptionsDrawinglayer::getHilightColor());
+ std::unique_ptr<ScTextEditOverlayObject> pNewScTextEditOverlayObject(
+ new ScTextEditOverlayObject(
+ aHilightColor,
+ *this,
+ aScSplitPos));
+
+ // add TextEditOverlayObject and the OverlaySelection hosted by it
+ // to the OverlayManager (to make visible) and to the local
+ // reference TextEditOverlayGroup (to access if needed)
+ xOverlayManager->add(*pNewScTextEditOverlayObject);
+ xOverlayManager->add(*pNewScTextEditOverlayObject->getOverlaySelection());
+ maTextEditOverlayGroup.append(std::move(pNewScTextEditOverlayObject));
+ }
}
}
}
@@ -2282,6 +2646,8 @@ void ScTabView::UpdateEditView()
pEditView->ShowCursor( false );
}
}
+
+ RefeshTextEditOverlay();
}
void ScTabView::KillEditView( bool bNoPaint )
@@ -2312,6 +2678,10 @@ void ScTabView::KillEditView( bool bNoPaint )
}
}
+ // this cleans up all used OverlayObjects for TextEdit, they get deleted
+ // and removed from the OverlayManager what makes them optically disappear
+ maTextEditOverlayGroup.clear();
+
// notify accessibility before all things happen
if (bNotifyAcc && aViewData.GetViewShell()->HasAccessibilityObjects())
aViewData.GetViewShell()->BroadcastAccessibility(SfxHint(SfxHintId::ScAccLeaveEditMode));
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 380b9d0b0cc0..469aaeacc5a2 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -1867,8 +1867,13 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich,
}
pEditView[eWhich]->SetBackgroundColor( aBackCol );
- pEditView[eWhich]->Invalidate(); // needed?
- // needed, if position changed
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ // now only needed when not CEOO (CellEditOnOverlay)
+ // needed?
+ // needed, if position changed
+ pEditView[eWhich]->Invalidate();
+ }
}
IMPL_LINK( ScViewData, EditEngineHdl, EditStatus&, rStatus, void )
@@ -1942,6 +1947,11 @@ void ScViewData::EditGrowX()
// get bGrow... variables the same way as in SetEditEngine
const ScPatternAttr* pPattern = rLocalDoc.GetPattern( nEditCol, nEditRow, nTabNo );
+ if (!pPattern)
+ {
+ SAL_WARN("sc.viewdata", "No Pattern Found for: Col: " << nEditCol << ", Row: " << nEditRow << ", Tab: " << nTabNo);
+ pPattern = &rLocalDoc.getCellAttributeHelper().getDefaultCellAttribute();
+ }
SvxCellHorJustify eJust = pPattern->GetItem( ATTR_HOR_JUSTIFY ).GetValue();
bool bGrowCentered = ( eJust == SvxCellHorJustify::Center );
bool bGrowToLeft = ( eJust == SvxCellHorJustify::Right ); // visual left
diff --git a/sc/source/ui/view/viewfun7.cxx b/sc/source/ui/view/viewfun7.cxx
index 697ba07cc1af..87b25b9dc8eb 100644
--- a/sc/source/ui/view/viewfun7.cxx
+++ b/sc/source/ui/view/viewfun7.cxx
@@ -92,8 +92,8 @@ void ScViewFunc::PasteDraw( const Point& rLogicPos, SdrModel* pModel,
bool bNegativePage = GetViewData().GetDocument().IsNegativePage( GetViewData().GetTabNo() );
SdrView* pDragEditView = nullptr;
- const ScDragData& rData = ScModule::get()->GetDragData();
- ScDrawTransferObj* pDrawTrans = rData.pDrawTransfer;
+ const ScDragData* pData = ScModule::get()->GetDragData();
+ ScDrawTransferObj* pDrawTrans = pData ? pData->pDrawTransfer : nullptr;
if (pDrawTrans)
{
pDragEditView = pDrawTrans->GetDragSourceView();
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index 17cc4b928baa..65047b7e0e4b 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -164,20 +164,19 @@ void ScXMLSourceDlg::SelectSourceFile()
FileDialogFlags::NONE, m_xDialog.get());
aDlgHelper.SetContext(sfx2::FileDialogHelper::CalcXMLSource);
- uno::Reference<ui::dialogs::XFilePicker3> xFilePicker = aDlgHelper.GetFilePicker();
-
// Use the directory of current source file.
INetURLObject aURL(maSrcPath);
aURL.removeSegment();
aURL.removeFinalSlash();
OUString aPath = aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE);
- xFilePicker->setDisplayDirectory(aPath);
- if (xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
+ if (!aPath.isEmpty())
+ aDlgHelper.SetDisplayFolder(aPath);
+ if (aDlgHelper.Execute() != ERRCODE_NONE)
// File picker dialog cancelled.
return;
- uno::Sequence<OUString> aFiles = xFilePicker->getSelectedFiles();
+ uno::Sequence<OUString> aFiles = aDlgHelper.GetSelectedFiles();
if (!aFiles.hasElements())
return;