[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - 44 commits - bin/pack-debug configure.ac cui/source distro-configs/CPLinux.conf distro-configs/CPLinux-LOKit.conf distro-configs/CPOSX.conf distro-configs/CPWin32.conf distro-configs/CPWin32-MPL.conf download.lst extensions/source external/more_fonts filter/source framework/inc framework/source icon-themes/galaxy include/sfx2 include/vcl instsetoo_native/CustomTarget_install.mk instsetoo_native/CustomTarget_setup.mk instsetoo_native/inc_common instsetoo_native/inc_ooohelppack instsetoo_native/inc_openoffice instsetoo_native/inc_sdkoo instsetoo_native/util Makefile.fetch officecfg/registry oox/source postprocess/CustomTarget_registry.mk readlicense_oo/docs readlicense_oo/license readlicense_oo/Package_files.mk scp2/source sc/source sc/uiconfig sd/source setup_native/source sfx2/source sfx2/uiconfig solenv/bin svtools/inc sw/CppunitTest_sw_odfexport.mk sw/qa sw/sdi sw/source sysui/desktop sysui/productlist.mk vcl/headless xmloff/sou rce

Miklos Vajna vmiklos at collabora.co.uk
Thu Mar 15 22:06:20 UTC 2018


 Makefile.fetch                                                      |    1 
 bin/pack-debug                                                      |  337 
 configure.ac                                                        |    5 
 cui/source/dialogs/about.cxx                                        |    2 
 cui/source/inc/cuitabarea.hxx                                       |    2 
 cui/source/inc/cuitabline.hxx                                       |    2 
 cui/source/tabpages/autocdlg.cxx                                    |    4 
 cui/source/tabpages/chardlg.cxx                                     |    2 
 cui/source/tabpages/tabarea.cxx                                     |    3 
 cui/source/tabpages/tabline.cxx                                     |    3 
 distro-configs/CPLinux-LOKit.conf                                   |   54 
 distro-configs/CPLinux.conf                                         |   45 
 distro-configs/CPOSX.conf                                           |   20 
 distro-configs/CPWin32-MPL.conf                                     |   30 
 distro-configs/CPWin32.conf                                         |   26 
 download.lst                                                        |    1 
 extensions/source/macosx/spotlight/mdimporter/Info.plist            |    4 
 external/more_fonts/ExternalPackage_karla.mk                        |   19 
 external/more_fonts/Module_more_fonts.mk                            |    2 
 external/more_fonts/UnpackedTarball_karla.mk                        |   14 
 filter/source/config/cache/constant.hxx                             |    1 
 filter/source/config/cache/filtercache.cxx                          |    7 
 framework/inc/helper/mischelper.hxx                                 |    3 
 framework/source/uielement/langselectionstatusbarcontroller.cxx     |  103 
 icon-themes/galaxy/brand_cp/flat_logo.svg                           |  829 
 icon-themes/galaxy/brand_cp/intro.png                               |binary
 include/sfx2/docfilt.hxx                                            |    5 
 include/vcl/errcode.hxx                                             |    1 
 instsetoo_native/CustomTarget_install.mk                            |    4 
 instsetoo_native/CustomTarget_setup.mk                              |    8 
 instsetoo_native/inc_common/windows/msi_templates/Binary/Banner.bmp |binary
 instsetoo_native/inc_common/windows/msi_templates/Binary/Image.bmp  |binary
 instsetoo_native/inc_ooohelppack/windows/msi_templates/Property.idt |   10 
 instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt  |   10 
 instsetoo_native/inc_sdkoo/windows/msi_templates/Property.idt       |   10 
 instsetoo_native/util/openoffice.lst.in                             |   41 
 officecfg/registry/data/org/openoffice/Office/Accelerators.xcu      |    6 
 officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs   |    8 
 oox/source/ppt/pptimport.cxx                                        |   18 
 postprocess/CustomTarget_registry.mk                                |    4 
 readlicense_oo/Package_files.mk                                     |    4 
 readlicense_oo/docs/readme.xrm                                      |  201 
 readlicense_oo/license/EULA.odt                                     |binary
 readlicense_oo/license/EULA_en-US.rtf                               |   94 
 readlicense_oo/license/LICENSE                                      |   26 
 readlicense_oo/license/LICENSE.fodt                                 |  603 
 readlicense_oo/license/LICENSE.html                                 | 9961 +++++++++-
 sc/source/ui/pagedlg/tptable.cxx                                    |   33 
 sc/uiconfig/scalc/ui/sheetprintpage.ui                              |   53 
 scp2/source/ooo/scpaction_ooo.scp                                   |   25 
 sd/source/ui/view/drviews2.cxx                                      |   10 
 setup_native/source/packinfo/DS_Store                               |binary
 setup_native/source/packinfo/VolumeIcon.icns                        |binary
 setup_native/source/packinfo/osxdndinstall.png                      |binary
 setup_native/source/packinfo/packinfo_brand.txt                     |    7 
 setup_native/source/packinfo/packinfo_office.txt                    |    2 
 setup_native/source/packinfo/sla.r                                  | 1428 +
 sfx2/source/appl/appserv.cxx                                        |    8 
 sfx2/source/appl/appuno.cxx                                         |   20 
 sfx2/source/bastyp/fltfnc.cxx                                       |   10 
 sfx2/source/doc/docfilt.cxx                                         |    9 
 sfx2/source/doc/objstor.cxx                                         |    5 
 sfx2/uiconfig/ui/licensedialog.ui                                   |   37 
 solenv/bin/macosx-codesign-app-bundle                               |    4 
 solenv/bin/modules/installer/download.pm                            |    2 
 solenv/bin/modules/installer/setupscript.pm                         |    2 
 solenv/bin/modules/installer/simplepackage.pm                       |   14 
 solenv/bin/modules/installer/windows/admin.pm                       |    2 
 solenv/bin/modules/installer/windows/idtglobal.pm                   |    2 
 svtools/inc/errtxt.hrc                                              |    1 
 sw/CppunitTest_sw_odfexport.mk                                      |    5 
 sw/qa/extras/odfexport/data/embedded-font-props.odt                 |binary
 sw/qa/extras/odfexport/odfexport.cxx                                |   20 
 sw/qa/extras/ooxmlexport/data/tdf44832_section_new_header.odt       |binary
 sw/qa/extras/ooxmlexport/ooxmlexport11.cxx                          |   10 
 sw/qa/extras/uiwriter/uiwriter.cxx                                  |   22 
 sw/sdi/swriter.sdi                                                  |    2 
 sw/source/core/crsr/crsrsh.cxx                                      |    5 
 sw/source/core/doc/docredln.cxx                                     |   14 
 sw/source/core/layout/frmtool.cxx                                   |    4 
 sw/source/core/text/txtfld.cxx                                      |    5 
 sw/source/core/text/xmldump.cxx                                     |   13 
 sw/source/filter/ww8/docxexport.cxx                                 |   34 
 sw/source/filter/ww8/docxexport.hxx                                 |    2 
 sw/source/filter/ww8/docxsdrexport.cxx                              |    2 
 sw/source/uibase/dbui/dbmgr.cxx                                     |   21 
 sysui/desktop/freedesktop/freedesktop-menus.spec                    |    3 
 sysui/desktop/icons/main.icns                                       |binary
 sysui/desktop/share/create_tree.sh                                  |    8 
 sysui/productlist.mk                                                |    4 
 vcl/headless/svpframe.cxx                                           |    2 
 xmloff/source/style/XMLFontAutoStylePool.cxx                        |   70 
 92 files changed, 13623 insertions(+), 830 deletions(-)

New commits:
commit 7f84b2881fb80837f62fe6f210593571a07ee035
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Nov 28 14:27:59 2017 +0100

    ODF export: expose font style and weight of embedded fonts
    
    We don't need this info ourselves, but when converting the flat ODF
    output to other formats, this information is hard to find out, so state
    them explicitly. Names correspond to existing CSS ones, where it's
    necessary to state these explicitly. The EPUB export will make use of
    these attributes.
    
    (It is unclear why the test fails on the windows_msc_dbgutil_32 slave,
    it works for me locally.)
    
    Change-Id: I05030b6a14aca842e5a740786f3743e9ae838293
    Reviewed-on: https://gerrit.libreoffice.org/45384
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 9914ca04ac6a63f14adcd0fe58b2be44b84ee15f)

diff --git a/sw/CppunitTest_sw_odfexport.mk b/sw/CppunitTest_sw_odfexport.mk
index 343ab0a58066..8fb2228d84a3 100644
--- a/sw/CppunitTest_sw_odfexport.mk
+++ b/sw/CppunitTest_sw_odfexport.mk
@@ -55,4 +55,9 @@ $(eval $(call gb_CppunitTest_use_custom_headers,sw_odfexport,\
 
 $(eval $(call gb_CppunitTest_use_configuration,sw_odfexport))
 
+ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
+$(call gb_CppunitTest_get_target,sw_odfexport): \
+    $(call gb_ExternalPackage_get_target,fonts_liberation)
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/sw/qa/extras/odfexport/data/embedded-font-props.odt b/sw/qa/extras/odfexport/data/embedded-font-props.odt
new file mode 100644
index 000000000000..6eb073e29fe0
Binary files /dev/null and b/sw/qa/extras/odfexport/data/embedded-font-props.odt differ
diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx
index cc5cfb4f7a77..f571551ad077 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -1711,6 +1711,26 @@ DECLARE_ODFEXPORT_TEST(testImageMimetype, "image-mimetype.odt")
     }
 }
 
+DECLARE_ODFEXPORT_TEST(testEmbeddedFontProps, "embedded-font-props.odt")
+{
+#if !defined(WNT)
+    // Test that font style/weight of embedded fonts is exposed.
+    // Test file is a normal ODT, except EmbedFonts is set to true in settings.xml.
+    if (xmlDocPtr pXmlDoc = parseExport("content.xml"))
+    {
+        // These failed, the attributes were missing.
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[1]", "font-style", "normal");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[1]", "font-weight", "normal");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[2]", "font-style", "normal");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[2]", "font-weight", "bold");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[3]", "font-style", "italic");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[3]", "font-weight", "normal");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[4]", "font-style", "italic");
+        assertXPath(pXmlDoc, "//style:font-face[@style:name='Liberation Serif']/svg:font-face-src/svg:font-face-uri[4]", "font-weight", "bold");
+    }
+#endif
+}
+
 DECLARE_ODFEXPORT_TEST(testTdf100492, "tdf100492.odt")
 {
     uno::Reference<drawing::XShape> xShape = getShape(1);
diff --git a/xmloff/source/style/XMLFontAutoStylePool.cxx b/xmloff/source/style/XMLFontAutoStylePool.cxx
index a484921051f9..cbf55e707bba 100644
--- a/xmloff/source/style/XMLFontAutoStylePool.cxx
+++ b/xmloff/source/style/XMLFontAutoStylePool.cxx
@@ -239,6 +239,50 @@ OUString lcl_checkFontFile( const OUString &fileUrl )
     return OUString();
 }
 
+/// Contains information about a single variant of an embedded font.
+struct EmbeddedFontInfo
+{
+    OUString aURL;
+    FontWeight eWeight = WEIGHT_NORMAL;
+    FontItalic eItalic = ITALIC_NONE;
+};
+
+/// Converts FontWeight to CSS-compatible string representation.
+OUString FontWeightToString(FontWeight eWeight)
+{
+    OUString aRet;
+
+    switch (eWeight)
+    {
+    case WEIGHT_BOLD:
+        aRet = "bold";
+        break;
+    default:
+        aRet = "normal";
+        break;
+    }
+
+    return aRet;
+}
+
+/// Converts FontItalic to CSS-compatible string representation.
+OUString FontItalicToString(FontItalic eWeight)
+{
+    OUString aRet;
+
+    switch (eWeight)
+    {
+    case ITALIC_NORMAL:
+        aRet = "italic";
+        break;
+    default:
+        aRet = "normal";
+        break;
+    }
+
+    return aRet;
+}
+
 }
 
 void XMLFontAutoStylePool::exportXML()
@@ -296,7 +340,7 @@ void XMLFontAutoStylePool::exportXML()
         if( tryToEmbedFonts )
         {
             const bool bExportFlat( GetExport().getExportFlags() & SvXMLExportFlags::EMBEDDED );
-            std::vector< OUString > fileUrls;
+            std::vector< EmbeddedFontInfo > aEmbeddedFonts;
             static const FontWeight weight[] = { WEIGHT_NORMAL, WEIGHT_BOLD, WEIGHT_NORMAL, WEIGHT_BOLD };
             static const FontItalic italic[] = { ITALIC_NONE, ITALIC_NONE, ITALIC_NORMAL, ITALIC_NORMAL };
             assert( SAL_N_ELEMENTS( weight ) == SAL_N_ELEMENTS( italic ));
@@ -319,23 +363,33 @@ void XMLFontAutoStylePool::exportXML()
                     else
                         continue; // --> failed to embed
                 }
-                fileUrls.push_back( fileUrl );
+                EmbeddedFontInfo aEmbeddedFont;
+                aEmbeddedFont.aURL = fileUrl;
+                aEmbeddedFont.eWeight = weight[j];
+                aEmbeddedFont.eItalic = italic[j];
+                aEmbeddedFonts.push_back(aEmbeddedFont);
             }
-            if( !fileUrls.empty())
+            if (!aEmbeddedFonts.empty())
             {
                 SvXMLElementExport fontFaceSrc( GetExport(), XML_NAMESPACE_SVG,
                     XML_FONT_FACE_SRC, true, true );
-                for( std::vector< OUString >::const_iterator it = fileUrls.begin();
-                     it != fileUrls.end();
+                for( auto it = aEmbeddedFonts.begin();
+                     it != aEmbeddedFonts.end();
                      ++it )
                 {
-                    if( fontFilesMap.count( *it ))
+                    if (fontFilesMap.count(it->aURL))
                     {
                         if( !bExportFlat )
                         {
-                            GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, fontFilesMap[ *it ] );
+                            GetExport().AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, fontFilesMap[it->aURL]);
                             GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, "simple" );
                         }
+
+                        // Help consumers of our output by telling them which
+                        // font file is which one.
+                        GetExport().AddAttribute( XML_NAMESPACE_LO_EXT, XML_FONT_STYLE, FontItalicToString(it->eItalic) );
+                        GetExport().AddAttribute( XML_NAMESPACE_LO_EXT, XML_FONT_WEIGHT, FontWeightToString(it->eWeight) );
+
                         SvXMLElementExport fontFaceUri( GetExport(), XML_NAMESPACE_SVG,
                             XML_FONT_FACE_URI, true, true );
 
@@ -344,7 +398,7 @@ void XMLFontAutoStylePool::exportXML()
                             const uno::Reference< ucb::XSimpleFileAccess > xFileAccess( ucb::SimpleFileAccess::create( GetExport().getComponentContext() ) );
                             try
                             {
-                                const uno::Reference< io::XInputStream > xInput( xFileAccess->openFileRead( fontFilesMap[ *it ] ) );
+                                const uno::Reference< io::XInputStream > xInput( xFileAccess->openFileRead( fontFilesMap[ it->aURL ] ) );
                                 XMLBase64Export aBase64Exp( GetExport() );
                                 aBase64Exp.exportOfficeBinaryDataElement( xInput );
                             }
commit bb64f2facdb9b5fd5d3e62c6af4023932783de7c
Author: Henry Castro <hcastro at collabora.com>
Date:   Mon Nov 27 16:39:32 2017 -0400

    sc, sd: rework UI Text Language "More" button, tdf#113911
    
    Calc and Impress handle different uno command to set language
    
    Change-Id: Ic0ffef6a8fee5078b29873934001819a384c8f3a
    Reviewed-on: https://gerrit.libreoffice.org/45366
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    (cherry picked from commit 6db709ba79fec6f75dd7385ce57c65a62fc2254e)

diff --git a/framework/inc/helper/mischelper.hxx b/framework/inc/helper/mischelper.hxx
index 47043b5a06bb..bbbc39869ebe 100644
--- a/framework/inc/helper/mischelper.hxx
+++ b/framework/inc/helper/mischelper.hxx
@@ -58,6 +58,9 @@ enum LangMenuIDs
     MID_LANG_SEL_NONE,
     MID_LANG_SEL_RESET,
     MID_LANG_SEL_MORE,
+    MID_LANG_DEF_NONE,
+    MID_LANG_DEF_RESET,
+    MID_LANG_DEF_MORE,
 
     MID_LANG_PARA_SEPARATOR,
     MID_LANG_PARA_STRING,
diff --git a/framework/source/uielement/langselectionstatusbarcontroller.cxx b/framework/source/uielement/langselectionstatusbarcontroller.cxx
index 12321574436b..1cc23a8c1006 100644
--- a/framework/source/uielement/langselectionstatusbarcontroller.cxx
+++ b/framework/source/uielement/langselectionstatusbarcontroller.cxx
@@ -128,6 +128,7 @@ void LangSelectionStatusbarController::LangMenu(
     if (!m_bShowMenu)
         return;
 
+    const Reference<XModuleManager> xModuleManager  = ModuleManager::create( m_xContext );
     //add context menu
     Reference< awt::XPopupMenu > xPopupMenu( awt::PopupMenu::create( m_xContext ) );
     //sub menu that contains all items except the last two items: Separator + Set Language for Paragraph
@@ -164,36 +165,65 @@ void LangSelectionStatusbarController::LangMenu(
         }
     }
 
-    xPopupMenu->insertItem( MID_LANG_SEL_NONE,  FwkResId(STR_LANGSTATUS_NONE), 0, MID_LANG_SEL_NONE );
-    if ( sNone == m_aCurLang )
-        xPopupMenu->checkItem( MID_LANG_SEL_NONE, true );
-    xPopupMenu->insertItem( MID_LANG_SEL_RESET, FwkResId(STR_RESET_TO_DEFAULT_LANGUAGE), 0, MID_LANG_SEL_RESET );
-    xPopupMenu->insertItem( MID_LANG_SEL_MORE,  FwkResId(STR_LANGSTATUS_MORE), 0, MID_LANG_SEL_MORE );
 
-    // add entries to submenu ('set language for paragraph')
-    nItemId = static_cast< sal_Int16 >(MID_LANG_PARA_1);
-    for (it = aLangItems.begin(); it != aLangItems.end(); ++it)
+    if (xModuleManager->identify(m_xFrame) == "com.sun.star.text.TextDocument")
     {
-        const OUString & rStr( *it );
-        if( rStr != sNone &&
-            rStr != sAsterisk &&
-            !rStr.isEmpty()) // 'no language found' from language guessing
+        xPopupMenu->insertItem( MID_LANG_SEL_NONE,  FwkResId(STR_LANGSTATUS_NONE), 0, MID_LANG_SEL_NONE );
+        if ( sNone == m_aCurLang )
+            xPopupMenu->checkItem( MID_LANG_SEL_NONE, true );
+        xPopupMenu->insertItem( MID_LANG_SEL_RESET, FwkResId(STR_RESET_TO_DEFAULT_LANGUAGE), 0, MID_LANG_SEL_RESET );
+        xPopupMenu->insertItem( MID_LANG_SEL_MORE,  FwkResId(STR_LANGSTATUS_MORE), 0, MID_LANG_SEL_MORE );
+
+        // add entries to submenu ('set language for paragraph')
+        nItemId = static_cast< sal_Int16 >(MID_LANG_PARA_1);
+        for (it = aLangItems.begin(); it != aLangItems.end(); ++it)
         {
-            SAL_WARN_IF( MID_LANG_PARA_1 > nItemId || nItemId > MID_LANG_PARA_9,
-                    "fwk.uielement", "nItemId outside of expected range!" );
-            subPopupMenu->insertItem( nItemId, rStr, 0, nItemId );
-            aLangMap[nItemId] = rStr;
-            ++nItemId;
+            const OUString & rStr( *it );
+            if( rStr != sNone &&
+                rStr != sAsterisk &&
+                !rStr.isEmpty()) // 'no language found' from language guessing
+            {
+                SAL_WARN_IF( MID_LANG_PARA_1 > nItemId || nItemId > MID_LANG_PARA_9,
+                "fwk.uielement", "nItemId outside of expected range!" );
+                subPopupMenu->insertItem( nItemId, rStr, 0, nItemId );
+                aLangMap[nItemId] = rStr;
+                ++nItemId;
+            }
         }
-    }
-    subPopupMenu->insertItem( MID_LANG_PARA_NONE,  FwkResId(STR_LANGSTATUS_NONE), 0, MID_LANG_PARA_NONE );
-    subPopupMenu->insertItem( MID_LANG_PARA_RESET, FwkResId(STR_RESET_TO_DEFAULT_LANGUAGE), 0, MID_LANG_PARA_RESET );
-    subPopupMenu->insertItem( MID_LANG_PARA_MORE,  FwkResId(STR_LANGSTATUS_MORE), 0, MID_LANG_PARA_MORE );
 
-    // add last two entries to main menu
-    xPopupMenu->insertSeparator( MID_LANG_PARA_SEPARATOR );
-    xPopupMenu->insertItem( MID_LANG_PARA_STRING, FwkResId(STR_SET_LANGUAGE_FOR_PARAGRAPH), 0, MID_LANG_PARA_STRING );
-    xPopupMenu->setPopupMenu( MID_LANG_PARA_STRING, subPopupMenu );
+        // add entries to submenu ('set language for paragraph')
+        nItemId = static_cast< sal_Int16 >(MID_LANG_PARA_1);
+        for (it = aLangItems.begin(); it != aLangItems.end(); ++it)
+        {
+            const OUString & rStr( *it );
+            if( rStr != sNone &&
+                rStr != sAsterisk &&
+                !rStr.isEmpty()) // 'no language found' from language guessing
+            {
+                SAL_WARN_IF( MID_LANG_PARA_1 > nItemId || nItemId > MID_LANG_PARA_9,
+                        "fwk.uielement", "nItemId outside of expected range!" );
+                subPopupMenu->insertItem( nItemId, rStr, 0, nItemId );
+                aLangMap[nItemId] = rStr;
+                ++nItemId;
+            }
+        }
+        subPopupMenu->insertItem( MID_LANG_PARA_NONE,  FwkResId(STR_LANGSTATUS_NONE), 0, MID_LANG_PARA_NONE );
+        subPopupMenu->insertItem( MID_LANG_PARA_RESET, FwkResId(STR_RESET_TO_DEFAULT_LANGUAGE), 0, MID_LANG_PARA_RESET );
+        subPopupMenu->insertItem( MID_LANG_PARA_MORE,  FwkResId(STR_LANGSTATUS_MORE), 0, MID_LANG_PARA_MORE );
+
+        // add last two entries to main menu
+        xPopupMenu->insertSeparator( MID_LANG_PARA_SEPARATOR );
+        xPopupMenu->insertItem( MID_LANG_PARA_STRING, FwkResId(STR_SET_LANGUAGE_FOR_PARAGRAPH), 0, MID_LANG_PARA_STRING );
+        xPopupMenu->setPopupMenu( MID_LANG_PARA_STRING, subPopupMenu );
+    }
+    else
+    {
+        xPopupMenu->insertItem( MID_LANG_DEF_NONE,  FwkResId(STR_LANGSTATUS_NONE), 0, MID_LANG_DEF_NONE );
+        if ( sNone == m_aCurLang )
+            xPopupMenu->checkItem( MID_LANG_DEF_NONE, true );
+        xPopupMenu->insertItem( MID_LANG_DEF_RESET, FwkResId(STR_RESET_TO_DEFAULT_LANGUAGE), 0, MID_LANG_DEF_RESET );
+        xPopupMenu->insertItem( MID_LANG_DEF_MORE,  FwkResId(STR_LANGSTATUS_MORE), 0, MID_LANG_DEF_MORE );
+    }
 
     // now display the popup menu and execute every command ...
 
@@ -209,7 +239,10 @@ void LangSelectionStatusbarController::LangMenu(
 
         if (MID_LANG_SEL_1 <= nId && nId <= MID_LANG_SEL_9)
         {
-            aBuff.append( ".uno:LanguageStatus?Language:string=Current_" );
+            if ( xModuleManager->identify(m_xFrame) == "com.sun.star.text.TextDocument" )
+                aBuff.append( ".uno:LanguageStatus?Language:string=Current_" );
+            else
+                aBuff.append( ".uno:LanguageStatus?Language:string=Default_" );
             aBuff.append( aSelectedLang );
         }
         else if (nId == MID_LANG_SEL_NONE)
@@ -227,6 +260,18 @@ void LangSelectionStatusbarController::LangMenu(
             //open the dialog "format/character" for current selection
             aBuff.append( ".uno:FontDialog?Page:string=font" );
         }
+        else if (nId == MID_LANG_DEF_NONE)
+        {
+             aBuff.append( ".uno:LanguageStatus?Language:string=Default_LANGUAGE_NONE" );
+        }
+        else if (nId == MID_LANG_DEF_RESET)
+        {
+             aBuff.append( ".uno:LanguageStatus?Language:string=Default_RESET_LANGUAGES" );
+        }
+        else if (nId == MID_LANG_DEF_MORE)
+        {
+            aBuff.append( ".uno:LanguageStatus?Language:string=*" );
+        }
         else if (MID_LANG_PARA_1 <= nId && nId <= MID_LANG_PARA_9)
         {
             aBuff.append( ".uno:LanguageStatus?Language:string=Paragraph_" );
@@ -286,8 +331,7 @@ void SAL_CALL LangSelectionStatusbarController::statusChanged( const FeatureStat
     if ( m_bDisposed )
         return;
 
-    const Reference<XModuleManager> xModuleManager  = ModuleManager::create( m_xContext );
-    m_bShowMenu = xModuleManager->identify(m_xFrame) == "com.sun.star.text.TextDocument";
+    m_bShowMenu = true;
     m_nScriptType = SvtScriptType::LATIN | SvtScriptType::ASIAN | SvtScriptType::COMPLEX;  //set the default value
 
     if ( m_xStatusbarItem.is() )
@@ -296,7 +340,10 @@ void SAL_CALL LangSelectionStatusbarController::statusChanged( const FeatureStat
         Sequence< OUString > aSeq;
 
         if ( Event.State >>= aStrValue )
+        {
             m_xStatusbarItem->setText( aStrValue );
+            m_aCurLang = aStrValue;
+        }
         else if ( Event.State >>= aSeq )
         {
             if ( aSeq.getLength() == 4 )
commit 1bb211d5e759e31fad5263cd42455eeae9aa5837
Author: Mike Kaganski <mike.kaganski at collabora.com>
Date:   Tue Nov 28 10:48:08 2017 +0300

    tdf#113455 follow-up: clear spin buttons when disabled in Reset
    
    otherwise they show "1" in disabled state, unlike after being enabled
    and then disabled again manually (see ToggleHdl)
    
    Change-Id: I4ff4d0ef006b7530bb20d9b830dc5e2f5732530d
    Reviewed-on: https://gerrit.libreoffice.org/45383
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    (cherry picked from commit 22e747284c92b69175d3add4d1033a0e7aaacc5e)

diff --git a/sc/source/ui/pagedlg/tptable.cxx b/sc/source/ui/pagedlg/tptable.cxx
index a6c1954aaabe..0c9c80f8d141 100644
--- a/sc/source/ui/pagedlg/tptable.cxx
+++ b/sc/source/ui/pagedlg/tptable.cxx
@@ -221,11 +221,20 @@ void ScTablePage::Reset( const SfxItemSet* rCoreSet )
         else
             nWidth = nHeight = 1;
 
-        m_pEdScalePageWidth->SetValue(nWidth);
+        if (nWidth)
+            m_pEdScalePageWidth->SetValue(nWidth);
+        else
+            m_pEdScalePageWidth->SetText(OUString());
+
         m_pEdScalePageWidth->Enable(nWidth);
-        m_pEdScalePageHeight->SetValue(nHeight);
-        m_pEdScalePageHeight->Enable(nHeight);
         m_pCbScalePageWidth->Check(nWidth);
+
+        if(nHeight)
+            m_pEdScalePageHeight->SetValue(nHeight);
+        else
+            m_pEdScalePageHeight->SetText(OUString());
+
+        m_pEdScalePageHeight->Enable(nHeight);
         m_pCbScalePageHeight->Check(nHeight);
     }
 
commit a00bcc58e989a0403ccd9534eab22bc4c5027d75
Author: Tamas Bunth <tamas.bunth at collabora.co.uk>
Date:   Thu Nov 16 15:43:36 2017 +0100

    tdf#41650 DOCX export: insert empty header/footer
    
    Insert an empty header (or footer) to section which follows a section
    with a header in it.
    
    It is needed, because in case a section does not contain a header
    definition, Word will use the preceding section's rule.
    
    It causes problem if a document contains two page styles: one has
    header (or footer), the other does not. In that case after saving to
    docx it will end up in two sections. (only if it's not a plausable title
    page)
    
    Reviewed-on: https://gerrit.libreoffice.org/44832
    Reviewed-by: Tamás Bunth <btomi96 at gmail.com>
    Tested-by: Tamás Bunth <btomi96 at gmail.com>
    (cherry picked from commit 6aa1df5a627697e6adaee70adcef2c5b50cfcbf7)
    
    Change-Id: I5add284d0cf1544923885e7205d9a2ac4e3cc9af

diff --git a/sw/qa/extras/ooxmlexport/data/tdf44832_section_new_header.odt b/sw/qa/extras/ooxmlexport/data/tdf44832_section_new_header.odt
new file mode 100644
index 000000000000..9db311db1f2a
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf44832_section_new_header.odt differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index 0fd64733e700..86fd39ab3bf7 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -178,6 +178,16 @@ DECLARE_OOXMLEXPORT_TEST(testTdf113258, "tdf113258.docx")
                          getProperty<sal_Int32>(xShape->getStart(), "ParaTopMargin"));
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf44832_testSectionWithDifferentHeader, "tdf44832_section_new_header.odt")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+
+    if(!pXmlDoc)
+        return;
+
+    assertXPath(pXmlDoc, "/w:document/w:body/w:sectPr/w:headerReference", 1);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index 477422bee989..2a76ae0cfc40 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -253,7 +253,7 @@ bool DocxExport::DisallowInheritingOutlineNumbering( const SwFormat& rFormat )
 }
 
 void DocxExport::WriteHeadersFooters( sal_uInt8 nHeadFootFlags,
-        const SwFrameFormat& rFormat, const SwFrameFormat& rLeftFormat, const SwFrameFormat& rFirstPageFormat, sal_uInt8 /*nBreakCode*/ )
+        const SwFrameFormat& rFormat, const SwFrameFormat& rLeftFormat, const SwFrameFormat& rFirstPageFormat, sal_uInt8 nBreakCode )
 {
     m_nHeadersFootersInSection = 1;
     // Turn ON flag for 'Writing Headers \ Footers'
@@ -261,23 +261,36 @@ void DocxExport::WriteHeadersFooters( sal_uInt8 nHeadFootFlags,
 
     // headers
     if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_EVEN )
-        WriteHeaderFooter( rLeftFormat, true, "even" );
+        WriteHeaderFooter( &rLeftFormat, true, "even" );
 
     if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_ODD )
-        WriteHeaderFooter( rFormat, true, "default" );
+        WriteHeaderFooter( &rFormat, true, "default" );
 
     if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_FIRST )
-        WriteHeaderFooter( rFirstPageFormat, true, "first" );
+        WriteHeaderFooter( &rFirstPageFormat, true, "first" );
+
+    if( (nHeadFootFlags & (nsHdFtFlags::WW8_HEADER_EVEN
+                         | nsHdFtFlags::WW8_HEADER_ODD
+                         | nsHdFtFlags::WW8_HEADER_FIRST)) == 0
+            && m_bHasHdr && nBreakCode == 2 ) // 2: nexPage
+        WriteHeaderFooter( nullptr, true, "default" );
+
 
     // footers
     if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_EVEN )
-        WriteHeaderFooter( rLeftFormat, false, "even" );
+        WriteHeaderFooter( &rLeftFormat, false, "even" );
 
     if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_ODD )
-        WriteHeaderFooter( rFormat, false, "default" );
+        WriteHeaderFooter( &rFormat, false, "default" );
 
     if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_FIRST )
-        WriteHeaderFooter( rFirstPageFormat, false, "first" );
+        WriteHeaderFooter( &rFirstPageFormat, false, "first" );
+
+    if( (nHeadFootFlags & (nsHdFtFlags::WW8_FOOTER_EVEN
+                         | nsHdFtFlags::WW8_FOOTER_ODD
+                         | nsHdFtFlags::WW8_FOOTER_FIRST)) == 0
+            && m_bHasFtr && nBreakCode == 2 ) // 2: nexPage
+        WriteHeaderFooter( nullptr, false, "default");
 
     if ( nHeadFootFlags & ( nsHdFtFlags::WW8_FOOTER_EVEN | nsHdFtFlags::WW8_HEADER_EVEN ))
         m_aSettings.evenAndOddHeaders = true;
@@ -758,7 +771,7 @@ void DocxExport::WriteNumbering()
     m_pAttrOutput->SetSerializer( m_pDocumentFS );
 }
 
-void DocxExport::WriteHeaderFooter( const SwFormat& rFormat, bool bHeader, const char* pType )
+void DocxExport::WriteHeaderFooter( const SwFormat* pFormat, bool bHeader, const char* pType )
 {
     // setup the xml stream
     OUString aRelId;
@@ -804,7 +817,10 @@ void DocxExport::WriteHeaderFooter( const SwFormat& rFormat, bool bHeader, const
     //So clearing the alternate content graphic cache.
     m_pAttrOutput->PushRelIdCache();
     // do the work
-    WriteHeaderFooterText( rFormat, bHeader );
+    if( pFormat == nullptr )
+        AttrOutput().EmptyParagraph();
+    else
+        WriteHeaderFooterText( *pFormat, bHeader );
     m_pAttrOutput->PopRelIdCache();
     m_pAttrOutput->popFromTableExportContext(aTableExportContext);
     m_pAttrOutput->EndParaSdtBlock();
diff --git a/sw/source/filter/ww8/docxexport.hxx b/sw/source/filter/ww8/docxexport.hxx
index b553ba3f2601..65cf02fe2a1d 100644
--- a/sw/source/filter/ww8/docxexport.hxx
+++ b/sw/source/filter/ww8/docxexport.hxx
@@ -228,7 +228,7 @@ private:
     virtual void WriteNumbering() override;
 
     /// Write reference to a header/footer + the actual xml containing the text.
-    void WriteHeaderFooter( const SwFormat& rFormat, bool bHeader, const char* pType );
+    void WriteHeaderFooter( const SwFormat* pFormat, bool bHeader, const char* pType );
 
     /// Write word/fontTable.xml.
     void WriteFonts();
commit b2a736de005082296ae2abda5400323062103ebb
Author: Mike Kaganski <mike.kaganski at collabora.com>
Date:   Mon Nov 27 13:26:48 2017 +0200

    Don't copy the string
    
    Change-Id: If50d952acfea0be86d36bc5b23a0f087eff520c8
    Reviewed-on: https://gerrit.libreoffice.org/45325
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    (cherry picked from commit cf2c667fbb41bf7d9e172d940c25abb78155efe2)

diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index ca9ca3a13794..a5bc1ea0b959 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -208,8 +208,8 @@ void TransformParameters( sal_uInt16 nSlotId, const uno::Sequence<beans::Propert
         sal_uInt16 nSubCount = pType->nAttribs;
 
         const beans::PropertyValue& rProp = pPropsVal[0];
-        OUString aName = rProp.Name;
-        if ( nCount == 1 && aName == OUString( pSlot->pUnoName, strlen( pSlot->pUnoName ), RTL_TEXTENCODING_UTF8 ) )
+        const OUString& rName = rProp.Name;
+        if ( nCount == 1 && rName == OUString( pSlot->pUnoName, strlen( pSlot->pUnoName ), RTL_TEXTENCODING_UTF8 ) )
         {
             // there is only one parameter and its name matches the name of the property,
             // so it's either a simple property or a complex property in one single UNO struct
@@ -225,7 +225,7 @@ void TransformParameters( sal_uInt16 nSlotId, const uno::Sequence<beans::Propert
         else if ( nSubCount == 0 )
         {
             // for a simple property there can be only one parameter and its name *must* match
-            SAL_WARN("sfx.appl", "Property name does not match: " << aName);
+            SAL_WARN("sfx.appl", "Property name does not match: " << rName);
         }
 #endif
         else
@@ -309,8 +309,8 @@ void TransformParameters( sal_uInt16 nSlotId, const uno::Sequence<beans::Propert
             for ( sal_Int32 n=0; n<nCount; n++ )
             {
                 const beans::PropertyValue& rProp = pPropsVal[n];
-                OUString aName = rProp.Name;
-                if ( aName == OUString( rArg.pName, strlen(rArg.pName), RTL_TEXTENCODING_UTF8 )  )
+                const OUString& rName = rProp.Name;
+                if ( rName == OUString( rArg.pName, strlen(rArg.pName), RTL_TEXTENCODING_UTF8 )  )
                 {
 #ifdef DBG_UTIL
                     ++nFoundArgs;
@@ -333,8 +333,8 @@ void TransformParameters( sal_uInt16 nSlotId, const uno::Sequence<beans::Propert
             for ( sal_Int32 n=0; n<nCount; n++ )
             {
                 const beans::PropertyValue& rProp = pPropsVal[n];
-                OUString aName = rProp.Name;
-                if ( aName == OUString(rArg.pName, strlen(rArg.pName), RTL_TEXTENCODING_UTF8) )
+                const OUString& rName = rProp.Name;
+                if ( rName == OUString(rArg.pName, strlen(rArg.pName), RTL_TEXTENCODING_UTF8) )
                 {
                     bAsWholeItem = true;
 #ifdef DBG_UTIL
@@ -404,15 +404,15 @@ void TransformParameters( sal_uInt16 nSlotId, const uno::Sequence<beans::Propert
         for ( sal_Int32 n=0; n<nCount; n++ )
         {
             const beans::PropertyValue& rProp = pPropsVal[n];
-            OUString aName = rProp.Name;
-            if ( aName == sFrame )
+            const OUString& rName = rProp.Name;
+            if ( rName == sFrame )
             {
                 Reference< XFrame > xFrame;
                 OSL_VERIFY( rProp.Value >>= xFrame );
                 rSet.Put( SfxUnoFrameItem( SID_FILLFRAME, xFrame ) );
             }
             else
-            if ( aName == sHidden )
+            if ( rName == sHidden )
             {
                 bool bVal = false;
                 if (rProp.Value >>= bVal)
commit 754411a0ec411690ac0a87b1b0f9d51c1057786c
Author: Mike Kaganski <mike.kaganski at collabora.com>
Date:   Mon Nov 27 16:24:40 2017 +0300

    tdf#113455 follow-up: use spin button labels as checkboxes
    
    This streamlines the UI (avoids extra controls on page).
    Labels' ids kept intact to preserve localization context.
    
    Change-Id: Idbeb47d7f4e783107d49cb045125434291331140
    Reviewed-on: https://gerrit.libreoffice.org/45333
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 5d74305ab4c6b755232afcdc41ecd9fde431152d)

diff --git a/sc/source/ui/pagedlg/tptable.cxx b/sc/source/ui/pagedlg/tptable.cxx
index 6b9585d79c3f..a6c1954aaabe 100644
--- a/sc/source/ui/pagedlg/tptable.cxx
+++ b/sc/source/ui/pagedlg/tptable.cxx
@@ -111,9 +111,9 @@ ScTablePage::ScTablePage(vcl::Window* pParent, const SfxItemSet& rCoreAttrs)
     get(m_pEdScaleAll,"spinED_SCALEALL");
     get(m_pGrHeightWidth,"gridWH");
     get(m_pEdScalePageWidth,"spinED_SCALEPAGEWIDTH");
-    get(m_pCbScalePageWidth,"unsetwidth");
+    get(m_pCbScalePageWidth,"labelWP");
     get(m_pEdScalePageHeight,"spinED_SCALEPAGEHEIGHT");
-    get(m_pCbScalePageHeight,"unsetheight");
+    get(m_pCbScalePageHeight,"labelHP");
     get(m_pBxScalePageNum,"boxNP");
     get(m_pEdScalePageNum,"spinED_SCALEPAGENUM");
 
@@ -216,13 +216,17 @@ void ScTablePage::Reset( const SfxItemSet* rCoreSet )
 
         /*  width==0 and height==0 is invalid state, used as "not selected".
             Dialog shows width=height=1 then. */
-        bool bValid = nWidth || nHeight;
-        if (bValid)
+        if (nWidth || nHeight)
             m_pLbScaleMode->SelectEntryPos( SC_TPTABLE_SCALE_TO );
-        m_pEdScalePageWidth->SetValue( bValid ? nWidth : 1 );
-        m_pEdScalePageHeight->SetValue( bValid ? nHeight : 1 );
-        m_pCbScalePageWidth->Check(bValid && !nWidth);
-        m_pCbScalePageHeight->Check(bValid && !nHeight);
+        else
+            nWidth = nHeight = 1;
+
+        m_pEdScalePageWidth->SetValue(nWidth);
+        m_pEdScalePageWidth->Enable(nWidth);
+        m_pEdScalePageHeight->SetValue(nHeight);
+        m_pEdScalePageHeight->Enable(nHeight);
+        m_pCbScalePageWidth->Check(nWidth);
+        m_pCbScalePageHeight->Check(nHeight);
     }
 
     nWhich = GetWhich(SID_SCATTR_PAGE_SCALETOPAGES);
@@ -408,7 +412,7 @@ IMPL_LINK(ScTablePage, ToggleHdl, CheckBox&, rBox, void)
 {
     if (&rBox == m_pCbScalePageWidth)
     {
-        if (rBox.IsChecked())
+        if (!rBox.IsChecked())
         {
             m_pEdScalePageWidth->SetText(OUString());
             m_pEdScalePageWidth->Disable();
@@ -421,7 +425,7 @@ IMPL_LINK(ScTablePage, ToggleHdl, CheckBox&, rBox, void)
     }
     else
     {
-        if (rBox.IsChecked())
+        if (!rBox.IsChecked())
         {
             m_pEdScalePageHeight->SetText(OUString());
             m_pEdScalePageHeight->Disable();
diff --git a/sc/uiconfig/scalc/ui/sheetprintpage.ui b/sc/uiconfig/scalc/ui/sheetprintpage.ui
index 4daeadf15309..adaf37bb818a 100644
--- a/sc/uiconfig/scalc/ui/sheetprintpage.ui
+++ b/sc/uiconfig/scalc/ui/sheetprintpage.ui
@@ -429,13 +429,17 @@
                         <property name="column_spacing">12</property>
                         <property name="row_homogeneous">True</property>
                         <child>
-                          <object class="GtkLabel" id="labelWP">
+                          <object class="GtkCheckButton" id="labelWP">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
+                            <property name="can_focus">True</property>
                             <property name="label" translatable="yes" context="sheetprintpage|labelWP">_Width in pages:</property>
                             <property name="use_underline">True</property>
-                            <property name="mnemonic_widget">spinED_SCALEPAGEWIDTH</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
                             <property name="xalign">0</property>
+                            <accessibility>
+                              <relation type="label-for" target="spinED_SCALEPAGEWIDTH"/>
+                            </accessibility>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
@@ -443,13 +447,17 @@
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkLabel" id="labelHP">
+                          <object class="GtkCheckButton" id="labelHP">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
+                            <property name="can_focus">True</property>
                             <property name="label" translatable="yes" context="sheetprintpage|labelHP">_Height in pages:</property>
                             <property name="use_underline">True</property>
-                            <property name="mnemonic_widget">spinED_SCALEPAGEHEIGHT</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
                             <property name="xalign">0</property>
+                            <accessibility>
+                              <relation type="label-for" target="spinED_SCALEPAGEHEIGHT"/>
+                            </accessibility>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
@@ -463,6 +471,9 @@
                             <property name="invisible_char">•</property>
                             <property name="shadow_type">none</property>
                             <property name="adjustment">adjustmentPage</property>
+                            <accessibility>
+                              <relation type="labelled-by" target="labelWP"/>
+                            </accessibility>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
@@ -474,39 +485,17 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="invisible_char">•</property>
+                            <property name="shadow_type">none</property>
                             <property name="adjustment">adjustmentPage</property>
+                            <accessibility>
+                              <relation type="labelled-by" target="labelHP"/>
+                            </accessibility>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">1</property>
                           </packing>
                         </child>
-                        <child>
-                          <object class="GtkCheckButton" id="unsetwidth">
-                            <property name="label" translatable="yes" context="sheetprintpage|unsetwidth">Unspecified</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">2</property>
-                            <property name="top_attach">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkCheckButton" id="unsetheight">
-                            <property name="label" translatable="yes" context="sheetprintpage|unsetheight">Unspecified</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">2</property>
-                            <property name="top_attach">1</property>
-                          </packing>
-                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
commit 0248bcf43e19fafa556b468bba70e773c96f25bd
Author: Mike Kaganski <mike.kaganski at collabora.com>
Date:   Mon Nov 27 12:28:50 2017 +0300

    tdf#108048: update InsertBreak slot to use PageNumberFilled param
    
    Since commit c2ccd20c0fd92bddfff76447754541705e3eb8f3 (tdf#44689),
    SwWrtShell::InsertPageBreak takes page number as optional argument.
    The FN_INSERT_BREAK_DLG case in SwTextShell::Execute expects third
    parameter (FN_PARAM_3) to be boolean flag indicating if page number
    is filled. But corresponding sw slot was not updated to that fact.
    This prevented macros inserting page breaks with page numbers to be
    properly recorded, and one couldn't fix that manually, too, because
    the slot didn't expect that extra param (which would be dropped in
    TransformParameters).
    
    This adds the boolean parameter named PageNumberFilled to the list
    of InsertBreak slot.
    
    Unit test included.
    
    Reviewed-on: https://gerrit.libreoffice.org/45319
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 9c6b114950b36811e5cf2cb5a6a00f5c05053872)
    
    Change-Id: Ibccaece59b0e9848c0b754aa91b6700054b7fe97

diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index a1380685553d..81214c0f8d02 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -294,6 +294,7 @@ public:
     void testTdf114536();
     void testTdf115065();
     void testTdf115013();
+    void testTdf108048();
 
     CPPUNIT_TEST_SUITE(SwUiWriterTest);
     CPPUNIT_TEST(testReplaceForward);
@@ -468,6 +469,7 @@ public:
     CPPUNIT_TEST(testTdf114536);
     CPPUNIT_TEST(testTdf115065);
     CPPUNIT_TEST(testTdf115013);
+    CPPUNIT_TEST(testTdf108048);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -5735,6 +5737,26 @@ void SwUiWriterTest::testTdf115013()
     utl::removeTree(aWorkDir);
 }
 
+void SwUiWriterTest::testTdf108048()
+{
+    createDoc();
+
+    uno::Sequence<beans::PropertyValue> aPropertyValues = comphelper::InitPropertySequence({
+        { "Kind", uno::makeAny(sal_Int16(3)) },
+        { "TemplateName", uno::makeAny(OUString("Default Style")) },
+        { "PageNumber", uno::makeAny(sal_uInt16(6)) }, // Even number to avoid auto-inserted blank page
+        { "PageNumberFilled", uno::makeAny(true) },
+    });
+    lcl_dispatchCommand(mxComponent, ".uno:InsertBreak", aPropertyValues);
+    CPPUNIT_ASSERT_EQUAL(2, getParagraphs());
+    CPPUNIT_ASSERT_EQUAL(2, getPages());
+
+    // The inserted page must have page number set to 6
+    uno::Reference<text::XTextRange> xPara = getParagraph(2);
+    sal_uInt16 nPageNumber = getProperty< sal_uInt16 >(xPara, "PageNumberOffset");
+    CPPUNIT_ASSERT_EQUAL(sal_uInt16(6), nPageNumber);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest);
 CPPUNIT_PLUGIN_IMPLEMENT();
 
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 90aa48538dc7..2f0d5d9ec45a 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -2538,7 +2538,7 @@ SfxVoidItem InsertBookmark FN_INSERT_BOOKMARK
 ]
 
 SfxVoidItem InsertBreak FN_INSERT_BREAK_DLG
-(SfxInt16Item Kind FN_INSERT_BREAK_DLG,SfxStringItem TemplateName FN_PARAM_1,SfxUInt16Item PageNumber FN_PARAM_2)
+(SfxInt16Item Kind FN_INSERT_BREAK_DLG,SfxStringItem TemplateName FN_PARAM_1,SfxUInt16Item PageNumber FN_PARAM_2,SfxBoolItem PageNumberFilled FN_PARAM_3)
 [
     AutoUpdate = FALSE,
     FastCall = FALSE,
commit cb8633eed7569cd8d137649758d1ede204f249e1
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Sun Jan 14 00:16:26 2018 +0100

    lok: Tile not invalidated with certain changes
    
    Calling FillRects caused this issue, which updates text area, so
    the invalidation, runing after that call, won't now where was the old text.
    We call invalidation here on the whole frame not only on the rects where
    the actual text is.
    
    Change-Id: I23db4b9579aa5710540b5d241506726630219b02
    Reviewed-on: https://gerrit.libreoffice.org/47848
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 39dd42b5aa34d0960cdab0c9fd967d4ae5cc6801)

diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index 7644a107200e..d02b1c3a7057 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -393,6 +393,20 @@ void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRe
         aRedline.put("textRange", sRects.getStr());
 
         lcl_LOKInvalidateStartEndFrames(aCursor);
+
+        // When this notify method is called text invalidation is not done yet
+        // Calling FillRects updates the text area so invalidation will not run on the correct rects
+        // So we need to do an own invalidation here. It invalidates text frames continging the redlining
+        SwDoc* pDoc = pRedline->GetDoc();
+        SwViewShell* pSh;
+        if( pDoc && !pDoc->IsInDtor() &&
+            nullptr != ( pSh = pDoc->getIDocumentLayoutAccess().GetCurrentViewShell()) )
+        {
+            for(SwNodeIndex nIdx = pStartPos->nNode; nIdx <= pEndPos->nNode; ++nIdx)
+            {
+                pSh->InvalidateWindows( nIdx.GetNode().GetContentNode()->FindLayoutRect() );
+            }
+        }
     }
 
     boost::property_tree::ptree aTree;
commit 70df28bca289cd3716b00638a03d4d860c3514ad
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Tue Jan 9 21:36:45 2018 +0100

    tdf#106991: Highlighting remains after select no fill
    
    Change-Id: I911970539b96bc0d1c6427829fcae869142c9010
    Reviewed-on: https://gerrit.libreoffice.org/47679
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit aa02ed306f7c633bbffede16e44e8e736977ace4)

diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx
index 6b2b9388644d..da9aadf13d03 100644
--- a/sw/source/core/text/txtfld.cxx
+++ b/sw/source/core/text/txtfld.cxx
@@ -440,7 +440,12 @@ static void checkApplyParagraphMarkFormatToNumbering( SwFont* pNumFnt, SwTextFor
                         pItem = aIter.NextItem();
                     }
                 }
+
+                // Highlightcolor also needed to be untoched, but we can't have that just by clearing the item
+                Color nSaveHighlight = pNumFnt->GetHighlightColor();
+
                 pNumFnt->SetDiffFnt(pCleanedSet.get(), pIDSA);
+                pNumFnt->SetHighlightColor(nSaveHighlight);
             }
         }
     }
commit 983d8452423033a2220aca6bfab2fd7ab71500ba
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Sat Jan 6 20:56:04 2018 +0100

    tdf#114872: Broken selection from other user
    
    For desktop LO cursor update is restricted to the active
    view, but for LO online the users's selection is shown also
    from other views.
    
    Change-Id: Ia9bc8854ee570a9a22c183bf27f941ecf0b8e4d9
    Reviewed-on: https://gerrit.libreoffice.org/47520
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 0b8713ea0c0290ed2a4d711f44bf9a19b214bb62)

diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 48d2aabaa3ed..bffde7e0a90e 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -1829,7 +1829,10 @@ void SwCursorShell::UpdateCursor( sal_uInt16 eFlags, bool bIdleEnd )
     if( m_pBlockCursor )
         RefreshBlockCursor();
 
-    if( !bIdleEnd && m_bHasFocus && !m_bBasicHideCursor )
+    // We should not restrict cursor update to the active view when using LOK
+    bool bCheckFocus = m_bHasFocus || comphelper::LibreOfficeKit::isActive();
+
+    if( !bIdleEnd && bCheckFocus && !m_bBasicHideCursor )
     {
         if( m_pTableCursor )
             m_pTableCursor->SwSelPaintRects::Show();
commit 726c07a03c8d2374bba7edffce2ac2a1a2a88c3c
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Wed Dec 27 11:10:26 2017 +0100

    Calling ActivatePage directly is unnecessary
    
    After this commit:
    b426b026b79a342c41f6f148bf17d5df66b22927
    
    Change-Id: I15d491d4cf63db4436ad8d3db0320cd2e26bb3ea
    Reviewed-on: https://gerrit.libreoffice.org/47078
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 2b5589f4ee47ccadc625877bc970010c2abd36a9)

diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 37dcc7ac2afb..f180f133d6b3 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -113,8 +113,6 @@ class SvxAreaTabDialog final : public SfxTabDialog
     XPatternListRef       mpPatternList;
     XPatternListRef       mpNewPatternList;
 
-    const SfxItemSet&   mrOutAttrs;
-
     ChangeType          mnColorListState;
     ChangeType          mnBitmapListState;
     ChangeType          mnPatternListState;
diff --git a/cui/source/inc/cuitabline.hxx b/cui/source/inc/cuitabline.hxx
index 5fabc21eada0..e80a9d30b226 100644
--- a/cui/source/inc/cuitabline.hxx
+++ b/cui/source/inc/cuitabline.hxx
@@ -37,8 +37,6 @@ class SvxLineTabDialog final : public SfxTabDialog
     SdrModel*           pDrawModel;
     const SdrObject*    pObj;
 
-    const SfxItemSet&   rOutAttrs;
-
     XColorListRef         pColorList;
     XColorListRef         mpNewColorList;
     XDashListRef          pDashList;
diff --git a/cui/source/tabpages/tabarea.cxx b/cui/source/tabpages/tabarea.cxx
index f1dbfc6417bb..52e7d8a9e929 100644
--- a/cui/source/tabpages/tabarea.cxx
+++ b/cui/source/tabpages/tabarea.cxx
@@ -59,7 +59,6 @@ SvxAreaTabDialog::SvxAreaTabDialog
     mpNewBitmapList      ( pModel->GetBitmapList() ),
     mpPatternList        ( pModel->GetPatternList() ),
     mpNewPatternList     ( pModel->GetPatternList() ),
-    mrOutAttrs           ( *pAttr ),
 
     mnColorListState ( ChangeType::NONE ),
     mnBitmapListState ( ChangeType::NONE ),
@@ -250,8 +249,6 @@ void SvxAreaTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
             static_cast<SvxAreaTabPage&>(rPage).SetBmpChgd( &mnBitmapListState );
             static_cast<SvxAreaTabPage&>(rPage).SetPtrnChgd( &mnPatternListState );
             static_cast<SvxAreaTabPage&>(rPage).SetColorChgd( &mnColorListState );
-            // ActivatePge() is not called the first time
-            static_cast<SvxAreaTabPage&>(rPage).ActivatePage( mrOutAttrs );
     }
     else if (nId == m_nShadowTabPage)
     {
diff --git a/cui/source/tabpages/tabline.cxx b/cui/source/tabpages/tabline.cxx
index 21d64d055743..70aea5740e0e 100644
--- a/cui/source/tabpages/tabline.cxx
+++ b/cui/source/tabpages/tabline.cxx
@@ -49,7 +49,6 @@ SvxLineTabDialog::SvxLineTabDialog
     m_nEndTabPage(0),
     pDrawModel      ( pModel ),
     pObj            ( pSdrObj ),
-    rOutAttrs       ( *pAttr ),
     pColorList      ( pModel->GetColorList() ),
     mpNewColorList  ( pModel->GetColorList() ),
     pDashList       ( pModel->GetDashList() ),
@@ -200,8 +199,6 @@ void SvxLineTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
         static_cast<SvxLineTabPage&>(rPage).SetObjSelected( bObjSelected );
         static_cast<SvxLineTabPage&>(rPage).Construct();
         static_cast<SvxLineTabPage&>(rPage).SetColorChgd( &mnColorListState );
-        // ActivatePage() is not called the first time
-        static_cast<SvxLineTabPage&>(rPage).ActivatePage( rOutAttrs );
     }
     else if(nId == m_nStyleTabPage)
     {
commit 04bd17ee7790e8a4af13cd3e8fb7473af332ecf2
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Thu Dec 21 05:44:04 2017 +0100

    tdf#114613: Repair function does not work after opening PPTX file
    
    We need to disable undo handling during file import.
    Same is done for other file formats (e.g. PPT, XLSX).
    
    Change-Id: I1969c17b4a25b59b0d216ee847b3664e9c2207ca
    Reviewed-on: https://gerrit.libreoffice.org/46882
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 02ea9bc36ab47d68940da55f5012677dfaf0a8b8)

diff --git a/oox/source/ppt/pptimport.cxx b/oox/source/ppt/pptimport.cxx
index cd7e37fbf1d4..44da6e86d665 100644
--- a/oox/source/ppt/pptimport.cxx
+++ b/oox/source/ppt/pptimport.cxx
@@ -21,6 +21,8 @@
 
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/document/XUndoManager.hpp>
+#include <com/sun/star/document/XUndoManagerSupplier.hpp>
 #include <comphelper/propertysequence.hxx>
 #include <osl/diagnose.h>
 #include <vcl/msgbox.hxx>
@@ -125,6 +127,19 @@ bool PowerPointImport::importDocument()
         file:///<path-to-oox-module>/source/dump/pptxdumper.ini. */
     OOX_DUMP_FILE( ::oox::dump::pptx::Dumper );
 
+    uno::Reference< document::XUndoManagerSupplier > xUndoManagerSupplier (getModel(), UNO_QUERY );
+    uno::Reference< util::XLockable > xUndoManager;
+    bool bWasUnLocked = true;
+    if(xUndoManagerSupplier.is())
+    {
+        xUndoManager = xUndoManagerSupplier->getUndoManager();
+        if(xUndoManager.is())
+        {
+            bWasUnLocked = !xUndoManager->isLocked();
+            xUndoManager->lock();
+        }
+    }
+
     importDocumentProperties();
 
     OUString aFragmentPath = getFragmentPathFromFirstTypeFromOfficeDoc( "officeDocument" );
@@ -158,6 +173,9 @@ bool PowerPointImport::importDocument()
         pBox->Execute();
     }
 
+    if(xUndoManager.is() && bWasUnLocked)
+        xUndoManager->unlock();
+
     return bRet;
 
 }
commit a584c67d17ef3b252e8068276c07171230d168d8
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Fri Dec 15 00:56:26 2017 +0100

    tdf#114477: Can't set character highlighting on a text box using sidebar
    
    Change-Id: I9ef9d6dacc87fb26351eae5eaedd72fd0a081672
    Reviewed-on: https://gerrit.libreoffice.org/46494
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit b1f0de010f041a9340b2d32d3fef010954be9a32)

diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 55fdadcd68ac..4fd1a539607f 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -3472,6 +3472,16 @@ void DrawViewShell::ExecChar( SfxRequest &rReq )
             }
             break;
         }
+    case SID_ATTR_CHAR_BACK_COLOR:
+        if( rReq.GetArgs() )
+        {
+            const SvxBackgroundColorItem* pItem = rReq.GetArg<SvxBackgroundColorItem>(SID_ATTR_CHAR_BACK_COLOR);
+            if (pItem)
+            {
+                aNewAttr.Put(*pItem);
+            }
+        }
+        break;
     default:
         break;
     }
commit 407be72a8e4748bf62e46d378bc08c6375415225
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Mon Dec 4 20:12:13 2017 +0100

    Dump page valid flags in dumpAsXml
    
    Change-Id: I6976a5128f9242627062394d7d24e854348d002b
    Reviewed-on: https://gerrit.libreoffice.org/45821
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit b19aa21f0efa2aa72c144bacae801aeae59300c0)

diff --git a/sw/source/core/text/xmldump.cxx b/sw/source/core/text/xmldump.cxx
index 02b47ff1ebc7..794458141e01 100644
--- a/sw/source/core/text/xmldump.cxx
+++ b/sw/source/core/text/xmldump.cxx
@@ -12,6 +12,7 @@
 #include <ftnfrm.hxx>
 #include <sectfrm.hxx>
 #include <tabfrm.hxx>
+#include <pagefrm.hxx>
 #include <txtfrm.hxx>
 #include <hffrm.hxx>
 #include <rootfrm.hxx>
@@ -304,6 +305,18 @@ void SwFrame::dumpAsXml( xmlTextWriterPtr writer ) const
             xmlTextWriterEndElement(writer);
         }
 
+        if (IsPageFrame())
+        {
+            const SwPageFrame* pPageFrame = static_cast<const SwPageFrame*>(this);
+            xmlTextWriterStartElement(writer, BAD_CAST("page_status"));
+            xmlTextWriterWriteAttribute(writer, BAD_CAST("ValidFlyLayout"), BAD_CAST(OString::boolean(!pPageFrame->IsInvalidFlyLayout()).getStr()));
+            xmlTextWriterWriteAttribute(writer, BAD_CAST("ValidFlyContent"), BAD_CAST(OString::boolean(!pPageFrame->IsInvalidFlyContent()).getStr()));
+            xmlTextWriterWriteAttribute(writer, BAD_CAST("ValidFlyInCnt"), BAD_CAST(OString::boolean(!pPageFrame->IsInvalidFlyInCnt()).getStr()));
+            xmlTextWriterWriteAttribute(writer, BAD_CAST("ValidLayout"), BAD_CAST(OString::boolean(!pPageFrame->IsInvalidLayout()).getStr()));
+            xmlTextWriterWriteAttribute(writer, BAD_CAST("ValidContent"), BAD_CAST(OString::boolean(!pPageFrame->IsInvalidContent()).getStr()));
+            xmlTextWriterEndElement(writer);
+        }
+
         xmlTextWriterStartElement( writer, BAD_CAST( "infos" ) );
         dumpInfosAsXml( writer );
         xmlTextWriterEndElement( writer );
commit 5c4f7914f9e42dd3cfdcb67ce91e43ae6f64fe5c
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Sun Dec 3 21:00:37 2017 +0100

    tdf#74693: Footnotes text appearing above footnote separator line
    
    When invalidate a footnoteframe, invalidate also the lower textframe,
    so it will be recalculated before text rendering.
    
    Change-Id: I5fd29bdad4afae4947e0701e5727482958453d03
    Reviewed-on: https://gerrit.libreoffice.org/45756
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit a172f854b6e1d61bf0fe0fe4efc3058bb7a760bf)

diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 2276f7fa2b99..a9ac9b7c6ea5 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -545,7 +545,11 @@ SwLayNotify::~SwLayNotify()
     const bool bSize = pLay->getFrameArea().SSize() != maFrame.SSize();
 
     if ( bPos && pLay->Lower() && !IsLowersComplete() )
+    {
         pLay->Lower()->InvalidatePos();
+        if(pLay->Lower()->IsFootnoteFrame())
+            static_cast<SwFootnoteFrame*>(pLay->Lower())->Lower()->InvalidatePos();
+    }
 
     if ( bPrtPos )
         pLay->SetCompletePaint();
commit 26d3e0e24c4fd0665ef628d8844ba65090855891
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Mon Nov 27 02:13:20 2017 +0100

    Related tdf#111739: Don't insert special character into the document
    
    When it's only needed to be applied inside a dialog.
    
    Change-Id: I7d61cfb49f80ab43511c9fc6cc6733a990dcae55
    Reviewed-on: https://gerrit.libreoffice.org/45436
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 67eeab179a7e1d8b479d08a38093172531d4c3c9)

diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 8292c7c27120..7984bc3254d0 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -729,7 +729,7 @@ IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, EditHdl, Button*, void)
     if( nSelEntryPos == REPLACE_BULLETS ||
         nSelEntryPos == APPLY_NUMBERING)
     {
-        ScopedVclPtrInstance< SvxCharacterMap > pMapDlg(this);
+        ScopedVclPtrInstance< SvxCharacterMap > pMapDlg(this, nullptr, false);
         ImpUserData* pUserData = static_cast<ImpUserData*>(m_pCheckLB->FirstSelected()->GetUserData());
         pMapDlg->SetCharFont(*pUserData->pFont);
         pMapDlg->SetChar( (*pUserData->pString)[0] );
@@ -2051,7 +2051,7 @@ IMPL_LINK( OfaQuoteTabPage, QuoteHdl, Button*, pBtn, void )
     else if (pBtn == m_pDblEndQuotePB)
         nMode = DBL_END;
     // start character selection dialog
-    ScopedVclPtrInstance< SvxCharacterMap > pMap( this );
+    ScopedVclPtrInstance< SvxCharacterMap > pMap( this, nullptr, false );
     pMap->SetCharFont( OutputDevice::GetDefaultFont(DefaultFontType::LATIN_TEXT,
                         LANGUAGE_ENGLISH_US, GetDefaultFontFlags::OnlyOne ));
     pMap->SetText(nMode < SGL_END ? CuiResId(RID_SVXSTR_STARTQUOTE)  : CuiResId(RID_SVXSTR_ENDQUOTE) );
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 06f8616ded00..af80bb565ef7 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -3213,7 +3213,7 @@ void SvxCharTwoLinesPage::Initialize()
 void SvxCharTwoLinesPage::SelectCharacter( ListBox* pBox )
 {
     bool bStart = pBox == m_pStartBracketLB;
-    VclPtrInstance< SvxCharacterMap > aDlg( this );
+    VclPtrInstance< SvxCharacterMap > aDlg( this, nullptr, false );
     aDlg->DisableFontSelection();
 
     if ( aDlg->Execute() == RET_OK )
commit 7a1775a73e32ad890660ffc71ae452236b25ef36
Author: Aron Budea <aron.budea at collabora.com>
Date:   Fri Mar 9 03:54:27 2018 +0100

    tdf#116301: write correct content type for diagramDrawing
    
    According to MS-ODRAWXML the correct one is:
    application/vnd.ms-office.drawingml.diagramDrawing+xml
    
    Reviewed-on: https://gerrit.libreoffice.org/50980
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    (cherry picked from commit 612ed5e752a0b317cf63a27ff1bb663a774022ef)
    
    Change-Id: If988ad234742da42634a52bbe176dbb5b763af46

diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index 4c02bb7c1077..459811f0a56b 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -1280,7 +1280,7 @@ void DocxSdrExport::writeDiagram(const SdrObject* sdrObject, const SwFrameFormat
     {
         serializer.set(drawingDom, uno::UNO_QUERY);
         uno::Reference< io::XOutputStream > xDrawingOutputStream = m_pImpl->m_rExport.GetFilter().openFragmentStream("word/" + drawingFileName,
-                "application/vnd.openxmlformats-officedocument.drawingml.diagramDrawing+xml");
+                "application/vnd.ms-office.drawingml.diagramDrawing+xml");
         writer->setOutputStream(xDrawingOutputStream);
         serializer->serialize(uno::Reference< xml::sax::XDocumentHandler >(writer, uno::UNO_QUERY_THROW),
                               uno::Sequence< beans::StringPair >());
commit 8b1179420f4587caebb935cedf06c18eb69b4cee
Author: Aron Budea <aron.budea at collabora.com>
Date:   Mon Jan 22 03:00:28 2018 +0100

    tdf115103: find data source if sDataSource/sCommand are empty
    
    In several functions data source was only found if sDataSource and
    sCommand corresponded to what was set in fields.
    In imported DOC(X) files these aren't set.
    
    Now use the data source even if field's sDataSource/sCommand are
    empty (similarly to SwDBManager::IsDataSourceOpen(...)).
    
    Change-Id: I9563cb56e700e7fd033100cb200f41f074669020
    Reviewed-on: https://gerrit.libreoffice.org/48285
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    (cherry picked from commit 6feeb77552c38e3d9819611e9678470a44c00c84)

diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index 5132a0b75e3b..244a03e00bc2 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -1695,7 +1695,8 @@ sal_uLong SwDBManager::GetColumnFormat( const OUString& rDBName,
         uno::Reference< sdbcx::XColumnsSupplier> xColsSupp;
         bool bDisposeConnection = false;
         if(pImpl->pMergeData &&
-            pImpl->pMergeData->sDataSource == rDBName && pImpl->pMergeData->sCommand == rTableName)
+            ((pImpl->pMergeData->sDataSource == rDBName && pImpl->pMergeData->sCommand == rTableName) ||
+            (rDBName.isEmpty() && rTableName.isEmpty())))
         {
             xConnection = pImpl->pMergeData->xConnection;
             xSource = SwDBManager::getDataSourceAsParent(xConnection,rDBName);
@@ -2399,11 +2400,15 @@ sal_uInt32      SwDBManager::GetSelectedRecordId(
 {
     sal_uInt32 nRet = 0xffffffff;
     //check for merge data source first
-    if(pImpl->pMergeData && rDataSource == pImpl->pMergeData->sDataSource &&
-                    rTableOrQuery == pImpl->pMergeData->sCommand &&
-                    (nCommandType == -1 || nCommandType == pImpl->pMergeData->nCommandType) &&
-                    pImpl->pMergeData->xResultSet.is())
+    if(pImpl->pMergeData &&
+        ((rDataSource == pImpl->pMergeData->sDataSource &&
+        rTableOrQuery == pImpl->pMergeData->sCommand) ||
+        (rDataSource.isEmpty() && rTableOrQuery.isEmpty())) &&
+        (nCommandType == -1 || nCommandType == pImpl->pMergeData->nCommandType) &&
+        pImpl->pMergeData->xResultSet.is())
+    {
         nRet = GetSelectedRecordId();
+    }
     else
     {
         SwDBData aData;
@@ -2459,8 +2464,10 @@ void    SwDBManager::CloseAll(bool bIncludingMerge)
 SwDSParam* SwDBManager::FindDSData(const SwDBData& rData, bool bCreate)
 {
     //prefer merge data if available
-    if(pImpl->pMergeData && rData.sDataSource == pImpl->pMergeData->sDataSource &&
-        rData.sCommand == pImpl->pMergeData->sCommand &&
+    if(pImpl->pMergeData &&
+        ((rData.sDataSource == pImpl->pMergeData->sDataSource &&
+        rData.sCommand == pImpl->pMergeData->sCommand) ||
+        (rData.sDataSource.isEmpty() && rData.sCommand.isEmpty())) &&
         (rData.nCommandType == -1 || rData.nCommandType == pImpl->pMergeData->nCommandType ||
         (bCreate && pImpl->pMergeData->nCommandType == -1)))
     {
commit 3e1ece9b4dbcf8b18f8cc1118738bbde88f0b648
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Mar 8 16:07:11 2018 +0100

    Let sysadmins disable individual file format filters
    
    It makes sense to disable a filter, as a temporary security measure,
    when there is a 0-day vulnerability in it.
    
    E.g., when 0-day found in AbiWord filter, this config snippet disables it:
    <item oor:path="/org.openoffice.TypeDetection.Filter">
        <node oor:name="Filters">
            <node oor:name="AbiWord">
                <prop oor:name="Enabled" oor:finalized="true">
                    <value>false</value>
                </prop>
            </node>
        </node>
    </item>
    
    Change-Id: I8b84250c7e4aac3555877d23f58ed13a2210ebfc
    Reviewed-on: https://gerrit.libreoffice.org/50961
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 4547fa2c1e205e1989611b1c4493cbbd12541372)

diff --git a/filter/source/config/cache/constant.hxx b/filter/source/config/cache/constant.hxx
index 8f6b46e2fc38..c8a45889ee0e 100644
--- a/filter/source/config/cache/constant.hxx
+++ b/filter/source/config/cache/constant.hxx
@@ -58,6 +58,7 @@
 #define  PROPNAME_TEMPLATENAME      "TemplateName"
 #define  PROPNAME_FILEFORMATVERSION "FileFormatVersion"
 #define  PROPNAME_EXPORTEXTENSION   "ExportExtension"
+#define  PROPNAME_ENABLED           "Enabled"
 
 /** @short  used to identify a frame loader or detect service item
             property against the configuration API and can be used
diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx
index 6b97bda29bb2..92759e063ef9 100644
--- a/filter/source/config/cache/filtercache.cxx
+++ b/filter/source/config/cache/filtercache.cxx
@@ -63,10 +63,11 @@ FilterCache::FilterCache()
     , m_eFillState(E_CONTAINS_NOTHING                      )
 {
     int i = 0;
-    OUString sStandardProps[9];
+    OUString sStandardProps[10];
 
     sStandardProps[i++] = PROPNAME_USERDATA;
     sStandardProps[i++] = PROPNAME_TEMPLATENAME;
+    sStandardProps[i++] = PROPNAME_ENABLED;
     // E_READ_UPDATE only above
     sStandardProps[i++] = PROPNAME_TYPE;
     sStandardProps[i++] = PROPNAME_FILEFORMATVERSION;
@@ -79,9 +80,9 @@ FilterCache::FilterCache()
 
     // E_READ_NOTHING -> creative nothingness.
     m_aStandardProps[E_READ_STANDARD] =
-        css::uno::Sequence< OUString >(sStandardProps + 2, 7);
+        css::uno::Sequence< OUString >(sStandardProps + 3, 7);
     m_aStandardProps[E_READ_UPDATE] =
-        css::uno::Sequence< OUString >(sStandardProps, 2);
+        css::uno::Sequence< OUString >(sStandardProps, 3);
     m_aStandardProps[E_READ_ALL] =
         css::uno::Sequence< OUString >(sStandardProps,
                                        SAL_N_ELEMENTS(sStandardProps));
diff --git a/include/sfx2/docfilt.hxx b/include/sfx2/docfilt.hxx
index d5e0507d577a..2e8cc62c177d 100644
--- a/include/sfx2/docfilt.hxx
+++ b/include/sfx2/docfilt.hxx
@@ -60,6 +60,7 @@ class SFX2_DLLPUBLIC SfxFilter
     SfxFilterFlags  nFormatType;
     sal_Int32       nVersion;
     SotClipboardFormatId lFormat;
+    bool mbEnabled;
 
 public:
     SfxFilter( const OUString& rProvider, const OUString& rFilterName );
@@ -71,7 +72,8 @@ public:
                const OUString &rTypeName,
                const OUString &rMimeType,
                const OUString &rUserData,
-               const OUString& rServiceName );
+               const OUString& rServiceName,
+               bool bEnabled = true );
     ~SfxFilter();
 
     bool IsAllowedAsTemplate() const { return bool(nFormatType & SfxFilterFlags::TEMPLATE); }
@@ -115,6 +117,7 @@ public:
     /// @throws css::uno::RuntimeException
     static OUString GetTypeFromStorage(
         const css::uno::Reference<css::embed::XStorage>& xStorage );
+    bool IsEnabled() const  { return mbEnabled; }
 };
 
 #endif
diff --git a/include/vcl/errcode.hxx b/include/vcl/errcode.hxx
index 31582a79d962..ed636b48630b 100644
--- a/include/vcl/errcode.hxx
+++ b/include/vcl/errcode.hxx
@@ -231,6 +231,7 @@ enum class ErrCodeClass {
 #define ERRCODE_IO_WRITEPROTECTED        ErrCode( ErrCodeArea::Io, ErrCodeClass::Access, 37 )
 #define ERRCODE_IO_BROKENPACKAGE         ErrCode( ErrCodeArea::Io, ErrCodeClass::Format, 38 )
 #define ERRCODE_IO_NOTSTORABLEINBINARYFORMAT ErrCode( ErrCodeArea::Io, ErrCodeClass::Format, 39 )
+#define ERRCODE_IO_FILTERDISABLED        ErrCode( ErrCodeArea::Io, ErrCodeClass::Format, 40 )
 
 // StreamErrorCodes
 
diff --git a/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs b/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
index d4d12de48425..5433e1349798 100644
--- a/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
+++ b/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
@@ -94,6 +94,14 @@
           this filter.</desc>
         </info>
       </prop>
+      <prop oor:name="Enabled" oor:type="xs:boolean" oor:nillable="false">
+        <info>
+          <desc>Whether the filter is enabled. It makes sense to disable a filter,
+          as a temporary security measure, when there is a 0-day vulnerability in
+          it.</desc>
+        </info>
+        <value>true</value>
+      </prop>
     </group>
   </templates>
   <component>
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index 42605dc29efe..042eac6ab3f7 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -911,6 +911,7 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
         OUString sExtension          ;
         OUString sPattern            ;
         OUString sServiceName        ;
+        bool bEnabled = true         ;
 
         // first get directly available properties
         sal_Int32 nFilterPropertyCount = lFilterProperties.getLength();
@@ -1005,6 +1006,11 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
                     }
                 }
             }
+            else if ( lFilterProperties[nFilterProperty].Name == "Enabled" )
+            {
+                lFilterProperties[nFilterProperty].Value >>= bEnabled;
+            }
+
         }
 
         if ( sServiceName.isEmpty() )
@@ -1041,7 +1047,8 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
                                      sType                   ,
                                      sMimeType               ,
                                      sUserData               ,
-                                     sServiceName ));
+                                     sServiceName            ,
+                                     bEnabled ));
             rList.push_back( pFilter );
         }
         else
@@ -1055,6 +1062,7 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
             pFilt->aMimeType    = sMimeType;
             pFilt->aUserData    = sUserData;
             pFilt->aServiceName = sServiceName;
+            pFilt->mbEnabled    = bEnabled;
         }
 
         SfxFilter* pFilt = const_cast<SfxFilter*>(pFilter.get());
diff --git a/sfx2/source/doc/docfilt.cxx b/sfx2/source/doc/docfilt.cxx
index a71c45412e0a..0b6493113075 100644
--- a/sfx2/source/doc/docfilt.cxx
+++ b/sfx2/source/doc/docfilt.cxx
@@ -42,7 +42,8 @@ SfxFilter::SfxFilter( const OUString& rProvider, const OUString &rFilterName ) :
     maProvider(rProvider),
     nFormatType(SfxFilterFlags::NONE),
     nVersion(0),
-    lFormat(SotClipboardFormatId::NONE)
+    lFormat(SotClipboardFormatId::NONE),
+    mbEnabled(true)
 {
 }
 
@@ -53,7 +54,8 @@ SfxFilter::SfxFilter( const OUString &rName,
                       const OUString &rTypNm,
                       const OUString &rMimeType,
                       const OUString &rUsrDat,
-                      const OUString &rServiceName ):
+                      const OUString &rServiceName,
+                      bool bEnabled ):
     aWildCard(rWildCard, ';'),
     aTypeName(rTypNm),
     aUserData(rUsrDat),
@@ -63,7 +65,8 @@ SfxFilter::SfxFilter( const OUString &rName,
     aUIName(maFilterName),
     nFormatType(nType),
     nVersion(SOFFICE_FILEFORMAT_50),
-    lFormat(lFmt)
+    lFormat(lFmt),
+    mbEnabled(bEnabled)
 {
     OUString aExts = GetWildcard().getGlob();
     OUString aShort, aLong;
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 207c4fdeae96..5ecc8e11c123 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -643,6 +643,11 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
     pImpl->nLoadedFlags = SfxLoadedFlags::NONE;
     pImpl->bModelInitialized = false;
 
+    if (pFilter && !pFilter->IsEnabled())
+    {
+        SetError( ERRCODE_IO_FILTERDISABLED );
+    }
+
     // initialize static language table so language-related extensions are learned before the document loads
     (void)SvtLanguageTable::GetLanguageEntryCount();
 
diff --git a/svtools/inc/errtxt.hrc b/svtools/inc/errtxt.hrc
index b0c82246c807..d6e2c0008a1c 100644
--- a/svtools/inc/errtxt.hrc
+++ b/svtools/inc/errtxt.hrc
@@ -130,6 +130,7 @@ const ErrMsgCode RID_ERRHDL[] =
     { NC_("RID_ERRHDL", "Wrong checksum.") , ERRCODE_IO_BADCRC },
     { NC_("RID_ERRHDL", "Function not possible: write protected.") , ERRCODE_IO_WRITEPROTECTED },
     { NC_("RID_ERRHDL", "The password of a shared spreadsheet cannot be set or changed.\nDeactivate sharing mode first."), ERRCODE_SFX_SHARED_NOPASSWORDCHANGE },
+    { NC_("RID_ERRHDL", "The filter for this file format is disabled in configuration. Please contact your systems administrator."), ERRCODE_IO_FILTERDISABLED },
     { nullptr, ERRCODE_NONE }
 };
 
commit a4a65dda99e9c5bb8a9091f682ed4a2f6259c0b1
Author: Andras Timar <andras.timar at collabora.com>
Date:   Wed Jan 17 15:29:41 2018 +0100

    use the same shade of grey as Online UI uses
    
    Change-Id: Idb6dc80f4943323f80bc6851bc184798627722ef
    Reviewed-on: https://gerrit.libreoffice.org/48056
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit d9ada611083a5938673956edc0c7b48c6199a4f2)

diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index 711806226c49..fda5a213070c 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -409,7 +409,7 @@ void SvpSalFrame::UpdateSettings( AllSettings& rSettings )
 {
     StyleSettings aStyleSettings = rSettings.GetStyleSettings();
 
-    Color aBackgroundColor( 0xec, 0xec, 0xec );
+    Color aBackgroundColor( 0xef, 0xef, 0xef );
     aStyleSettings.BatchSetBackgrounds( aBackgroundColor, false );
 
     if (comphelper::LibreOfficeKit::isActive()) // TODO: remove this.
commit 81b0824dc6bd5d51d21ad5e15707df8bb4aedd55
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Mar 15 23:01:27 2018 +0100

    Collabora Office OS X packaging
    
        - added EULA (sla.r) in special OS X resource fork format
        - added volume icon which does not work ATM, TODO later
        - new dmg background image and adjusted .DS_Store
        - fixes to tolerate space in app bundle name
    
    Change-Id: Ia855d7d677136de951c2b9b31ee8d5583475dd41

diff --git a/scp2/source/ooo/scpaction_ooo.scp b/scp2/source/ooo/scpaction_ooo.scp
index e09d72848dad..a6546b2400e0 100644
--- a/scp2/source/ooo/scpaction_ooo.scp
+++ b/scp2/source/ooo/scpaction_ooo.scp
@@ -45,6 +45,13 @@ ScpAction scp_Copy_Dmg_Background_Image
     Subdir = ".background";
 End
 
+ScpAction scp_Copy_Dmg_Volume_Icon
+    Copy = "VolumeIcon.icns";
+    Name = ".VolumeIcon.icns";
+    UnixRights = 444;
+    Styles = ();
+End
+
 ScpAction scp_Copy_Ds_Store
     Copy = "DS_Store";
     DevVersionCopy = "DS_Store_Dev";
diff --git a/setup_native/source/packinfo/DS_Store b/setup_native/source/packinfo/DS_Store
index 755f7f6a845f..7c875f77feab 100644
Binary files a/setup_native/source/packinfo/DS_Store and b/setup_native/source/packinfo/DS_Store differ
diff --git a/setup_native/source/packinfo/VolumeIcon.icns b/setup_native/source/packinfo/VolumeIcon.icns
new file mode 100644
index 000000000000..1c7cef6b6f44
Binary files /dev/null and b/setup_native/source/packinfo/VolumeIcon.icns differ
diff --git a/setup_native/source/packinfo/sla.r b/setup_native/source/packinfo/sla.r
new file mode 100644
index 000000000000..6cf55e59bf05
--- /dev/null
+++ b/setup_native/source/packinfo/sla.r
@@ -0,0 +1,1428 @@
+data 'TMPL' (128, "LPic") {
+	$"1344 6566 6175 6C74 204C 616E 6775 6167"            /* .Default Languag */
+	$"6520 4944 4457 5244 0543 6F75 6E74 4F43"            /* e IDDWRD.CountOC */
+	$"4E54 042A 2A2A 2A4C 5354 430B 7379 7320"            /* NT.****LSTC.sys  */
+	$"6C61 6E67 2049 4444 5752 441E 6C6F 6361"            /* lang IDDWRD.loca */
+	$"6C20 7265 7320 4944 2028 6F66 6673 6574"            /* l res ID (offset */
+	$"2066 726F 6D20 3530 3030 4457 5244 1032"            /*  from 5000DWRD.2 */
+	$"2D62 7974 6520 6C61 6E67 7561 6765 3F44"            /* -byte language?D */
+	$"5752 4404 2A2A 2A2A 4C53 5445"                      /* WRD.****LSTE */
+};
+
+data 'STR#' (5000, "English buttons") {
+	$"0006 0D45 6E67 6C69 7368 2074 6573 7431"            /* ...English test1 */
+	$"0541 6772 6565 0844 6973 6167 7265 6505"            /* .Agree.Disagree. */
+	$"5072 696E 7407 5361 7665 2E2E 2E7A 4966"            /* Print.Save...zIf */
+	$"2079 6F75 2061 6772 6565 2077 6974 6820"            /*  you agree with  */
+	$"7468 6520 7465 726D 7320 6F66 2074 6869"            /* the terms of thi */
+	$"7320 6C69 6365 6E73 652C 2063 6C69 636B"            /* s license, click */
+	$"2022 4167 7265 6522 2074 6F20 6163 6365"            /*  "Agree" to acce */
+	$"7373 2074 6865 2073 6F66 7477 6172 652E"            /* ss the software. */
+	$"2020 4966 2079 6F75 2064 6F20 6E6F 7420"            /*   If you do not  */
+	$"6167 7265 652C 2070 7265 7373 2022 4469"            /* agree, press "Di */
+	$"7361 6772 6565 2E22"                                /* sagree." */
+};
+
+data 'STR#' (5001, "German") {
+	$"0006 0744 6575 7473 6368 0B41 6B7A 6570"            /* ...Deutsch.Akzep */
+	$"7469 6572 656E 0841 626C 6568 6E65 6E07"            /* tieren.Ablehnen. */
+	$"4472 7563 6B65 6E0A 5369 6368 6572 6E2E"            /* DruckenÂSichern. */
+	$"2E2E E74B 6C69 636B 656E 2053 6965 2069"            /* ..çKlicken Sie i */
+	$"6E20 D241 6B7A 6570 7469 6572 656E D32C"            /* n ÒAkzeptierenÓ, */
+	$"2077 656E 6E20 5369 6520 6D69 7420 6465"            /*  wenn Sie mit de */
+	$"6E20 4265 7374 696D 6D75 6E67 656E 2064"            /* n Bestimmungen d */
+	$"6573 2053 6F66 7477 6172 652D 4C69 7A65"            /* es Software-Lize */
+	$"6E7A 7665 7274 7261 6773 2065 696E 7665"            /* nzvertrags einve */
+	$"7273 7461 6E64 656E 2073 696E 642E 2046"            /* rstanden sind. F */
+	$"616C 6C73 206E 6963 6874 2C20 6269 7474"            /* alls nicht, bitt */
+	$"6520 D241 626C 6568 6E65 6ED3 2061 6E6B"            /* e ÒAblehnenÓ ank */
+	$"6C69 636B 656E 2E20 5369 6520 6B9A 6E6E"            /* licken. Sie kšnn */
+	$"656E 2064 6965 2053 6F66 7477 6172 6520"            /* en die Software  */
+	$"6E75 7220 696E 7374 616C 6C69 6572 656E"            /* nur installieren */
+	$"2C20 7765 6E6E 2053 6965 20D2 416B 7A65"            /* , wenn Sie ÒAkze */
+	$"7074 6965 7265 6ED3 2061 6E67 656B 6C69"            /* ptierenÓ angekli */
+	$"636B 7420 6861 6265 6E2E"                           /* ckt haben. */
+};
+
+data 'STR#' (5002, "English") {
+	$"0006 0745 6E67 6C69 7368 0541 6772 6565"            /* ...English.Agree */
+	$"0844 6973 6167 7265 6505 5072 696E 7407"            /* .Disagree.Print. */
+	$"5361 7665 2E2E 2E7B 4966 2079 6F75 2061"            /* Save...{If you a */
+	$"6772 6565 2077 6974 6820 7468 6520 7465"            /* gree with the te */
+	$"726D 7320 6F66 2074 6869 7320 6C69 6365"            /* rms of this lice */
+	$"6E73 652C 2070 7265 7373 2022 4167 7265"            /* nse, press "Agre */
+	$"6522 2074 6F20 696E 7374 616C 6C20 7468"            /* e" to install th */
+	$"6520 736F 6674 7761 7265 2E20 2049 6620"            /* e software.  If  */
+	$"796F 7520 646F 206E 6F74 2061 6772 6565"            /* you do not agree */
+	$"2C20 7072 6573 7320 2244 6973 6167 7265"            /* , press "Disagre */
+	$"6522 2E"                                            /* e". */
+};
+
+data 'STR#' (5003, "Spanish") {
+	$"0006 0745 7370 6196 6F6C 0741 6365 7074"            /* ...Espa–ol.Acept */
+	$"6172 0A4E 6F20 6163 6570 7461 7208 496D"            /* arÂNo aceptar.Im */
+	$"7072 696D 6972 0A47 7561 7264 6172 2E2E"            /* primirÂGuardar.. */
+	$"2EC0 5369 2065 7374 8720 6465 2061 6375"            /* .ÀSi est‡ de acu */
+	$"6572 646F 2063 6F6E 206C 6F73 2074 8E72"            /* erdo con los tŽr */
+	$"6D69 6E6F 7320 6465 2065 7374 6120 6C69"            /* minos de esta li */
+	$"6365 6E63 6961 2C20 7075 6C73 6520 2241"            /* cencia, pulse "A */
+	$"6365 7074 6172 2220 7061 7261 2069 6E73"            /* ceptar" para ins */
+	$"7461 6C61 7220 656C 2073 6F66 7477 6172"            /* talar el softwar */
+	$"652E 2045 6E20 656C 2073 7570 7565 7374"            /* e. En el supuest */
+	$"6F20 6465 2071 7565 206E 6F20 6573 748E"            /* o de que no estŽ */
+	$"2064 6520 6163 7565 7264 6F20 636F 6E20"            /*  de acuerdo con  */
+	$"6C6F 7320 748E 726D 696E 6F73 2064 6520"            /* los tŽrminos de  */
+	$"6573 7461 206C 6963 656E 6369 612C 2070"            /* esta licencia, p */
+	$"756C 7365 2022 4E6F 2061 6365 7074 6172"            /* ulse "No aceptar */
+	$"2E22"                                               /* ." */
+};
+
+data 'STR#' (5004, "French") {
+	$"0006 0846 7261 6E8D 6169 7308 4163 6365"            /* ...Franais.Acce */
+	$"7074 6572 0752 6566 7573 6572 0849 6D70"            /* pter.Refuser.Imp */
+	$"7269 6D65 720E 456E 7265 6769 7374 7265"            /* rimer.Enregistre */
+	$"722E 2E2E BA53 6920 766F 7573 2061 6363"            /* r...ºSi vous acc */
+	$"6570 7465 7A20 6C65 7320 7465 726D 6573"            /* eptez les termes */
+	$"2064 6520 6C61 2070 728E 7365 6E74 6520"            /*  de la prŽsente  */
+	$"6C69 6365 6E63 652C 2063 6C69 7175 657A"            /* licence, cliquez */
+	$"2073 7572 2022 4163 6365 7074 6572 2220"            /*  sur "Accepter"  */
+	$"6166 696E 2064 2769 6E73 7461 6C6C 6572"            /* afin d'installer */
+	$"206C 6520 6C6F 6769 6369 656C 2E20 5369"            /*  le logiciel. Si */
+	$"2076 6F75 7320 6E27 9074 6573 2070 6173"            /*  vous n'tes pas */
+	$"2064 2761 6363 6F72 6420 6176 6563 206C"            /*  d'accord avec l */
+	$"6573 2074 6572 6D65 7320 6465 206C 6120"            /* es termes de la  */
+	$"6C69 6365 6E63 652C 2063 6C69 7175 657A"            /* licence, cliquez */
+	$"2073 7572 2022 5265 6675 7365 7222 2E"              /*  sur "Refuser". */
+};
+
+data 'STR#' (5005, "Italian") {
+	$"0006 0849 7461 6C69 616E 6F07 4163 6365"            /* ...Italiano.Acce */
+	$"7474 6F07 5269 6669 7574 6F06 5374 616D"            /* tto.Rifiuto.Stam */
+	$"7061 0B52 6567 6973 7472 612E 2E2E 7F53"            /* pa.Registra....S */
+	$"6520 6163 6365 7474 6920 6C65 2063 6F6E"            /* e accetti le con */
+	$"6469 7A69 6F6E 6920 6469 2071 7565 7374"            /* dizioni di quest */
+	$"6120 6C69 6365 6E7A 612C 2066 6169 2063"            /* a licenza, fai c */
+	$"6C69 6320 7375 2022 4163 6365 7474 6F22"            /* lic su "Accetto" */
+	$"2070 6572 2069 6E73 7461 6C6C 6172 6520"            /*  per installare  */
+	$"696C 2073 6F66 7477 6172 652E 2041 6C74"            /* il software. Alt */
+	$"7269 6D65 6E74 6920 6661 6920 636C 6963"            /* rimenti fai clic */
+	$"2073 7520 2252 6966 6975 746F 222E"                 /*  su "Rifiuto". */
+};
+
+data 'STR#' (5006, "Japanese") {
+	$"0006 084A 6170 616E 6573 650A 93AF 88D3"            /* ...Japanese“¯ˆÓ */
+	$"82B5 82DC 82B7 0C93 AF88 D382 B582 DC82"            /* ‚µ‚Ü‚·.“¯ˆÓ‚µ‚Ü‚ */
+	$"B982 F108 88F3 8DFC 82B7 82E9 0795 DB91"            /* ¹‚ñ.ˆóü‚·‚é.•Û‘ */
+	$"B62E 2E2E B496 7B83 5C83 7483 6783 4583"            /* ¶...´–{ƒ\ƒtƒgƒEƒ */
+	$"4783 418E 6797 708B 9691 F88C 5F96 F182"            /* GƒAŽg—p‹–‘øŒ_–ñ‚ */
+	$"CC8F F08C 8F82 C993 AF88 D382 B382 EA82"            /* ÌðŒ‚É“¯ˆÓ‚³‚ê‚ */
+	$"E98F EA8D 8782 C982 CD81 4183 5C83 7483"            /* éê‡‚ɂ́Aƒ\ƒtƒ */
+	$"6783 4583 4783 4182 F083 4383 9383 5883"            /* gƒEƒGƒA‚ðƒCƒ“ƒXƒ */
+	$"6781 5B83 8B82 B782 E982 BD82 DF82 C981"            /* g[ƒ‹‚·‚邽‚߂Ɂ */
+	$"7593 AF88 D382 B582 DC82 B781 7682 F089"            /* u“¯ˆÓ‚µ‚Ü‚·v‚ð‰ */
+	$"9F82 B582 C482 AD82 BE82 B382 A281 4281"            /* Ÿ‚µ‚Ä‚­‚¾‚³‚¢B */
+	$"4093 AF88 D382 B382 EA82 C882 A28F EA8D"            /* @“¯ˆÓ‚³‚ê‚È‚¢ê */
+	$"8782 C982 CD81 4181 7593 AF88 D382 B582"            /* ‡‚ɂ́Au“¯ˆÓ‚µ‚ */
+	$"DC82 B982 F181 7682 F089 9F82 B582 C482"            /* Ü‚¹‚ñv‚ð‰Ÿ‚µ‚Ä‚ */
+	$"AD82 BE82 B382 A281 42"                             /* ­‚¾‚³‚¢B */
+};
+
+data 'STR#' (5007, "Dutch") {
+	$"0006 0A4E 6564 6572 6C61 6E64 7302 4A61"            /* ..ÂNederlands.Ja */
+	$"034E 6565 0550 7269 6E74 0942 6577 6161"            /* .Nee.PrintÆBewaa */
+	$"722E 2E2E A449 6E64 6965 6E20 7520 616B"            /* r...¤Indien u ak */
+	$"6B6F 6F72 6420 6761 6174 206D 6574 2064"            /* koord gaat met d */
+	$"6520 766F 6F72 7761 6172 6465 6E20 7661"            /* e voorwaarden va */
+	$"6E20 6465 7A65 206C 6963 656E 7469 652C"            /* n deze licentie, */
+	$"206B 756E 7420 7520 6F70 2027 4A61 2720"            /*  kunt u op 'Ja'  */
+	$"6B6C 696B 6B65 6E20 6F6D 2064 6520 7072"            /* klikken om de pr */
+	$"6F67 7261 6D6D 6174 7575 7220 7465 2069"            /* ogrammatuur te i */
+	$"6E73 7461 6C6C 6572 656E 2E20 496E 6469"            /* nstalleren. Indi */
+	$"656E 2075 206E 6965 7420 616B 6B6F 6F72"            /* en u niet akkoor */
+	$"6420 6761 6174 2C20 6B6C 696B 7420 7520"            /* d gaat, klikt u  */
+	$"6F70 2027 4E65 6527 2E"                             /* op 'Nee'. */
+};
+
+data 'STR#' (5008, "Swedish") {
+	$"0006 0653 7665 6E73 6B08 476F 646B 8A6E"            /* ...Svensk.GodkŠn */
+	$"6E73 0641 7662 9A6A 7308 536B 7269 7620"            /* ns.Avbšjs.Skriv  */
+	$"7574 0853 7061 7261 2E2E 2E93 4F6D 2044"            /* ut.Spara...“Om D */
+	$"7520 676F 646B 8A6E 6E65 7220 6C69 6365"            /* u godkŠnner lice */
+	$"6E73 7669 6C6C 6B6F 7265 6E20 6B6C 6963"            /* nsvillkoren klic */
+	$"6B61 2070 8C20 2247 6F64 6B8A 6E6E 7322"            /* ka pŒ "GodkŠnns" */
+	$"2066 9A72 2061 7474 2069 6E73 7461 6C6C"            /*  fšr att install */
+	$"6572 6120 7072 6F67 7261 6D70 726F 6475"            /* era programprodu */
+	$"6B74 656E 2E20 4F6D 2044 7520 696E 7465"            /* kten. Om Du inte */
+	$"2067 6F64 6B8A 6E6E 6572 206C 6963 656E"            /*  godkŠnner licen */
+	$"7376 696C 6C6B 6F72 656E 2C20 6B6C 6963"            /* svillkoren, klic */
+	$"6B61 2070 8C20 2241 7662 9A6A 7322 2E"              /* ka pŒ "Avbšjs". */
+};
+
+data 'STR#' (5009, "Brazilian Portuguese") {
+	$"0006 1150 6F72 7475 6775 9073 2C20 4272"            /* ...Portugus, Br */
+	$"6173 696C 0943 6F6E 636F 7264 6172 0944"            /* asilÆConcordarÆD */
+	$"6973 636F 7264 6172 0849 6D70 7269 6D69"            /* iscordar.Imprimi */
+	$"7209 5361 6C76 6172 2E2E 2E8C 5365 2065"            /* rÆSalvar...ŒSe e */
+	$"7374 8720 6465 2061 636F 7264 6F20 636F"            /* st‡ de acordo co */
+	$"6D20 6F73 2074 6572 6D6F 7320 6465 7374"            /* m os termos dest */
+	$"6120 6C69 6365 6E8D 612C 2070 7265 7373"            /* a licena, press */
+	$"696F 6E65 2022 436F 6E63 6F72 6461 7222"            /* ione "Concordar" */
+	$"2070 6172 6120 696E 7374 616C 6172 206F"            /*  para instalar o */
+	$"2073 6F66 7477 6172 652E 2053 6520 6E8B"            /*  software. Se n‹ */
+	$"6F20 6573 7487 2064 6520 6163 6F72 646F"            /* o est‡ de acordo */
+	$"2C20 7072 6573 7369 6F6E 6520 2244 6973"            /* , pressione "Dis */
+	$"636F 7264 6172 222E"                                /* cordar". */
+};
+
+data 'STR#' (5010, "Simplified Chinese") {
+	$"0006 1253 696D 706C 6966 6965 6420 4368"            /* ...Simplified Ch */
+	$"696E 6573 6504 CDAC D2E2 06B2 BBCD ACD2"            /* inese.ͬÒâ.²»Í¬Ò */
+	$"E204 B4F2 D3A1 06B4 E6B4 A2A1 AD54 C8E7"            /* â.´òÓ¡.´æ´¢¡­TÈç */
+	$"B9FB C4FA CDAC D2E2 B1BE D0ED BFC9 D0AD"            /* ¹ûÄúͬÒâ±¾Ðí¿ÉЭ */
+	$"D2E9 B5C4 CCF5 BFEE A3AC C7EB B0B4 A1B0"            /* ÒéµÄÌõ¿î£¬Çë°´¡° */
+	$"CDAC D2E2 A1B1 C0B4 B0B2 D7B0 B4CB C8ED"            /* ͬÒ⡱À´°²×°´ËÈí */
+	$"BCFE A1A3 C8E7 B9FB C4FA B2BB CDAC D2E2"            /* ¼þ¡£Èç¹ûÄú²»Í¬Òâ */
+	$"A3AC C7EB B0B4 A1B0 B2BB CDAC D2E2 A1B1"            /* £¬Çë°´¡°²»Í¬Ò⡱ */
+	$"A1A3"                                               /* ¡£ */
+};
+
+data 'STR#' (5011, "Traditional Chinese") {
+	$"0006 1354 7261 6469 7469 6F6E 616C 2043"            /* ...Traditional C */
+	$"6869 6E65 7365 04A6 50B7 4E06 A4A3 A650"            /* hinese.¦P·N.¤£¦P */
+	$"B74E 04A6 43A6 4C06 C078 A673 A14B 50A6"            /* ·N.¦C¦L.Àx¦s¡KP¦ */
+	$"70AA 47B1 7AA6 50B7 4EA5 BBB3 5CA5 69C3"            /* pªG±z¦P·N¥»³\¥ià */
+	$"D2B8 CCAA BAB1 F8B4 DAA1 41BD D0AB F6A1"            /* Ҹ̪º±ø´Ú¡A½Ð«ö¡ */
+	$"A7A6 50B7 4EA1 A8A5 48A6 77B8 CBB3 6EC5"            /* §¦P·N¡¨¥H¦w¸Ë³nÅ */
+	$"E9A1 43A6 70AA 47A4 A3A6 50B7 4EA1 41BD"            /* é¡C¦pªG¤£¦P·N¡A½ */
+	$"D0AB F6A1 A7A4 A3A6 50B7 4EA1 A8A1 43"              /* Ыö¡§¤£¦P·N¡¨¡C */
+};
+
+data 'STR#' (5012, "Danish") {
+	$"0006 0544 616E 736B 0445 6E69 6705 5565"            /* ...Dansk.Enig.Ue */
+	$"6E69 6707 5564 736B 7269 760A 4172 6B69"            /* nig.UdskrivÂArki */
+	$"7665 722E 2E2E 9848 7669 7320 6475 2061"            /* ver...˜Hvis du a */
+	$"6363 6570 7465 7265 7220 6265 7469 6E67"            /* ccepterer beting */
+	$"656C 7365 726E 6520 6920 6C69 6365 6E73"            /* elserne i licens */
+	$"6166 7461 6C65 6E2C 2073 6B61 6C20 6475"            /* aftalen, skal du */
+	$"206B 6C69 6B6B 6520 708C 20D2 456E 6967"            /*  klikke pŒ ÒEnig */
+	$"D320 666F 7220 6174 2069 6E73 7461 6C6C"            /* Ó for at install */
+	$"6572 6520 736F 6674 7761 7265 6E2E 204B"            /* ere softwaren. K */
+	$"6C69 6B20 708C 20D2 5565 6E69 67D3 2066"            /* lik pŒ ÒUenigÓ f */
+	$"6F72 2061 7420 616E 6E75 6C6C 6572 6520"            /* or at annullere  */
+	$"696E 7374 616C 6C65 7269 6E67 656E 2E"              /* installeringen. */
+};
+
+data 'STR#' (5013, "Finnish") {
+	$"0006 0553 756F 6D69 0848 7976 8A6B 7379"            /* ...Suomi.HyvŠksy */
+	$"6E0A 456E 2068 7976 8A6B 7379 0754 756C"            /* nÂEn hyvŠksy.Tul */
+	$"6F73 7461 0954 616C 6C65 6E6E 61C9 6F48"            /* ostaÆTallennaÉoH */
+	$"7976 8A6B 7379 206C 6973 656E 7373 6973"            /* yvŠksy lisenssis */
+	$"6F70 696D 756B 7365 6E20 6568 646F 7420"            /* opimuksen ehdot  */
+	$"6F73 6F69 7474 616D 616C 6C61 20D5 4879"            /* osoittamalla ÕHy */
+	$"768A 6B73 79D5 2E20 4A6F 7320 6574 2068"            /* vŠksyÕ. Jos et h */
+	$"7976 8A6B 7379 2073 6F70 696D 756B 7365"            /* yvŠksy sopimukse */
+	$"6E20 6568 746F 6A61 2C20 6F73 6F69 7461"            /* n ehtoja, osoita */
+	$"20D5 456E 2068 7976 8A6B 7379 D52E"                 /*  ÕEn hyvŠksyÕ. */
+};
+
+data 'STR#' (5014, "French Canadian") {
+	$"0006 1146 7261 6E8D 6169 7320 6361 6E61"            /* ...Franais cana */
+	$"6469 656E 0841 6363 6570 7465 7207 5265"            /* dien.Accepter.Re */
+	$"6675 7365 7208 496D 7072 696D 6572 0E45"            /* fuser.Imprimer.E */
+	$"6E72 6567 6973 7472 6572 2E2E 2EBA 5369"            /* nregistrer...ºSi */
+	$"2076 6F75 7320 6163 6365 7074 657A 206C"            /*  vous acceptez l */
+	$"6573 2074 6572 6D65 7320 6465 206C 6120"            /* es termes de la  */
+	$"7072 8E73 656E 7465 206C 6963 656E 6365"            /* prŽsente licence */
+	$"2C20 636C 6971 7565 7A20 7375 7220 2241"            /* , cliquez sur "A */
+	$"6363 6570 7465 7222 2061 6669 6E20 6427"            /* ccepter" afin d' */
+	$"696E 7374 616C 6C65 7220 6C65 206C 6F67"            /* installer le log */
+	$"6963 6965 6C2E 2053 6920 766F 7573 206E"            /* iciel. Si vous n */
+	$"2790 7465 7320 7061 7320 6427 6163 636F"            /* 'tes pas d'acco */
+	$"7264 2061 7665 6320 6C65 7320 7465 726D"            /* rd avec les term */
+	$"6573 2064 6520 6C61 206C 6963 656E 6365"            /* es de la licence */
+	$"2C20 636C 6971 7565 7A20 7375 7220 2252"            /* , cliquez sur "R */
+	$"6566 7573 6572 222E"                                /* efuser". */
+};
+
+data 'STR#' (5015, "Korean") {
+	$"0006 064B 6F72 6561 6E04 B5BF C0C7 09B5"            /* ...Korean.µ¿ÀÇƵ */
+	$"BFC0 C720 BEC8 C7D4 06C7 C1B8 B0C6 AE07"            /* ¿ÀÇ ¾ÈÇÔ.ÇÁ¸°Æ®. */
+	$"C0FA C0E5 2E2E 2E7E BBE7 BFEB 20B0 E8BE"            /* ÀúÀå...~»ç¿ë °è¾ */
+	$"E0BC ADC0 C720 B3BB BFEB BFA1 20B5 BFC0"            /* ༭ÀÇ ³»¿ë¿¡ µ¿À */
+	$"C7C7 CFB8 E92C 2022 B5BF C0C7 2220 B4DC"            /* ÇÇϸé, "µ¿ÀÇ" ´Ü */
+	$"C3DF B8A6 20B4 ADB7 AF20 BCD2 C7C1 C6AE"            /* Ã߸¦ ´­·¯ ¼ÒÇÁÆ® */
+	$"BFFE BEEE B8A6 20BC B3C4 A1C7 CFBD CABD"            /* ¿þ¾î¸¦ ¼³Ä¡ÇϽʽ */
+	$"C3BF C02E 20B5 BFC0 C7C7 CFC1 F620 BECA"            /* ÿÀ. µ¿ÀÇÇÏÁö ¾Ê */
+	$"B4C2 B4D9 B8E9 2C20 22B5 BFC0 C720 BEC8"            /* ´Â´Ù¸é, "µ¿ÀÇ ¾È */
+	$"C7D4 2220 B4DC C3DF B8A6 20B4 A9B8 A3BD"            /* ÇÔ" ´ÜÃ߸¦ ´©¸£½ */
+	$"CABD C3BF C02E"                                     /* ʽÿÀ. */
+};
+
+data 'STR#' (5016, "Norwegian") {
+	$"0006 054E 6F72 736B 0445 6E69 6709 496B"            /* ...Norsk.EnigÆIk */
+	$"6B65 2065 6E69 6708 536B 7269 7620 7574"            /* ke enig.Skriv ut */
+	$"0A41 726B 6976 6572 2E2E 2EA3 4876 6973"            /* ÂArkiver...£Hvis */
+	$"2044 6520 6572 2065 6E69 6720 6920 6265"            /*  De er enig i be */
+	$"7374 656D 6D65 6C73 656E 6520 6920 6465"            /* stemmelsene i de */
+	$"6E6E 6520 6C69 7365 6E73 6176 7461 6C65"            /* nne lisensavtale */
+	$"6E2C 206B 6C69 6B6B 6572 2044 6520 708C"            /* n, klikker De pΠ*/
+	$"2022 456E 6967 222D 6B6E 6170 7065 6E20"            /*  "Enig"-knappen  */
+	$"666F 7220 8C20 696E 7374 616C 6C65 7265"            /* for Πinstallere */
+	$"2070 726F 6772 616D 7661 7265 6E2E 2048"            /*  programvaren. H */
+	$"7669 7320 4465 2069 6B6B 6520 6572 2065"            /* vis De ikke er e */
+	$"6E69 672C 206B 6C69 6B6B 6572 2044 6520"            /* nig, klikker De  */
+	$"708C 2022 496B 6B65 2065 6E69 6722 2E"              /* pΠ"Ikke enig". */
+};
+
+data 'TEXT' (5000) {
+    $"456E 6420 5573 6572 204C 6963 656E 7365"            /* End User License */
+    $"2061 6E64 2053 7562 7363 7269 7074 696F"            /*  and Subscriptio */
+    $"6E20 4167 7265 656D 656E 740D 436F 6C6C"            /* n Agreement.Coll */
+    $"6162 6F72 6120 4F66 6669 6365 2028 D253"            /* abora Office (ÒS */
+    $"6F66 7477 6172 65D3 290D 0D0D 416E 2069"            /* oftwareÓ)...An i */
+    $"6E64 6976 6964 7561 6C20 6163 7469 6E67"            /* ndividual acting */
+    $"206F 6E20 7468 6569 7220 6F77 6E20 6265"            /*  on their own be */
+    $"6861 6C66 206F 7220 6F6E 2062 6568 616C"            /* half or on behal */
+    $"6620 6F66 2061 6E79 2063 6F72 706F 7261"            /* f of any corpora */
+    $"7465 2065 6E74 6974 7920 7768 6963 6820"            /* te entity which  */
+    $"656D 706C 6F79 7320 7468 656D 206F 7220"            /* employs them or  */
+    $"7768 6963 6820 7468 6579 2072 6570 7265"            /* which they repre */
+    $"7365 6E74 2028 D261 6E20 4F72 6761 6E69"            /* sent (Òan Organi */
+    $"7361 7469 6F6E D329 2072 6570 7265 7365"            /* sationÓ) represe */
+    $"6E74 7320 7468 6174 2068 6520 6F72 2073"            /* nts that he or s */
+    $"6865 2068 6173 2074 6865 2061 7574 686F"            /* he has the autho */
+    $"7269 7479 2074 6F20 656E 7465 7220 696E"            /* rity to enter in */
+    $"746F 2074 6869 7320 6167 7265 656D 656E"            /* to this agreemen */
+    $"7420 6F6E 2062 6568 616C 6620 6F66 2074"            /* t on behalf of t */
+    $"6861 7420 4F72 6761 6E69 7361 7469 6F6E"            /* hat Organisation */
+    $"2E20 496E 2074 6869 7320 4C69 6365 6E63"            /* . In this Licenc */
+    $"6520 4167 7265 656D 656E 742C 20D2 596F"            /* e Agreement, ÒYo */
+    $"75D3 2069 6E63 6C75 6465 7320 626F 7468"            /* uÓ includes both */
+    $"2074 6865 2072 6561 6465 7220 616E 6420"            /*  the reader and  */
+    $"616E 7920 4F72 6761 6E69 7361 7469 6F6E"            /* any Organisation */
+    $"2E0D 0D50 4C45 4153 4520 5245 4144 2054"            /* ...PLEASE READ T */
+    $"4849 5320 4147 5245 454D 454E 5420 4341"            /* HIS AGREEMENT CA */
+    $"5245 4655 4C4C 592E 2042 5920 5055 5243"            /* REFULLY. BY PURC */
+    $"4841 5349 4E47 2C20 494E 5354 414C 4C49"            /* HASING, INSTALLI */
+    $"4E47 2041 4E44 2F4F 5220 5553 494E 4720"            /* NG AND/OR USING  */
+    $"5448 4520 434F 4C4C 4142 4F52 4120 4F46"            /* THE COLLABORA OF */
+    $"4649 4345 2053 4F46 5457 4152 4520 2849"            /* FICE SOFTWARE (I */
+    $"4E43 4C55 4449 4E47 2049 5453 2043 4F4D"            /* NCLUDING ITS COM */
+    $"504F 4E45 4E54 5329 2C20 594F 5520 4147"            /* PONENTS), YOU AG */
+    $"5245 4520 544F 2054 4845 2054 4552 4D53"            /* REE TO THE TERMS */
+    $"204F 4620 5448 4953 204C 4943 454E 4345"            /*  OF THIS LICENCE */
+    $"2041 4E44 2053 5542 5343 5249 5054 494F"            /*  AND SUBSCRIPTIO */
+    $"4E20 4147 5245 454D 454E 5420 414E 4420"            /* N AGREEMENT AND  */
+    $"4143 4B4E 4F57 4C45 4447 4520 5448 4154"            /* ACKNOWLEDGE THAT */
+    $"2059 4F55 2048 4156 4520 5245 4144 2041"            /*  YOU HAVE READ A */
+    $"4E44 2055 4E44 4552 5354 414E 4420 5448"            /* ND UNDERSTAND TH */
+    $"4953 2041 4752 4545 4D45 4E54 2E20 0D0D"            /* IS AGREEMENT. .. */
+    $"4946 2059 4F55 2044 4F20 4E4F 5420 4147"            /* IF YOU DO NOT AG */
+    $"5245 4520 5749 5448 2054 4845 5345 2054"            /* REE WITH THESE T */
+    $"4552 4D53 2050 4C45 4153 4520 444F 204E"            /* ERMS PLEASE DO N */
+    $"4F54 2044 4F57 4E4C 4F41 442C 2049 4E53"            /* OT DOWNLOAD, INS */
+    $"5441 4C4C 204F 5220 5553 4520 5448 4520"            /* TALL OR USE THE  */
+    $"534F 4654 5741 5245 204F 5220 5355 4253"            /* SOFTWARE OR SUBS */
+    $"4352 4950 5449 4F4E 2053 4552 5649 4345"            /* CRIPTION SERVICE */
+    $"532E 200D 0D50 4152 5449 4553 2E20 5468"            /* S. ..PARTIES. Th */
+    $"6973 2073 6F66 7477 6172 6520 6C69 6365"            /* is software lice */
+    $"6E63 6520 616E 6420 7375 6273 6372 6970"            /* nce and subscrip */
+    $"7469 6F6E 2061 6772 6565 6D65 6E74 2028"            /* tion agreement ( */
+    $"D241 6772 6565 6D65 6E74 D329 2069 7320"            /* ÒAgreementÓ) is  */
+    $"6120 6C65 6761 6C6C 7920 6269 6E64 696E"            /* a legally bindin */
+    $"6720 6167 7265 656D 656E 7420 6265 7477"            /* g agreement betw */
+    $"6565 6E20 596F 7520 616E 6420 436F 6C6C"            /* een You and Coll */
+    $"6162 6F72 6120 5072 6F64 7563 7469 7669"            /* abora Productivi */
+    $"7479 204C 696D 6974 6564 2C20 696E 636F"            /* ty Limited, inco */
+    $"7270 6F72 6174 6564 2061 6E64 2072 6567"            /* rporated and reg */
+    $"6973 7465 7265 6420 696E 2045 6E67 6C61"            /* istered in Engla */
+    $"6E64 2061 6E64 2057 616C 6573 2077 6974"            /* nd and Wales wit */
+    $"6820 636F 6D70 616E 7920 6E75 6D62 6572"            /* h company number */
+    $"2030 3836 3434 3933 3120 7768 6F73 6520"            /*  08644931 whose  */
+    $"7265 6769 7374 6572 6564 206F 6666 6963"            /* registered offic */
+    $"6520 6973 2061 7420 4B65 7474 2048 6F75"            /* e is at Kett Hou */
+    $"7365 2C20 5374 6174 696F 6E20 526F 6164"            /* se, Station Road */
+    $"2C20 4361 6D62 7269 6467 652C 2043 4231"            /* , Cambridge, CB1 */
+    $"2032 4A48 2C20 556E 6974 6564 204B 696E"            /*  2JH, United Kin */

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list