configure.ac                                                      |    2 
 connectivity/source/drivers/dbase/DTable.cxx                      |    2 
 download.lst                                                      |   16 
 drawinglayer/source/tools/emfphelperdata.cxx                      |   31 
 external/curl/ExternalPackage_curl.mk                             |    2 
 external/curl/ExternalProject_curl.mk                             |    2 
 external/curl/curl-7.26.0_win-proxy.patch                         |   12 
 external/curl/curl-nss.patch.1                                    |    6 
 external/curl/zlib.patch.0                                        |   16 
 external/libxslt/UnpackedTarball_libxslt.mk                       |    1 
 external/libxslt/e2584eed1c84c18f16e42188c30d2c3d8e3e8853.patch.1 |   69 -
 external/libxslt/rpath.patch.0                                    |    2 
 hwpfilter/source/drawing.h                                        |   13 
 hwpfilter/source/hcode.cxx                                        |    2 
 hwpfilter/source/htags.cxx                                        |   26 
 hwpfilter/source/hwpfile.cxx                                      |    7 
 hwpfilter/source/hwpfile.h                                        |    6 
 hwpfilter/source/hwpread.cxx                                      |   20 
 hwpfilter/source/hwpreader.cxx                                    |   91 -
 include/o3tl/safeint.hxx                                          |    8 
 include/sfx2/strings.hrc                                          |    2 
 include/sfx2/viewfrm.hxx                                          |    1 
 include/svl/zforlist.hxx                                          |    2 
 lotuswordpro/source/filter/lwpdrawobj.cxx                         |  123 +-
 officecfg/registry/schema/org/openoffice/Office/Common.xcs        |   16 
 sc/inc/documentimport.hxx                                         |    2 
 sc/inc/table.hxx                                                  |    2 
 sc/source/core/data/dociter.cxx                                   |    8 
 sc/source/core/data/document.cxx                                  |   12 
 sc/source/core/data/documentimport.cxx                            |   14 
 sc/source/core/data/table2.cxx                                    |   15 
 sc/source/filter/lotus/op.cxx                                     |   11 
 sc/source/filter/oox/sheetdatabuffer.cxx                          |   16 
 sfx2/source/view/viewfrm.cxx                                      |   40 
 shell/source/win32/SysShExec.cxx                                  |    8 
 solenv/clang-format/blacklist                                     |    1 
 svl/source/numbers/zforlist.cxx                                   |    8 
 svl/source/passwordcontainer/passwordcontainer.cxx                |  166 ++
 svl/source/passwordcontainer/passwordcontainer.hxx                |   69 +
 sw/inc/IDocumentMarkAccess.hxx                                    |    5 
 sw/inc/deletelistener.hxx                                         |   92 +
 sw/qa/core/data/rtf/fail/forcepoint-82.rtf                        |   28 
 sw/qa/core/data/rtf/pass/forcepoint-96.rtf                        |    8 
 sw/qa/core/data/rtf/pass/forcepoint104.rtf                        |  571 
++++++++++
 sw/qa/core/layout/data/tdf122894-4.doc                            |binary
 sw/qa/core/layout/layout.cxx                                      |    5 
 sw/qa/extras/layout/data/LIBREOFFICE-N4LA0OHZ.rtf                 |  347 ++++++
 sw/qa/extras/layout/data/LIBREOFFICE-UXTSOREL.rtf                 |binary
 sw/qa/extras/layout/data/forcepoint102.rtf                        |  178 +++
 sw/qa/extras/layout/data/forcepoint89.html                        |binary
 sw/qa/extras/layout/data/forcepoint90.rtf                         |    1 
 sw/qa/extras/layout/data/forcepoint91.html                        |binary
 sw/qa/extras/layout/data/forcepoint92.doc                         |binary
 sw/qa/extras/layout/data/forcepoint93-1.rtf                       |binary
 sw/qa/extras/layout/data/forcepoint93-2.rtf                       |binary
 sw/qa/extras/layout/data/forcepoint94.html                        |binary
 sw/qa/extras/layout/data/forcepoint98.html                        |binary
 sw/qa/extras/layout/data/forcepoint99.html                        |binary
 sw/qa/extras/layout/data/tdf147485-forcepoint.doc                 |binary
 sw/qa/extras/layout/layout.cxx                                    |   83 +
 sw/qa/extras/odfexport/data/tdf131025_noZerosInTable.odt          |binary
 sw/qa/extras/odfexport/odfexport.cxx                              |   10 
 sw/qa/extras/uiwriter/uiwriter.cxx                                |    4 
 sw/source/core/doc/DocumentContentOperationsManager.cxx           |   31 
 sw/source/core/doc/docbm.cxx                                      |   22 
 sw/source/core/inc/MarkManager.hxx                                |    2 
 sw/source/core/inc/frame.hxx                                      |   11 
 sw/source/core/layout/ftnfrm.cxx                                  |    3 
 sw/source/core/layout/layact.cxx                                  |    3 
 sw/source/core/layout/objectformattertxtfrm.cxx                   |   54 
 sw/source/core/layout/sectfrm.cxx                                 |    3 
 sw/source/core/layout/tabfrm.cxx                                  |   74 -
 sw/source/core/layout/wsfrm.cxx                                   |    2 
 sw/source/core/table/swtable.cxx                                  |   15 
 sw/source/core/text/itratr.cxx                                    |    2 
 sw/source/core/text/itrform2.cxx                                  |   15 
 sw/source/core/text/itrform2.hxx                                  |    2 
 sw/source/core/text/porfld.cxx                                    |   13 
 sw/source/core/text/porlay.cxx                                    |    4 
 sw/source/core/text/txtfrm.cxx                                    |    8 
 sw/source/core/undo/unbkmk.cxx                                    |    2 
 sw/source/core/undo/undobj.cxx                                    |    2 
 sw/source/filter/ww8/wrtw8sty.cxx                                 |   28 
 sw/source/filter/ww8/wrtww8.hxx                                   |    4 
 sw/source/filter/xml/xmltbli.cxx                                  |    2 
 sw/source/ui/misc/bookmark.cxx                                    |    2 
 sw/source/uibase/dochdl/swdtflvr.cxx                              |    4 
 sw/source/uibase/shells/textsh1.cxx                               |    2 
 sw/source/uibase/utlui/content.cxx                                |    2 
 sw/source/uibase/utlui/navipi.cxx                                 |    2 
 uui/source/iahndl-authentication.cxx                              |    5 
 vcl/source/fontsubset/sft.cxx                                     |   12 
 vcl/source/fontsubset/ttcr.cxx                                    |   36 
 vcl/source/helper/strhelper.cxx                                   |    3 
 vcl/source/outdev/textline.cxx                                    |    2 
 writerfilter/source/dmapper/DomainMapperTableManager.cxx          |    4 
 96 files changed, 2133 insertions(+), 425 deletions(-)

New commits:
commit 7d91873bfb354e0956f0eff5ade0770647f26421
Author:     Andras Timar <[email protected]>
AuthorDate: Tue May 31 15:53:19 2022 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:53:19 2022 +0200

    Bump version to 6.4-62
    
    Change-Id: Ia5f0559adbc3eee2b9114872b817f0e0cfb3f898

diff --git a/configure.ac b/configure.ac
index 1ecad82f17c6..697df181fd5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([Collabora Office],[6.4.10.61],[],[],[https://collaboraoffice.com/])
+AC_INIT([Collabora Office],[6.4.10.62],[],[],[https://collaboraoffice.com/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard
commit 678b4fdcc671a7c3a59e0213f4f7fd5f06d00275
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Jan 20 12:41:47 2021 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:30 2022 +0200

    Related tdf#139782 sc: Make sure column exists before accessing it
    
    While the first fix (Change-Id
    I12a780bf52024cef31188651813d3a93cc2b5ddd,
    "tdf#139782 sc: Don't try to access unallocated column") makes
    opening the simplified bugdoc I had attached to tdf#139782 work,
    the original document I was given (which I can't share as is, but
    from which the simplified bugdoc was created) had more formulas and
    managed to hit another similar issue related to the fact that columns
    are now dynamically allocated, and crashed trying to access one that
    wasn't yet allocated.
    
    Fix this place as well by making sure the column exists.
    
    Backtrace:
    
        "#0  __GI_raise (sig=sig@entry=6) at 
../sysdeps/unix/sysv/linux/raise.c:50\n"
        "#1  0x00007ffff7aa7537 in __GI_abort () at abort.c:79\n"
        "#2  0x00007ffff794beb1 in std::__throw_bad_exception() () at 
/lib/x86_64-linux-gnu/libstdc++.so.6\n"
        "#3  0x00007fffa0b161dc in 
std::__debug::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> 
>, std::allocator<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> > > 
>::operator[](unsigned long) (this=0x555558827250, __n=84) at 
/usr/include/c++/10/debug/vector:427\n"
        "#4  0x00007fffa0c23935 in ScColContainer::operator[](unsigned long) 
(this=0x555558827250, nIndex=84) at 
.../libreoffice/sc/inc/colcontainer.hxx:44\n"
        "#5  0x00007fffa0c76275 in ScQueryCellIterator::InitPos() 
(this=0x7fffffff8040) at .../libreoffice/sc/source/core/data/dociter.cxx:1082\n"
        "#6  0x00007fffa0c76c28 in ScQueryCellIterator::GetFirst() 
(this=0x7fffffff8040) at .../libreoffice/sc/source/core/data/dociter.cxx:1233\n"
        "#7  0x00007fffa0c76fb6 in 
ScQueryCellIterator::FindEqualOrSortedLastInRange(short&, int&) 
(this=0x7fffffff8040, nFoundCol=@0x7fffffff7f58: 1024, 
nFoundRow=@0x7fffffff7fb0: 1048576) at 
.../libreoffice/sc/source/core/data/dociter.cxx:1304\n"
        "#8  0x00007fffa11b1529 in ScInterpreter::ScMatch() 
(this=0x5555619f7fd0) at 
.../libreoffice/sc/source/core/tool/interpr1.cxx:5050\n"
        "#9  0x00007fffa121f653 in ScInterpreter::Interpret() 
(this=0x5555619f7fd0) at 
.../libreoffice/sc/source/core/tool/interpr4.cxx:4247\n"
        "#10 0x00007fffa0f03bf5 in 
ScFormulaCell::InterpretTail(ScInterpreterContext&, 
ScFormulaCell::ScInterpretTailParameter) (this=0x55555e793030, rContext=..., 
eTailParam=ScFormulaCell::SCITP_NORMAL) at 
.../libreoffice/sc/source/core/data/formulacell.cxx:1952\n"
        "#11 0x00007fffa0f028b2 in ScFormulaCell::Interpret(int, int) 
(this=0x55555e793030, nStartOffset=-1, nEndOffset=-1) at 
.../libreoffice/sc/source/core/data/formulacell.cxx:1644\n"
        "#12 0x00007fffa0be0274 in ScFormulaCell::MaybeInterpret() 
(this=0x55555e793030) at .../libreoffice/sc/inc/formulacell.hxx:445\n"
        "#13 0x00007fffa0f07b34 in ScFormulaCell::GetErrCode() 
(this=0x55555e793030) at 
.../libreoffice/sc/source/core/data/formulacell.cxx:2974\n"
        "#14 0x00007fffa10bac28 in ScCellFormat::GetString(ScRefCellValue 
const&, unsigned int, rtl::OUString&, Color const**, SvNumberFormatter&, 
ScDocument const&, bool, bool, bool) (rCell=..., nFormat=0, rString=\"\", 
ppColor=0x7fffffff87e8, rFormatter=..., rDoc=..., bNullVals=true, 
bFormula=false, bUseStarFormat=false) at 
.../libreoffice/sc/source/core/tool/cellform.cxx:77\n"
        "#15 0x00007fffa0bcb8f8 in 
ScColumn::UpdateScriptType(sc::CellTextAttr&, int, 
mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, 
mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned
 long, mdds::mtv::base_element_block> > >&) (this=0x55555e793330, rAttr=..., 
nRow=1, itr=...) at .../libreoffice/sc/source/core/data/column3.cxx:794\n"
        "#16 0x00007fffa0b9e315 in 
ScColumn::GetRangeScriptType(mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<mdds::mtv::default_element_block<51,
 sc::CellTextAttr> >, mdds::detail::mtv::event_func>::iterator_trait, 
mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned
 long, mdds::mtv::base_element_block> > >&, int, int, 
mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, 
mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned
 long, mdds::mtv::base_element_block> > > const&) (this=0x55555e793330, 
itPos=..., nRow1=1, nRow2=1, itrCells_=...) at 
.../libreoffice/sc/source/core/data/column2.cxx:2089\n"
        "#17 0x00007fffa0b27563 in (anonymous 
namespace)::FindEditCellsHandler::operator()(size_t, ScFormulaCell const*) 
(this=0x7fffffff9180, nRow=1, p=0x55555e793030) at 
.../libreoffice/sc/source/core/data/column.cxx:3091\n"
        "#18 0x00007fffa0b31267 in 
sc::CheckElem<mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, 
mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>, (anonymous 
namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent> const&, 
mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>::const_iterator const&, size_t, size_t
 , (anonymous namespace)::FindEditCellsHandler&) (rStore=..., it=..., 
nOffset=0, nDataSize=999, rFuncElem=...) at 
.../libreoffice/sc/inc/mtvfunctions.hxx:149\n"
        "#19 0x00007fffa0b2eb58 in 
sc::FindElement2<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>, 
mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, 
mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, (anonymous 
namespace)::FindEditCellsHandler, (anonymous 
namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent> const&, 
mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::
 noncopyable_managed_element_block<54, ScFormulaCell> >, 
sc::CellStoreEvent>::size_type, 
mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52,
 svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, 
EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, 
ScFormulaCell> >, sc::CellStoreEvent>::size_type, (anonymous 
namespace)::FindEditCellsHandler&, (anonymous 
namespace)::FindEditCellsHandler&) (rStore=..., nStart=0, nEnd=1048575, 
rFuncElem=..., rFuncElse=...) at .../libreoffice/sc/inc/mtvfunctions.hxx:496\n"
        "#20 0x00007fffa0b2b487 in sc::FindFormulaEditText<(anonymous 
namespace)::FindEditCellsHandler>(sc::CellStoreType const&, SCROW, SCROW, 
(anonymous namespace)::FindEditCellsHandler&) (rStore=..., nRow1=0, 
nRow2=1048575, rFunc=...) at .../libreoffice/sc/inc/mtvcellfunc.hxx:141\n"
        "#21 0x00007fffa0b293e3 in ScColumn::HasEditCells(int, int, int&) 
(this=0x55555e793330, nStartRow=0, nEndRow=1048575, rFirst=@0x7fffffff92ec: 0) 
at .../libreoffice/sc/source/core/data/column.cxx:3434\n"
        "#22 0x00007fffa0b981b1 in 
ScColumn::GetOptimalHeight(sc::RowHeightContext&, int, int, unsigned short, 
int) (this=0x55555e793330, rCxt=..., nStartRow=0, nEndRow=1048575, 
nMinHeight=0, nMinStart=0) at 
.../libreoffice/sc/source/core/data/column2.cxx:863\n"
        "#23 0x00007fffa0fcaf7d in (anonymous 
namespace)::GetOptimalHeightsInColumn(sc::RowHeightContext&, ScColContainer&, 
SCROW, SCROW, ScProgress*, sal_uLong) (rCxt=..., rCol=..., nStartRow=0, 
nEndRow=1048575, pProgress=0x7fffffff9740, nProgressStart=406268) at 
.../libreoffice/sc/source/core/data/table1.cxx:93\n"
        "#24 0x00007fffa0fccdae in 
ScTable::SetOptimalHeight(sc::RowHeightContext&, int, int, ScProgress*, 
unsigned long) (this=0x55555a39e890, rCxt=..., nStartRow=0, nEndRow=1048575, 
pOuterProgress=0x7fffffff9740, nProgressStart=406268) at 
.../libreoffice/sc/source/core/data/table1.cxx:470\n"
        "#25 0x00007fffa0c7ced6 in ScDocRowHeightUpdater::update() 
(this=0x7fffffff9910) at .../libreoffice/sc/source/core/data/dociter.cxx:2732\n"
        "#26 0x00007fffa15aae65 in ScXMLImport::endDocument() 
(this=0x555558902ec0) at 
.../libreoffice/sc/source/filter/xml/xmlimprt.cxx:1443\n"
        "#27 0x00007fff99f9e04b in 
sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource
 const&) (this=0x555559b8e0f0, rStructSource=...) at 
.../libreoffice/sax/source/fastparser/fastparser.cxx:911\n"
        "#28 0x00007fff99fa2318 in 
sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource
 const&) (this=0x55555a718940, aInputSource=...) at 
.../libreoffice/sax/source/fastparser/fastparser.cxx:1482\n"
        "#29 0x00007fffecc8fa95 in 
SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&) 
(this=0x555558902ec0, aInputSource=...) at 
.../libreoffice/xmloff/source/core/xmlimp.cxx:504\n"
        "#30 0x00007fffa15e0863 in 
ScXMLImportWrapper::ImportFromComponent(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
 const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, 
com::sun::star::xml::sax::InputSource&, rtl::OUString const&, rtl::OUString 
const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, bool) 
(this=0x7fffffffa2b0, xContext=uno::Reference to (cppu::(anonymous 
namespace)::ComponentContext *) 0x55555591a590, xModel=uno::Reference to 
(ScModelObj *) 0x55555a39fe50, aParserInput=..., 
sComponentName=\"com.sun.star.comp.Calc.XMLOasisContentImporter\", 
sDocName=\"content.xml\", aArgs=uno::Sequence of length 4 = {...}, 
bMustBeSuccessfull=true) at 
.../libreoffice/sc/source/filter/xml/xmlwrap.cxx:182\n"
        "#31 0x00007fffa15e3c0b in ScXMLImportWrapper::Import(ImportFlags, 
ErrCode&) (this=0x7fffffffa2b0, nMode=ImportFlags::All, rError=...) at 
.../libreoffice/sc/source/filter/xml/xmlwrap.cxx:510\n"
        "#32 0x00007fffa182aa1c in ScDocShell::LoadXML(SfxMedium*, 
com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) 
(this=0x55555a783820, pLoadMedium=0x55555aa07260, xStor=empty uno::Reference) 
at .../libreoffice/sc/source/ui/docshell/docsh.cxx:482\n"
        "#33 0x00007fffa182b423 in ScDocShell::Load(SfxMedium&) 
(this=0x55555a783820, rMedium=...) at 
.../libreoffice/sc/source/ui/docshell/docsh.cxx:629\n"
        "#34 0x00007ffff5182831 in SfxObjectShell::LoadOwnFormat(SfxMedium&) 
(this=0x55555a783820, rMedium=...) at 
.../libreoffice/sfx2/source/doc/objstor.cxx:3128\n"
        "#35 0x00007ffff5174ee3 in SfxObjectShell::DoLoad(SfxMedium*) 
(this=0x55555a783820, pMed=0x55555aa07260) at 
.../libreoffice/sfx2/source/doc/objstor.cxx:677\n"
        "#36 0x00007ffff51c5544 in 
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
 const&) (this=0x55555a39fdc0, seqArguments=uno::Sequence of length 16 = {...}) 
at .../libreoffice/sfx2/source/doc/sfxbasemodel.cxx:1883\n"
        "#37 0x00007ffff52f307f in (anonymous 
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
 const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) 
(this=0x5555587e4650, rArgs=uno::Sequence of length 13 = {...}, 
_rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 
0x5555569f3330) at .../libreoffice/sfx2/source/view/frmload.cxx:681\n"
        "#38 0x00007ffff5fd8854 in framework::LoadEnv::impl_loadContent() 
(this=0x555557039788) at 
.../libreoffice/framework/source/loadenv/loadenv.cxx:1163\n"
        "#39 0x00007ffff5fd45c7 in framework::LoadEnv::start() 
(this=0x555557039788) at 
.../libreoffice/framework/source/loadenv/loadenv.cxx:394\n"
        [..]
    
    Change-Id: I2d61e4a29543b1d331ae63d7ec023e88395e0b68
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109705
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>
    (cherry picked from commit fc3b904b671a71266db2e8b30cbeeef4f7981753)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109814
    Tested-by: Michael Weghorn <[email protected]>
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx
index 7323eeb4ee40..407c5484a4c2 100644
--- a/sc/source/core/data/dociter.cxx
+++ b/sc/source/core/data/dociter.cxx
@@ -1080,8 +1080,8 @@ void ScQueryCellIterator::InitPos()
     nRow = mpParam->nRow1;
     if (mpParam->bHasHeader && mpParam->bByRow)
         ++nRow;
-    ScColumn* pCol = &(pDoc->maTabs[nTab])->aCol[nCol];
-    maCurPos = pCol->maCells.position(nRow);
+    const ScColumn& rCol = pDoc->maTabs[nTab]->CreateColumnIfNotExists(nCol);
+    maCurPos = rCol.maCells.position(nRow);
 }
 
 void ScQueryCellIterator::IncPos()
commit 43e17ad92529426d0fe7d661640242b3d3df42df
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Jan 20 12:21:43 2021 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:30 2022 +0200

    tdf#139782 sc: Don't try to access unallocated column
    
    This fixes a regression from
    
        commit 7282014e362a1529a36c88eb308df8ed359c2cfa
        Date:   Fri Feb 1 15:15:16 2019 +0100
    
            tdf#50916 Makes numbers of columns dynamic.
    
    Change-Id: I12a780bf52024cef31188651813d3a93cc2b5ddd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109704
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>
    (cherry picked from commit 3032cf9df042f50511a15c6a627c50f708a34238)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109813
    Tested-by: Michael Weghorn <[email protected]>
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx
index eeeeb9f1cc69..7323eeb4ee40 100644
--- a/sc/source/core/data/dociter.cxx
+++ b/sc/source/core/data/dociter.cxx
@@ -1799,6 +1799,10 @@ bool ScQueryCellIterator::BinarySearch()
     if (nTab >= pDoc->GetTableCount())
         OSL_FAIL("try to access index out of bounds, FIX IT");
     nCol = mpParam->nCol1;
+
+    if (nCol >= pDoc->maTabs[nTab]->GetAllocatedColumnsCount())
+        return false;
+
     ScColumn* pCol = &(pDoc->maTabs[nTab])->aCol[nCol];
     if (pCol->IsEmptyData())
         return false;
commit a720f3efeed57833528d44a725395634879a8cf2
Author:     Michael Stahl <[email protected]>
AuthorDate: Thu May 12 11:43:59 2022 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:30 2022 +0200

    curl: upgrade to release 7.83.1
    
    Fixes CVE-2022-27774 CVE-2022-27775 CVE-2022-27776 CVE-2022-27781
    plus 6 more CVEs that shouldn't affect LO.
    
    Remove obsolete configure-eval-fix.patch.0.
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134225
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 58a3bf5199818e30ef4207213f29692d81b519c6)
    
    upgrade to curl-7.81.0
    
    Change-Id: I0a34239bfb16bf19e25bf374c7f36c4cdf1776c1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128783
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>
    (cherry picked from commit 40a84af1bdd7b3c414a8a78ca32b0951c03f9976)
    
    Change-Id: Ifbd7ff5acf390df1d95d6b8be0dc7751e4753bbe
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134246
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>
    (cherry picked from commit f668663d63d5b0f37d4727b54585c3b67ab92162)

diff --git a/download.lst b/download.lst
index 483e1e765de1..b956a8eb42c6 100644
--- a/download.lst
+++ b/download.lst
@@ -29,8 +29,8 @@ export CPPUNIT_SHA256SUM := 
3d569869d27b48860210c758c4f313082103a5e58219a7669b52
 export CPPUNIT_TARBALL := cppunit-1.14.0.tar.gz
 export CT2N_SHA256SUM := 
71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
 export CT2N_TARBALL := 
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 
0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689
-export CURL_TARBALL := curl-7.79.1.tar.xz
+export CURL_SHA256SUM := 
2cb9c2356e7263a1272fd1435ef7cdebf2cd21400ec287b068396deb705c22c4
+export CURL_TARBALL := curl-7.83.1.tar.xz
 export EBOOK_SHA256SUM := 
7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
 export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
 export EPOXY_SHA256SUM := 
002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
diff --git a/external/curl/ExternalPackage_curl.mk 
b/external/curl/ExternalPackage_curl.mk
index 1fb360c85ca9..3308074b363c 100644
--- a/external/curl/ExternalPackage_curl.mk
+++ b/external/curl/ExternalPackage_curl.mk
@@ -20,7 +20,7 @@ $(eval $(call 
gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.4.dyli
 else ifeq ($(OS),AIX)
 $(eval $(call 
gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so,lib/.libs/libcurl.so.4))
 else
-$(eval $(call 
gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so.4,lib/.libs/libcurl.so.4.7.0))
+$(eval $(call 
gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so.4,lib/.libs/libcurl.so.4.8.0))
 endif
 
 endif # $(DISABLE_DYNLOADING)
diff --git a/external/curl/ExternalProject_curl.mk 
b/external/curl/ExternalProject_curl.mk
index 06cc96c2e8de..918238ce4135 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -42,7 +42,7 @@ $(call gb_ExternalProject_get_state_target,curl,build):
                ./configure \
                        $(if $(filter iOS MACOSX,$(OS)),\
                                --with-secure-transport,\
-                               $(if $(ENABLE_NSS),--with-nss$(if 
$(SYSTEM_NSS),,="$(call 
gb_UnpackedTarball_get_dir,nss)/dist/out"),--without-nss)) \
+                               $(if $(ENABLE_NSS),--with-nss$(if 
$(SYSTEM_NSS),,="$(call gb_UnpackedTarball_get_dir,nss)/dist/out") 
--with-nss-deprecated,--without-nss)) \
                        --without-ssl --without-gnutls --without-polarssl 
--without-cyassl --without-axtls --without-mbedtls \
                        --enable-ftp --enable-http --enable-ipv6 \
                        --without-libidn2 --without-libpsl --without-librtmp \
diff --git a/external/curl/curl-7.26.0_win-proxy.patch 
b/external/curl/curl-7.26.0_win-proxy.patch
index 46cdcc739d80..1c5469a35479 100644
--- a/external/curl/curl-7.26.0_win-proxy.patch
+++ b/external/curl/curl-7.26.0_win-proxy.patch
@@ -31,7 +31,7 @@
 +{
 +  int bufSize;
 +  char *out = NULL;
-+  if(wStr != NULL) {
++  if(wStr) {
 +    bufSize = WideCharToMultiByte(
 +      CP_ACP,  0, wStr, -1, NULL, 0, NULL, NULL);
 +    out = (char *)malloc(bufSize * sizeof(char));
@@ -63,10 +63,10 @@
 +      ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass);
 +
 +      /* Convert the ieNoProxy into a proper no_proxy value */
-+      if(NULL != ieNoProxy) {
++      if(ieNoProxy) {
 +        no_proxy = strdup(ieNoProxy);
 +        pos = strpbrk(no_proxy, "; ");
-+        while(NULL != pos) {
++        while(pos) {
 +          no_proxy[pos-no_proxy] = ',';
 +          pos = strpbrk(no_proxy, "; ");
 +        }
@@ -77,9 +77,9 @@
 +        char *tok;
 +        char *saveptr;
 +
-+        if(NULL != ieProxy) {
++        if(ieProxy) {
 +          tok = strtok_s(ieProxy, ";", &saveptr);
-+          if(strchr(tok, '=') == NULL) {
++          if(!strchr(tok, '=')) {
 +            proxy = strdup(ieProxy);
 +          }
 +          else {
@@ -90,7 +90,7 @@
 +              }
 +              tok = strtok_s(NULL, ";", &saveptr);
 +            }
-+            while(NULL != tok);
++            while(tok);
 +          }
 +        }
 +      }
commit b13c198e1d11e92cd2a57f62fe2263a0e44cfd9d
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Oct 20 10:41:42 2021 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:30 2022 +0200

    upgrade curl to 7.79.1
    
    includes:
    
    CVE-2021-22945: clear the leftovers pointer when sending succeeds
    CVE-2021-22946: do not ignore --ssl-reqd
    CVE-2021-22947: reject STARTTLS server response pipelining
    Change-Id: I0047bdaa7e6e3aed1317eb014d2051a4d5ac5964
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123883
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>
    (cherry picked from commit a08d1dc4ee904428ef6f78208cc2508d3fc3717b)

diff --git a/download.lst b/download.lst
index 590adef208f7..483e1e765de1 100644
--- a/download.lst
+++ b/download.lst
@@ -29,8 +29,8 @@ export CPPUNIT_SHA256SUM := 
3d569869d27b48860210c758c4f313082103a5e58219a7669b52
 export CPPUNIT_TARBALL := cppunit-1.14.0.tar.gz
 export CT2N_SHA256SUM := 
71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
 export CT2N_TARBALL := 
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 
be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5
-export CURL_TARBALL := curl-7.78.0.tar.xz
+export CURL_SHA256SUM := 
0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689
+export CURL_TARBALL := curl-7.79.1.tar.xz
 export EBOOK_SHA256SUM := 
7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
 export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
 export EPOXY_SHA256SUM := 
002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
diff --git a/external/curl/curl-nss.patch.1 b/external/curl/curl-nss.patch.1
index 69fde5f7f236..d4dad7eba77e 100644
--- a/external/curl/curl-nss.patch.1
+++ b/external/curl/curl-nss.patch.1
@@ -1,9 +1,9 @@
 diff -ur curl.org/configure curl/configure
 --- curl.org/configure 2016-03-13 15:14:07.177000076 +0100
 +++ curl/configure     2016-03-13 15:16:44.132000076 +0100
-@@ -24009,7 +24009,7 @@
-       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired 
libraries and compilation flags for NSS." >&5
- $as_echo "$as_me: WARNING: Using hard-wired libraries and compilation flags 
for NSS." >&2;}
+@@ -28216,7 +28216,7 @@
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired 
libraries and compilation flags for NSS." >&5
+ printf "%s\n" "$as_me: WARNING: Using hard-wired libraries and compilation 
flags for NSS." >&2;}
        addld="-L$OPT_NSS/lib"
 -      addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
 +      addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lnssutil3"
diff --git a/external/curl/zlib.patch.0 b/external/curl/zlib.patch.0
index f4a0ad4b152f..e0f579f8675a 100644
--- a/external/curl/zlib.patch.0
+++ b/external/curl/zlib.patch.0
@@ -1,22 +1,22 @@
 --- configure
 +++ configure
-@@ -20709,7 +20709,6 @@
+@@ -22699,7 +22699,6 @@
  clean_CPPFLAGS=$CPPFLAGS
  clean_LDFLAGS=$LDFLAGS
  clean_LIBS=$LIBS
 -ZLIB_LIBS=""
  
  # Check whether --with-zlib was given.
- if test "${with_zlib+set}" = set; then :
-@@ -20718,6 +20719,7 @@
+ if test ${with_zlib+y}
+@@ -22709,6 +22708,7 @@
  
  
  if test "$OPT_ZLIB" = "no" ; then
 +    ZLIB_LIBS=""
-     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
- $as_echo "$as_me: WARNING: zlib disabled" >&2;}
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
+ printf "%s\n" "$as_me: WARNING: zlib disabled" >&2;}
  else
-@@ -20725,6 +20725,21 @@
+@@ -22716,6 +22716,21 @@
      OPT_ZLIB=""
    fi
  
@@ -38,8 +38,8 @@
    if test -z "$OPT_ZLIB" ; then
  
      if test -n "$PKG_CONFIG"; then
-@@ -21005,6 +21020,7 @@
- $as_echo "$as_me: found both libz and libz.h header" >&6;}
+@@ -23011,6 +23026,7 @@
+ printf "%s\n" "$as_me: found both libz and libz.h header" >&6;}
      curl_zlib_msg="enabled"
    fi
 + fi
commit 8723f0f5a0dc22058ee8488da0ca96d8a19dec1d
Author:     Michael Stahl <[email protected]>
AuthorDate: Tue May 10 15:22:17 2022 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:30 2022 +0200

    sw: disable forcepoint93-2.rtf, it loops in layout
    
    Change-Id: I09b40521535cbbcfd07595e272cc530afeb22cf6

diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index d13a29fbc641..a7b48240ca41 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2978,7 +2978,7 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint92) { 
createDoc("forcepoint92
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint93)
 {
 //fails to load    createDoc("forcepoint93-1.rtf");
-    createDoc("forcepoint93-2.rtf");
+//layout loop    createDoc("forcepoint93-2.rtf");
 }
 
 #if 0 // no createSwWebDoc
commit 89a3605b26a5c939ee713266ff9bd6aa6776497f
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sun Apr 24 21:22:47 2022 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    ofz#46905 Null-dereference
    
    Change-Id: I26427ee1e010ce79e40c550459d9f53598570a7b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133291
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 5f1d341779b9a773e3147542f6b80d4b3547bb43)

diff --git a/vcl/source/outdev/textline.cxx b/vcl/source/outdev/textline.cxx
index 4ec59e10c6a8..f4dd135d1080 100644
--- a/vcl/source/outdev/textline.cxx
+++ b/vcl/source/outdev/textline.cxx
@@ -660,6 +660,8 @@ void OutputDevice::ImplDrawStrikeoutChar( long nBaseX, long 
nBaseY,
     int nStrikeStrLen = (nWidth+(nStrikeoutWidth-1)) / nStrikeoutWidth;
     if( nStrikeStrLen > nMaxStrikeStrLen )
         nStrikeStrLen = nMaxStrikeStrLen;
+    else if (nStrikeStrLen < 0)
+        nStrikeStrLen = 0;
 
     // build the strikeout string
     for( int i = nTestStrLen; i < nStrikeStrLen; ++i)
commit bb75f6c0f4855450403b9c31027cd0549fd585bd
Author:     Caolán McNamara <[email protected]>
AuthorDate: Tue Apr 26 16:51:01 2022 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    ofz#47042 previous use of static variable affecting later runs
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133453
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 24c7741adcb373b4de508b16deef56343119df26)
    
    Change-Id: I64fb184e43fb025798781c85c9a0a8e0354b21b0

diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index fa337533b3b3..12eb4960f97f 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -71,7 +71,6 @@
     rendEl("text:span"); \
     tstart = false
 
-static hchar *field = nullptr;
 static char buf[1024];
 
 namespace
@@ -97,12 +96,13 @@ struct HwpReaderPrivate
         bInHeader = false;
         nPnPos = 0;
         pPn = nullptr;
-
+        pField = nullptr;
     }
     bool bFirstPara;
     bool bInBody;
     bool bInHeader;
     ShowPageNum *pPn;
+    hchar *pField;
     int nPnPos;
 };
 
@@ -2932,7 +2932,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool 
bParaStart)
                 firstspace = 1;
                 if( hbox->type[0] == 4 && hbox->type[1] == 0 )
                 {
-                     field = hbox->str3.get();
+                     d->pField = hbox->str3.get();
                 }
                 else{
                      makeFieldCode(str, hbox);
@@ -2945,7 +2945,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool 
bParaStart)
                 if( hbox->type[0] == 4 && hbox->type[1] == 0 )
                 {
                      makeFieldCode(str, hbox);
-                     field = nullptr;
+                     d->pField = nullptr;
                 }
                 infield = false;
                 str.clear();
@@ -3113,8 +3113,8 @@ void HwpReader::makeFieldCode(hchar_string const & rStr, 
FieldCode const *hbox)
     if( hbox->type[0] == 4 && hbox->type[1] == 0 )
     {
         padd("text:placeholder-type", sXML_CDATA, "text");
-        if( field )
-              padd("text:description", sXML_CDATA, 
reinterpret_cast<sal_Unicode const *>(hconv(field)));
+        if (d->pField)
+              padd("text:description", sXML_CDATA, 
reinterpret_cast<sal_Unicode const *>(hconv(d->pField)));
         rstartEl( "text:placeholder", mxList.get());
         mxList->clear();
         rchars( reinterpret_cast<sal_Unicode const *>(rStr.c_str()) );
commit 93989d77d301cd330527c99c307ec3e4148cc576
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Apr 9 09:56:23 2022 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    ofz#46526 Abrt
    
    Change-Id: Iaec536b0989c4ec11b39b1534c7798e46715d7a0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132710
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 67851564d74bc8108e4802abfeb4fb88f4adf71d)

diff --git a/connectivity/source/drivers/dbase/DTable.cxx 
b/connectivity/source/drivers/dbase/DTable.cxx
index 6bd9ce2bbaf1..f3c15904072e 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -917,7 +917,7 @@ bool ODbaseTable::fetchRow(OValueRefRow& _rRow, const 
OSQLColumns & _rCols, bool
             {
                 case DataType::DATE:
                 {
-                    if (aStr.getLength() != nLen)
+                    if (nLen < 8 || aStr.getLength() != nLen)
                     {
                         (_rRow->get())[i]->setNull();
                         break;
commit b96c33c84ba3eb39c8f9aa3e723433dc42954645
Author:     Caolán McNamara <[email protected]>
AuthorDate: Tue Mar 22 17:22:22 2022 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    add Initialization Vectors to password storage
    
    old ones default to the current all zero case and continue to work
    as before
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131974
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 192fa1e3bfc6269f2ebb91716471485a56074aea)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132306
    Reviewed-by: Thorsten Behrens <[email protected]>
    (cherry picked from commit ab77587ec300f5c30084471000663c46ddf25dad)
    
    Change-Id: I6fe3b02fafcce1b5e7133e77e76a5118177d77af

diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 51a046b19357..7a6ab57c2bb7 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -27,6 +27,11 @@
       <info>
         <desc>Contains a container for passwords.</desc>
       </info>
+      <prop oor:name="InitializationVector" oor:type="xs:string">
+        <info>
+          <desc>Contains an initialization vector for the password 
encryption.</desc>
+        </info>
+      </prop>
       <prop oor:name="Password" oor:type="xs:string" oor:localized="false">
         <info>
           <desc>Contains a password encoded with the master password.</desc>
@@ -923,6 +928,11 @@
         </info>
         <value>false</value>
       </prop>
+      <prop oor:name="MasterInitializationVector" oor:type="xs:string">
+        <info>
+          <desc>Contains an initialization vector for the master password 
encryption.</desc>
+        </info>
+      </prop>
       <prop oor:name="Master" oor:type="xs:string" oor:nillable="false">
         <info>
           <desc>Contains the master password encrypted by itself.</desc>
diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx 
b/svl/source/passwordcontainer/passwordcontainer.cxx
index ff0b40df4016..380188ef495c 100644
--- a/svl/source/passwordcontainer/passwordcontainer.cxx
+++ b/svl/source/passwordcontainer/passwordcontainer.cxx
@@ -184,15 +184,18 @@ PassMap StorageItem::getInfo()
 
     Sequence< OUString > aNodeNames     = ConfigItem::GetNodeNames( "Store" );
     sal_Int32 aNodeCount = aNodeNames.getLength();
-    Sequence< OUString > aPropNames( aNodeCount );
+    Sequence< OUString > aPropNames( aNodeCount * 2);
 
     std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.begin(),
         [](const OUString& rName) -> OUString {
             return "Store/Passwordstorage['" + rName + "']/Password"; });
+    std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.getArray() 
+ aNodeCount,
+        [](const OUString& rName) -> OUString {
+            return "Store/Passwordstorage['" + rName + 
"']/InitializationVector"; });
 
     Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aPropNames );
 
-    if( aPropertyValues.getLength() != aNodeCount )
+    if( aPropertyValues.getLength() != aNodeCount * 2)
     {
         OSL_FAIL( "Problems during reading" );
         return aResult;
@@ -208,14 +211,16 @@ PassMap StorageItem::getInfo()
             OUString aName = aUrlUsr[1];
 
             OUString aEPasswd;
+            OUString aIV;
             aPropertyValues[aNodeInd] >>= aEPasswd;
+            aPropertyValues[aNodeInd + aNodeCount] >>= aIV;
 
             PassMap::iterator aIter = aResult.find( aUrl );
             if( aIter != aResult.end() )
-                aIter->second.emplace_back( aName, aEPasswd );
+                aIter->second.emplace_back( aName, aEPasswd, aIV );
             else
             {
-                NamePassRecord aNewRecord( aName, aEPasswd );
+                NamePassRecord aNewRecord( aName, aEPasswd, aIV );
                 std::vector< NamePassRecord > listToAdd( 1, aNewRecord );
 
                 aResult.insert( PairUrlRecord( aUrl, listToAdd ) );
@@ -279,17 +284,19 @@ sal_Int32 StorageItem::getStorageVersion()
     return nResult;
 }
 
-bool StorageItem::getEncodedMP( OUString& aResult )
+bool StorageItem::getEncodedMP( OUString& aResult, OUString& aResultIV )
 {
     if( hasEncoded )
     {
         aResult = mEncoded;
+        aResultIV = mEncodedIV;
         return true;
     }
 
-    Sequence< OUString > aNodeNames( 2 );
+    Sequence< OUString > aNodeNames( 3 );
     aNodeNames[0] = "HasMaster";
     aNodeNames[1] = "Master";
+    aNodeNames[2] = "MasterInitializationVector";
 
     Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames );
 
@@ -301,32 +308,37 @@ bool StorageItem::getEncodedMP( OUString& aResult )
 
     aPropertyValues[0] >>= hasEncoded;
     aPropertyValues[1] >>= mEncoded;
+    aPropertyValues[2] >>= mEncodedIV;
 
     aResult = mEncoded;
+    aResultIV = mEncodedIV;
 
     return hasEncoded;
 }
 
 
-void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty )
+void StorageItem::setEncodedMP( const OUString& aEncoded, const OUString& 
aEncodedIV, bool bAcceptEmpty )
 {
-    Sequence< OUString > sendNames(3);
-    Sequence< uno::Any > sendVals(3);
+    Sequence< OUString > sendNames(4);
+    Sequence< uno::Any > sendVals(4);
 
     sendNames[0] = "HasMaster";
     sendNames[1] = "Master";
-    sendNames[2] = "StorageVersion";
+    sendNames[2] = "MasterInitializationVector";
+    sendNames[3] = "StorageVersion";
 
     bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty );
     sendVals[0] <<= bHasMaster;
     sendVals[1] <<= aEncoded;
-    sendVals[2] <<= nCurrentStorageVersion;
+    sendVals[2] <<= aEncodedIV;
+    sendVals[3] <<= nCurrentStorageVersion;
 
     ConfigItem::SetModified();
     ConfigItem::PutProperties( sendNames, sendVals );
 
     hasEncoded = bHasMaster;
     mEncoded = aEncoded;
+    mEncodedIV = aEncodedIV;
 }
 
 
@@ -362,11 +374,13 @@ void StorageItem::update( const OUString& aURL, const 
NamePassRecord& aRecord )
     forIndex.push_back( aURL );
     forIndex.push_back( aRecord.GetUserName() );
 
-    Sequence< beans::PropertyValue > sendSeq(1);
+    Sequence< beans::PropertyValue > sendSeq(2);
 
-    sendSeq[0].Name  = "Store/Passwordstorage['" + createIndex( forIndex ) + 
"']/Password";
+    sendSeq[0].Name  = "Store/Passwordstorage['" + createIndex( { aURL, 
aRecord.GetUserName() } ) + "']/InitializationVector";
+    sendSeq[0].Value <<= aRecord.GetPersistentIV();
 
-    sendSeq[0].Value <<= aRecord.GetPersPasswords();
+    sendSeq[1].Name  = "Store/Passwordstorage['" + createIndex( forIndex ) + 
"']/Password";
+    sendSeq[1].Value <<= aRecord.GetPersPasswords();
 
     ConfigItem::SetModified();
     ConfigItem::SetSetProperties( "Store", sendSeq );
@@ -427,7 +441,7 @@ void SAL_CALL PasswordContainer::disposing( const 
EventObject& )
     }
 }
 
-std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& 
aLine, const OUString& aMasterPasswd, css::task::PasswordRequestMode mode )
+std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& 
aLine, const OUString& aIV, const OUString& aMasterPasswd, 
css::task::PasswordRequestMode mode )
 {
     if( !aMasterPasswd.isEmpty() )
     {
@@ -442,9 +456,16 @@ std::vector< OUString > 
PasswordContainer::DecodePasswords( const OUString& aLin
             for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
                 code[ ind ] = static_cast<char>(aMasterPasswd.copy( ind*2, 2 
).toUInt32(16));
 
+            unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0};
+            if (!aIV.isEmpty())
+            {
+                for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
+                    iv[ ind ] = static_cast<char>(aIV.copy( ind*2, 2 
).toUInt32(16));
+            }
+
             rtlCipherError result = rtl_cipher_init (
                     aDecoder, rtl_Cipher_DirectionDecode,
-                    code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 );
+                    code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 );
 
             if( result == rtl_Cipher_E_None )
             {
@@ -477,7 +498,7 @@ std::vector< OUString > PasswordContainer::DecodePasswords( 
const OUString& aLin
         "Can't decode!", css::uno::Reference<css::uno::XInterface>(), mode);
 }
 
-OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& 
lines, const OUString& aMasterPasswd )
+OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& 
lines, const OUString& aIV, const OUString& aMasterPasswd)
 {
     if( !aMasterPasswd.isEmpty() )
     {
@@ -494,9 +515,16 @@ OUString PasswordContainer::EncodePasswords(const 
std::vector< OUString >& lines
             for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
                 code[ ind ] = static_cast<char>(aMasterPasswd.copy( ind*2, 2 
).toUInt32(16));
 
+            unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0};
+            if (!aIV.isEmpty())
+            {
+                for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
+                    iv[ ind ] = static_cast<char>(aIV.copy( ind*2, 2 
).toUInt32(16));
+            }
+
             rtlCipherError result = rtl_cipher_init (
                     aEncoder, rtl_Cipher_DirectionEncode,
-                    code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 );
+                    code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 );
 
             if( result == rtl_Cipher_E_None )
             {
@@ -564,7 +592,7 @@ void PasswordContainer::UpdateVector( const OUString& aURL, 
std::vector< NamePas
 
             if( aRecord.HasPasswords( PERSISTENT_RECORD ) )
             {
-                aNPIter.SetPersPasswords( aRecord.GetPersPasswords() );
+                aNPIter.SetPersPasswords( aRecord.GetPersPasswords(), 
aRecord.GetPersistentIV() );
 
                 if( writeFile )
                 {
@@ -597,7 +625,8 @@ UserRecord PasswordContainer::CopyToUserRecord( const 
NamePassRecord& aRecord, b
     {
         try
         {
-            ::std::vector< OUString > aDecodedPasswords = DecodePasswords( 
aRecord.GetPersPasswords(), GetMasterPassword( aHandler ), 
css::task::PasswordRequestMode_PASSWORD_ENTER );
+            ::std::vector< OUString > aDecodedPasswords = DecodePasswords( 
aRecord.GetPersPasswords(), aRecord.GetPersistentIV(),
+                                                                           
GetMasterPassword( aHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER );
             aPasswords.insert( aPasswords.end(), aDecodedPasswords.begin(), 
aDecodedPasswords.end() );
         }
         catch( NoMasterException& )
@@ -642,6 +671,19 @@ void SAL_CALL PasswordContainer::addPersistent( const 
OUString& Url, const OUStr
     PrivateAdd( Url, UserName, Passwords, PERSISTENT_RECORD, aHandler );
 }
 
+OUString PasswordContainer::createIV()
+{
+    rtlRandomPool randomPool = mRandomPool.get();
+    unsigned char iv[RTL_DIGEST_LENGTH_MD5];
+    rtl_random_getBytes(randomPool, iv, RTL_DIGEST_LENGTH_MD5);
+    OUStringBuffer aBuffer;
+    for (sal_uInt8 i : iv)
+    {
+        aBuffer.append(OUString::number(i >> 4, 16));
+        aBuffer.append(OUString::number(i & 15, 16));
+    }
+    return aBuffer.makeStringAndClear();
+}
 
 void PasswordContainer::PrivateAdd( const OUString& Url, const OUString& 
UserName, const Sequence< OUString >& Passwords, char Mode, const Reference< 
XInteractionHandler >& aHandler )
 {
@@ -649,7 +691,11 @@ void PasswordContainer::PrivateAdd( const OUString& Url, 
const OUString& UserNam
     ::std::vector< OUString > aStorePass = comphelper::sequenceToContainer< 
std::vector<OUString> >( Passwords );
 
     if( Mode == PERSISTENT_RECORD )
-        aRecord.SetPersPasswords( EncodePasswords( aStorePass, 
GetMasterPassword( aHandler ) ) );
+    {
+        OUString sIV = createIV();
+        OUString sEncodedPasswords = EncodePasswords( aStorePass, sIV, 
GetMasterPassword( aHandler ) );
+        aRecord.SetPersPasswords( sEncodedPasswords, sIV );
+    }
     else if( Mode == MEMORY_RECORD )
         aRecord.SetMemPasswords( aStorePass );
     else
@@ -842,10 +888,10 @@ OUString const & PasswordContainer::GetMasterPassword( 
const Reference< XInterac
 
     if( m_aMasterPasswd.isEmpty() && aHandler.is() )
     {
-        OUString aEncodedMP;
+        OUString aEncodedMP, aEncodedMPIV;
         bool bDefaultPassword = false;
 
-        if( !m_pStorageFile->getEncodedMP( aEncodedMP ) )
+        if( !m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) )
             aRMode = PasswordRequestMode_PASSWORD_CREATE;
         else if ( aEncodedMP.isEmpty() )
         {
@@ -867,14 +913,15 @@ OUString const & PasswordContainer::GetMasterPassword( 
const Reference< XInterac
                         m_aMasterPasswd = aPass;
                         std::vector< OUString > aMaster( 1, m_aMasterPasswd );
 
-                        m_pStorageFile->setEncodedMP( EncodePasswords( 
aMaster, m_aMasterPasswd ) );
+                        OUString sIV = createIV();
+                        m_pStorageFile->setEncodedMP( EncodePasswords( 
aMaster, sIV, m_aMasterPasswd ), sIV );
                     }
                     else
                     {
                         if (m_pStorageFile->getStorageVersion() == 0)
                             aPass = ReencodeAsOldHash(aPass);
 
-                        std::vector< OUString > aRM( DecodePasswords( 
aEncodedMP, aPass, aRMode ) );
+                        std::vector< OUString > aRM( DecodePasswords( 
aEncodedMP, aEncodedMPIV, aPass, aRMode ) );
                         if( aRM.empty() || aPass != aRM[0] )
                         {
                             bAskAgain = true;
@@ -1031,7 +1078,8 @@ Sequence< UrlRecord > SAL_CALL 
PasswordContainer::getAllPersistent( const Refere
             {
                 sal_Int32 oldLen = aUsers.getLength();
                 aUsers.realloc( oldLen + 1 );
-                aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), 
comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), 
GetMasterPassword( xHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ) 
) );
+                aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), 
comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), 
aNP.GetPersistentIV(),
+                                                                               
                                     GetMasterPassword( xHandler ), 
css::task::PasswordRequestMode_PASSWORD_ENTER ) ) );
             }
 
         if( aUsers.hasElements() )
@@ -1048,12 +1096,12 @@ Sequence< UrlRecord > SAL_CALL 
PasswordContainer::getAllPersistent( const Refere
 sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const 
uno::Reference< task::XInteractionHandler >& xHandler )
 {
     bool bResult = false;
-    OUString aEncodedMP;
+    OUString aEncodedMP, aEncodedMPIV;
     uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler;
     ::osl::MutexGuard aGuard( mMutex );
 
     // the method should fail if there is no master password
-    if( m_pStorageFile && m_pStorageFile->useStorage() && 
m_pStorageFile->getEncodedMP( aEncodedMP ) )
+    if( m_pStorageFile && m_pStorageFile->useStorage() && 
m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) )
     {
         if ( aEncodedMP.isEmpty() )
         {
@@ -1122,8 +1170,8 @@ sal_Bool SAL_CALL 
PasswordContainer::changeMasterPassword( const uno::Reference<
 
         bool bCanChangePassword = true;
         // if there is already a stored master password it should be entered 
by the user before the change happen
-        OUString aEncodedMP;
-        if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( 
aEncodedMP ) )
+        OUString aEncodedMP, aEncodedMPIV;
+        if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( 
aEncodedMP, aEncodedMPIV ) )
             bCanChangePassword = authorizateWithMasterPassword( xTmpHandler );
 
         if ( bCanChangePassword )
@@ -1142,7 +1190,8 @@ sal_Bool SAL_CALL 
PasswordContainer::changeMasterPassword( const uno::Reference<
                 // store the new master password
                 m_aMasterPasswd = aPass;
                 std::vector< OUString > aMaster( 1, m_aMasterPasswd );
-                m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, 
m_aMasterPasswd ) );
+                OUString aIV = createIV();
+                m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, aIV, 
m_aMasterPasswd ), aIV );
 
                 // store all the entries with the new password
                 for ( const auto& rURL : aPersistent )
@@ -1167,7 +1216,7 @@ void SAL_CALL PasswordContainer::removeMasterPassword()
     if ( m_pStorageFile )
     {
         m_aMasterPasswd.clear();
-        m_pStorageFile->setEncodedMP( OUString() ); // let the master password 
be removed from configuration
+        m_pStorageFile->setEncodedMP( OUString(), OUString() ); // let the 
master password be removed from configuration
     }
 }
 
@@ -1178,8 +1227,8 @@ sal_Bool SAL_CALL PasswordContainer::hasMasterPassword(  )
     if ( !m_pStorageFile )
         throw uno::RuntimeException();
 
-    OUString aEncodedMP;
-    return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( 
aEncodedMP ) );
+    OUString aEncodedMP, aEncodedMPIV;
+    return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( 
aEncodedMP, aEncodedMPIV ) );
 }
 
 sal_Bool SAL_CALL PasswordContainer::allowPersistentStoring( sal_Bool bAllow )
@@ -1226,8 +1275,8 @@ sal_Bool SAL_CALL 
PasswordContainer::useDefaultMasterPassword( const uno::Refere
 
         bool bCanChangePassword = true;
         // if there is already a stored nondefault master password it should 
be entered by the user before the change happen
-        OUString aEncodedMP;
-        if( m_pStorageFile->getEncodedMP( aEncodedMP ) && 
!aEncodedMP.isEmpty() )
+        OUString aEncodedMP, aEncodedMPIV;
+        if( m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) && 
!aEncodedMP.isEmpty() )
             bCanChangePassword = authorizateWithMasterPassword( xTmpHandler );
 
         if ( bCanChangePassword )
@@ -1244,7 +1293,7 @@ sal_Bool SAL_CALL 
PasswordContainer::useDefaultMasterPassword( const uno::Refere
 
                 // store the empty string to flag the default master password
                 m_aMasterPasswd = aPass;
-                m_pStorageFile->setEncodedMP( OUString(), true );
+                m_pStorageFile->setEncodedMP( OUString(), OUString(), true );
 
                 // store all the entries with the new password
                 for ( const auto& rURL : aPersistent )
@@ -1268,8 +1317,8 @@ sal_Bool SAL_CALL 
PasswordContainer::isDefaultMasterPasswordUsed()
     if ( !m_pStorageFile )
         throw uno::RuntimeException();
 
-    OUString aEncodedMP;
-    return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( 
aEncodedMP ) && aEncodedMP.isEmpty() );
+    OUString aEncodedMP, aEncodedMPIV;
+    return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( 
aEncodedMP, aEncodedMPIV ) && aEncodedMP.isEmpty() );
 }
 
 
diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx 
b/svl/source/passwordcontainer/passwordcontainer.hxx
index cf5c717d0c9e..4e3a6629139e 100644
--- a/svl/source/passwordcontainer/passwordcontainer.hxx
+++ b/svl/source/passwordcontainer/passwordcontainer.hxx
@@ -33,6 +33,7 @@
 #include <unotools/configitem.hxx>
 #include <ucbhelper/interactionrequest.hxx>
 
+#include <rtl/random.h>
 #include <rtl/ref.hxx>
 #include <osl/mutex.hxx>
 
@@ -51,11 +52,12 @@ class NamePassRecord
     ::std::vector< OUString >                      m_aMemPass;
 
     // persistent passwords are encrypted in one string
-    bool                                                  m_bHasPersPass;
+    bool                                           m_bHasPersPass;
     OUString                                       m_aPersPass;
+    OUString                                       m_aPersistentIV;
 
     void InitArrays( bool bHasMemoryList, const ::std::vector< OUString >& 
aMemoryList,
-                     bool bHasPersistentList, const OUString& aPersistentList )
+                     bool bHasPersistentList, const OUString& aPersistentList, 
const OUString& aPersistentIV )
     {
         m_bHasMemPass = bHasMemoryList;
         if ( bHasMemoryList )
@@ -63,7 +65,10 @@ class NamePassRecord
 
         m_bHasPersPass = bHasPersistentList;
         if ( bHasPersistentList )
+        {
             m_aPersPass = aPersistentList;
+            m_aPersistentIV = aPersistentIV;
+        }
     }
 
 public:
@@ -75,11 +80,12 @@ public:
     {
     }
 
-    NamePassRecord( const OUString& aName, const OUString& aPersistentList )
+    NamePassRecord( const OUString& aName, const OUString& aPersistentList, 
const OUString& aPersistentIV )
         : m_aName( aName )
         , m_bHasMemPass( false )
         , m_bHasPersPass( true )
         , m_aPersPass( aPersistentList )
+        , m_aPersistentIV( aPersistentIV )
     {
     }
 
@@ -88,7 +94,8 @@ public:
         , m_bHasMemPass( false )
         , m_bHasPersPass( false )
     {
-        InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, 
aRecord.m_bHasPersPass, aRecord.m_aPersPass );
+        InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass,
+                    aRecord.m_bHasPersPass, aRecord.m_aPersPass, 
aRecord.m_aPersistentIV );
     }
 
     NamePassRecord& operator=( const NamePassRecord& aRecord )
@@ -99,7 +106,9 @@ public:
 
             m_aMemPass.clear();
             m_aPersPass.clear();
-            InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, 
aRecord.m_bHasPersPass, aRecord.m_aPersPass );
+            m_aPersistentIV.clear();
+            InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass,
+                        aRecord.m_bHasPersPass, aRecord.m_aPersPass, 
aRecord.m_aPersistentIV );
         }
         return *this;
     }
@@ -135,15 +144,24 @@ public:
         return OUString();
     }
 
+    OUString GetPersistentIV() const
+    {
+        if ( m_bHasPersPass )
+            return m_aPersistentIV;
+
+        return OUString();
+    }
+
     void SetMemPasswords( const ::std::vector< OUString >& aMemList )
     {
         m_aMemPass = aMemList;
         m_bHasMemPass = true;
     }
 
-    void SetPersPasswords( const OUString& aPersList )
+    void SetPersPasswords( const OUString& aPersList, const OUString& aPersIV )
     {
         m_aPersPass = aPersList;
+        m_aPersistentIV = aPersIV;
         m_bHasPersPass = true;
     }
 
@@ -158,6 +176,7 @@ public:
         {
             m_bHasPersPass = false;
             m_aPersPass.clear();
+            m_aPersistentIV.clear();
         }
     }
 
@@ -181,6 +200,7 @@ private:
     PasswordContainer*     mainCont;
     bool                   hasEncoded;
     OUString        mEncoded;
+    OUString        mEncodedIV;
 
     virtual void            ImplCommit() override;
 
@@ -201,8 +221,8 @@ public:
 
     sal_Int32 getStorageVersion();
 
-    bool getEncodedMP( OUString& aResult );
-    void setEncodedMP( const OUString& aResult, bool bAcceptEnmpty = false );
+    bool getEncodedMP( OUString& aResult, OUString& aResultIV );
+    void setEncodedMP( const OUString& aResult, const OUString& aResultIV, 
bool bAcceptEmpty = false );
     void setUseStorage( bool bUse );
     bool useStorage();
 
@@ -223,6 +243,29 @@ private:
     css::uno::Reference< css::lang::XComponent > mComponent;
     SysCredentialsConfig mUrlContainer;
 
+    class RandomPool
+    {
+    private:
+        rtlRandomPool m_aRandomPool;
+    public:
+        RandomPool() : m_aRandomPool(rtl_random_createPool())
+        {
+        }
+        rtlRandomPool get()
+        {
+            return m_aRandomPool;
+        }
+        ~RandomPool()
+        {
+            // Clean up random pool memory
+            rtl_random_destroyPool(m_aRandomPool);
+        }
+    };
+
+    RandomPool mRandomPool;
+
+    OUString createIV();
+
     /// @throws css::uno::RuntimeException
     css::uno::Sequence< css::task::UserRecord > CopyToUserRecordSequence(
                                         const ::std::vector< NamePassRecord >& 
original,
@@ -273,10 +316,10 @@ css::task::UrlRecord find(
                               const css::uno::Reference< 
css::task::XInteractionHandler >& Handler );
 
     /// @throws css::uno::RuntimeException
-    static ::std::vector< OUString > DecodePasswords( const OUString& aLine, 
const OUString& aMasterPassword, css::task::PasswordRequestMode mode );
+    static ::std::vector< OUString > DecodePasswords( const OUString& aLine, 
const OUString& aIV, const OUString& aMasterPassword, 
css::task::PasswordRequestMode mode );
 
     /// @throws css::uno::RuntimeException
-    static OUString EncodePasswords(const std::vector< OUString >& lines, 
const OUString& aMasterPassword );
+    static OUString EncodePasswords(const std::vector< OUString >& lines, 
const OUString& aIV, const OUString& aMasterPassword );
 
 public:
     PasswordContainer( const css::uno::Reference< 
css::lang::XMultiServiceFactory >& );
commit cfcc5252fc7a85fe58f9f11ae91a9ad3fabea277
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Mar 23 13:03:30 2022 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    add infobar to prompt to refresh to replace old format
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131976
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit bbd196ff82bda9f66b4ba32a412f10cefe6da60e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132307
    Reviewed-by: Sophie Gautier <[email protected]>
    Reviewed-by: Christian Lohmaier <[email protected]>
    (cherry picked from commit c5d01b11db3c83cb4a89d3b388d78e20dd3990b5)
    
    Change-Id: Id99cbf2b50a4ebf289dae6fc67e22e20afcda35b

diff --git a/include/sfx2/strings.hrc b/include/sfx2/strings.hrc
index 7cd612a32a4b..496a44513a7c 100644
--- a/include/sfx2/strings.hrc
+++ b/include/sfx2/strings.hrc
@@ -298,6 +298,8 @@
 #define STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK   
NC_("STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK", "The certificate could not be 
validated and the document is only partially signed.")
 #define STR_SIGNATURE_OK                        NC_("STR_SIGNATURE_OK", "This 
document is digitally signed and the signature is valid.")
 #define STR_SIGNATURE_SHOW                      NC_("STR_SIGNATURE_SHOW", 
"Show Signatures")
+#define STR_REFRESH_MASTER_PASSWORD             
NC_("STR_REFRESH_MASTER_PASSWORD", "The master password is stored in an 
outdated format, you should refresh it")
+#define STR_REFRESH_PASSWORD                    NC_("STR_REFRESH_PASSWORD", 
"Refresh Password")
 
 #define STR_CLOSE_PANE                          NC_("STR_CLOSE_PANE", "Close 
Pane")
 #define STR_SFX_DOCK                            NC_("STR_SFX_DOCK", "Dock")
diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx
index 250515eea0de..2ef4181dd5d5 100644
--- a/include/sfx2/viewfrm.hxx
+++ b/include/sfx2/viewfrm.hxx
@@ -64,6 +64,7 @@ protected:
     DECL_LINK(WhatsNewHandler, Button*, void);
     DECL_LINK(SwitchReadOnlyHandler, Button*, void);
     DECL_LINK(SignDocumentHandler, Button*, void);
+    DECL_DLLPRIVATE_LINK(RefreshMasterPasswordHdl, Button*, void);
     SAL_DLLPRIVATE void KillDispatcher_Impl();
 
     virtual                 ~SfxViewFrame() override;
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 75ec246b4fb6..456915a8cfd6 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -33,6 +33,7 @@
 #include <com/sun/star/frame/XLayoutManager.hpp>
 #include <com/sun/star/frame/XComponentLoader.hpp>
 #include <com/sun/star/drawing/XShapes.hpp>
+#include <com/sun/star/task/PasswordContainer.hpp>
 #include <officecfg/Office/Common.hxx>
 #include <officecfg/Setup.hxx>
 #include <toolkit/helper/vclunohelper.hxx>
@@ -1369,6 +1370,24 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, 
const SfxHint& rHint )
                     }
                 } //bShowTipOfTheDay
 
+                if (officecfg::Office::Common::Passwords::HasMaster::get() &&
+                    
officecfg::Office::Common::Passwords::StorageVersion::get() == 0)
+                {
+                    // master password stored in deprecated format
+                    VclPtr<SfxInfoBarWindow> pOldMasterPasswordInfoBar =
+                        AppendInfoBar("oldmasterpassword", "",
+                                      SfxResId(STR_REFRESH_MASTER_PASSWORD), 
InfobarType::DANGER, false);
+                    if (pOldMasterPasswordInfoBar)
+                    {
+                        VclPtrInstance<PushButton> const xBtn(&GetWindow());
+                        xBtn->SetText(SfxResId(STR_REFRESH_PASSWORD));
+                        xBtn->SetSizePixel(xBtn->GetOptimalSize());
+                        xBtn->SetClickHdl(LINK(this,
+                           SfxViewFrame, RefreshMasterPasswordHdl));
+                        pOldMasterPasswordInfoBar->addButton(xBtn);
+                    }
+                }
+
                 // read-only infobar if necessary
                 const SfxViewShell *pVSh;
                 const SfxShell *pFSh;
@@ -1517,6 +1536,27 @@ IMPL_LINK_NOARG(SfxViewFrame, SignDocumentHandler, 
Button*, void)
     GetDispatcher()->Execute(SID_SIGNATURE);
 }
 
+IMPL_LINK_NOARG(SfxViewFrame, RefreshMasterPasswordHdl, Button*, void)
+{
+    bool bChanged = false;
+    try
+    {
+        Reference< task::XPasswordContainer2 > xMasterPasswd(
+            
task::PasswordContainer::create(comphelper::getProcessComponentContext()));
+
+        css::uno::Reference<css::frame::XFrame> xFrame = 
GetFrame().GetFrameInterface();
+        css::uno::Reference<css::awt::XWindow> xContainerWindow = 
xFrame->getContainerWindow();
+
+        uno::Reference<task::XInteractionHandler> 
xTmpHandler(task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(),
+                                                              
xContainerWindow));
+        bChanged = xMasterPasswd->changeMasterPassword(xTmpHandler);
+    }
+    catch (const Exception&)
+    {}
+    if (bChanged)
+        RemoveInfoBar(u"oldmasterpassword");
+}
+
 void SfxViewFrame::Construct_Impl( SfxObjectShell *pObjSh )
 {
     m_pImpl->bResizeInToOut = true;
commit 5d35ad5d008eba047942ce35aec8b738fdff60cd
Author:     Caolán McNamara <[email protected]>
AuthorDate: Mon Mar 21 20:58:34 2022 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:29 2022 +0200

    make hash encoding match decoding
    
    Seeing as old versions of the hash may be in the users config, add a
    StorageVersion field to the office config Passwords section which
    defaults to 0 to indicate the old hash is in use.
    
    Try the old varient when StorageVersion is 0. When a new encoded master
    password it set write StorageVersion of 1 to indicate a new hash is in
    use and use the new style when StorageVersion is 1.
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132080
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>
    (cherry picked from commit e890f54dbac57f3ab5acf4fbd31222095d3e8ab6)
    
    svl: fix crash if user cancels/closes master password dialog
    
    (regression from d7ba5614d90381d68f880ca7e7c5ef8bbb1b1c43)
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133932
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit bbb8617ece6d946957c2eb96287081029bce530f)
    
    Change-Id: I3174c37a5891bfc849984e0ec5c2c392b9c6e7b1

diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 0adfd7a24e26..51a046b19357 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -911,6 +911,12 @@
         </info>
         <value>false</value>
       </prop>
+      <prop oor:name="StorageVersion" oor:type="xs:int" oor:nillable="false">
+        <info>
+          <desc>Specifies what version of encoding scheme the password 
container uses.</desc>
+        </info>
+        <value>0</value>
+      </prop>
       <prop oor:name="HasMaster" oor:type="xs:boolean" oor:nillable="false">
         <info>
           <desc>Specifies if there is a valid master password.</desc>
diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx 
b/svl/source/passwordcontainer/passwordcontainer.cxx
index 02947cd3892c..ff0b40df4016 100644
--- a/svl/source/passwordcontainer/passwordcontainer.cxx
+++ b/svl/source/passwordcontainer/passwordcontainer.cxx
@@ -17,6 +17,8 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+#include <sal/log.hxx>
 
 #include "passwordcontainer.hxx"
 
@@ -259,6 +261,23 @@ bool StorageItem::useStorage()
     return aResult;
 }
 
+sal_Int32 StorageItem::getStorageVersion()
+{
+    Sequence<OUString> aNodeNames { "StorageVersion" };
+
+    Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames );
+
+    if( aPropertyValues.getLength() != aNodeNames.getLength() )
+    {
+        OSL_FAIL( "Problems during reading" );
+        return 0;
+    }
+
+    sal_Int32 nResult = 0;
+    aPropertyValues[0] >>= nResult;
+
+    return nResult;
+}
 
 bool StorageItem::getEncodedMP( OUString& aResult )
 {
@@ -291,15 +310,17 @@ bool StorageItem::getEncodedMP( OUString& aResult )
 
 void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty )
 {
-    Sequence< OUString > sendNames(2);
-    Sequence< uno::Any > sendVals(2);
+    Sequence< OUString > sendNames(3);
+    Sequence< uno::Any > sendVals(3);
 
     sendNames[0] = "HasMaster";
     sendNames[1] = "Master";
+    sendNames[2] = "StorageVersion";
 
     bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty );
     sendVals[0] <<= bHasMaster;
     sendVals[1] <<= aEncoded;
+    sendVals[2] <<= nCurrentStorageVersion;
 
     ConfigItem::SetModified();
     ConfigItem::PutProperties( sendNames, sendVals );
@@ -800,6 +821,18 @@ OUString PasswordContainer::RequestPasswordFromUser( 
PasswordRequestMode aRMode,
     return aResult;
 }
 
+// Mangle the key to match an old bug
+static OUString ReencodeAsOldHash(const OUString& rPass)
+{
+    OUStringBuffer aBuffer;
+    for (int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ++ind)
+    {
+        unsigned char i = static_cast<char>(rPass.copy(ind * 2, 
2).toUInt32(16));
+        aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4)));
+        aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15)));
+    }
+    return aBuffer.makeStringAndClear();
+}
 
 OUString const & PasswordContainer::GetMasterPassword( const Reference< 
XInteractionHandler >& aHandler )
 {
@@ -838,6 +871,9 @@ OUString const & PasswordContainer::GetMasterPassword( 
const Reference< XInterac
                     }
                     else
                     {
+                        if (m_pStorageFile->getStorageVersion() == 0)
+                            aPass = ReencodeAsOldHash(aPass);
+
                         std::vector< OUString > aRM( DecodePasswords( 
aEncodedMP, aPass, aRMode ) );
                         if( aRM.empty() || aPass != aRM[0] )
                         {
@@ -1042,6 +1078,13 @@ sal_Bool SAL_CALL 
PasswordContainer::authorizateWithMasterPassword( const uno::R
 
                 do {
                     aPass = RequestPasswordFromUser( aRMode, xTmpHandler );
+
+
+                    if (!aPass.isEmpty() && 
m_pStorageFile->getStorageVersion() == 0)
+                    {
+                        aPass = ReencodeAsOldHash(aPass);
+                    }
+
                     bResult = ( !aPass.isEmpty() && aPass == m_aMasterPasswd );
                     aRMode = PasswordRequestMode_PASSWORD_REENTER; // further 
questions with error notification
                 } while( !bResult && !aPass.isEmpty() );
diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx 
b/svl/source/passwordcontainer/passwordcontainer.hxx
index 09fb7e03629d..cf5c717d0c9e 100644
--- a/svl/source/passwordcontainer/passwordcontainer.hxx
+++ b/svl/source/passwordcontainer/passwordcontainer.hxx
@@ -167,6 +167,10 @@ public:
 typedef ::std::pair< const OUString, ::std::vector< NamePassRecord > > 
PairUrlRecord;
 typedef ::std::map< OUString, ::std::vector< NamePassRecord > > PassMap;
 
+// org.openoffice.Office.Common/Passwords/StorageVersion bump if details of
+// how password details are saved changes. Enables migration from previous
+// schemes.
+constexpr sal_Int32 nCurrentStorageVersion = 1;
 
 class PasswordContainer;
 
@@ -195,6 +199,8 @@ public:
     void remove( const OUString& url, const OUString& rec );
     void clear();
 
+    sal_Int32 getStorageVersion();
+
     bool getEncodedMP( OUString& aResult );
     void setEncodedMP( const OUString& aResult, bool bAcceptEnmpty = false );
     void setUseStorage( bool bUse );
diff --git a/uui/source/iahndl-authentication.cxx 
b/uui/source/iahndl-authentication.cxx
index 4835a485dd2a..5764e62cb1c6 100644
--- a/uui/source/iahndl-authentication.cxx
+++ b/uui/source/iahndl-authentication.cxx
@@ -436,8 +436,9 @@ executeMasterPasswordDialog(
     OUStringBuffer aBuffer;
     for (sal_uInt8 i : aKey)
     {
-        aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4)));
-        aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15)));
+        // match PasswordContainer::DecodePasswords aMasterPasswd.copy(index * 
2, 2).toUInt32(16));
+        aBuffer.append(OUString::number(i >> 4, 16));
+        aBuffer.append(OUString::number(i & 15, 16));
     }
     rInfo.SetPassword(aBuffer.makeStringAndClear());
 }
commit 643bbf11d24d5534e4159fcc1a1ff6044f3e90bb
Author:     Michael Stahl <[email protected]>
AuthorDate: Tue Apr 5 21:09:45 2022 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue May 31 15:43:28 2022 +0200

    forcepoint#104 sw: do not delete fieldmark chars in MoveNodeRange()
    
    The problem is that SwXTextTableCursor::mergeRange() wants to move some
    nodes, and the deleteMarks() deletes a fieldmark creating a SaveBookmark
    but it contains the positions relative to the CH_TXT_ATR_FIELD* still in
    the text, while deleting the fieldmark of course removes these.
    
    The SaveBookmark would need to adjust the indexes and store the
    separator position too and the vector would need to be restored in
    reverse order.
    
    But every time the SaveBookmarks are created, they are restored as well,
    so it looks simpler to just suppress deleting the CH_TXT_ATR_FIELD* in
    this case, and inserting them too (latter is already done when copying
    text).
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132531
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 5d41c2461642364b7159398024acccbee12f6e3e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132589
    Reviewed-by: Thorsten Behrens <[email protected]>
    (cherry picked from commit c489920f6f497a5bc4a9932eaa8408209b54294c)
    
    Change-Id: I690c6432a38eab6dec10adff74e638f0e52cca55

diff --git a/sw/inc/IDocumentMarkAccess.hxx b/sw/inc/IDocumentMarkAccess.hxx
index a076a6dada66..f3537e913a0d 100644
--- a/sw/inc/IDocumentMarkAccess.hxx
+++ b/sw/inc/IDocumentMarkAccess.hxx
@@ -235,9 +235,12 @@ class IDocumentMarkAccess
 
             @param ppMark
             [in] an iterator pointing to the Mark to be deleted.
+            @param isMoveNodes
+            [in] the mark is deleted only temporarily for a node move, do not
+                 remove fieldmark chars.
         */
         virtual std::unique_ptr<ILazyDeleter>
-            deleteMark(const IDocumentMarkAccess::const_iterator_t& ppMark) =0;
+            deleteMark(const IDocumentMarkAccess::const_iterator_t& ppMark, 
bool isMoveNodes) =0;
 
         /** Deletes a mark.
 
diff --git a/sw/qa/core/data/rtf/pass/forcepoint104.rtf 
b/sw/qa/core/data/rtf/pass/forcepoint104.rtf
new file mode 100644
index 000000000000..2effec385394
--- /dev/null
+++ b/sw/qa/core/data/rtf/pass/forcepoint104.rtf
@@ -0,0 +1,571 @@
+{\rtf1\ansi\deflang1045\ftnbj\uc1\deff1
+{\fonttbl{\f0 \froman \fcharset238 Times New Roman;}{\f1 \fswiss 
\fcharset23838 Arial;}{\f2 \fnil \fcharset238 Wingdings;}{\f3 \froman 
\fcharset23838 Times New Roman;}{\f4 \fswiss \fcharset238 Arial;}{\f5 \fswiss 
\fcharset238 Times New Roman;}{\f6 \fswiss \fcharset23838 
+Lucida Sans;}{\f7 \froman \fcharset238 Symbol;}{\f8 \fswiss \fcharset238 
Lucida Sans;}{\f9 \froman \fcharset238 Times New Roman;}{\f10 \fnil Courier 
New;}}
+{\colortbl ;\red255\green255\blue255 ;\red0\green0\blue0 
;\red0\green64\blue128 ;\red255\green255\blue128 ;\red0\green0\blue255 
;\red0\green0\blue160 ;\red0\green0\blue0 ;\red0\green0\blue0 
;\red0\green0\blue0 ;\red131\green58\blue20 ;\red164\green79\blue36 
+;\red162\green78\blue34 ;\red255\green255\blue255 ;\red254\green255\blue255 
;\red250\green255\blue255 ;\red251\green255\blue255 ;\red27\green10\blue0 
;\red195\green114\blue46 ;\red252\green255\blue255 ;\red249\green255\blue255 
;\red17\green7\blue0 ;\red218\green211\blue185 
+;\red179\green89\blue0 ;\red170\green83\blue0 ;\red209\green110\blue0 
;\red237\green167\blue86 ;\red242\green153\blue51 ;\red220\green127\blue19 
;\red0\green0\blue9 ;\red0\green0\blue2 ;\red0\green32\blue0 ;}
+{\stylesheet{\fs20\cf0\cb1\ulc0 Normal;}{\cs1\f3\fs20\cf0\cb1\ulc0 Default 
Paragraph Font;}{\s2\f3\fs24\cf0\cb1\ulc2 TOC 
1;}{\s3\f3\fs24\cf0\cb1\ulc2\li180 TOC 2;}{\s4\f3\fs24\cf0\cb1\ulc2\li360 TOC 
3;}{\s5\f3\fs24\cf0\cb1\ulc2\li540 TOC 4;}{\s6\f3\fs24\cf0\cb1\ulc2\li720 
+TOC 5;}{\s7\f3\fs24\cf0\cb1\ulc2\li900 TOC 6;}{\s8\f3\fs24\cf0\cb1\ulc2\li1080 
TOC 7;}{\s9\f3\fs24\cf0\cb1\ulc2\li1260 TOC 
8;}{\s10\f3\fs24\cf0\cb1\ulc2\li1440 TOC 
9;}{\s11\f1\fs32\b\cf3\cb1\ulc0\sb240\sa60 Heading 
1;}{\s12\f1\fs28\b\cf3\cb1\ulc0\sb240\sa60\outlinelevel1 
+Heading 2;}{\s13\f1\fs26\b\cf3\cb1\ulc0\sb240\sa60\outlinelevel2 Heading 
3;}{\s14\f3\fs28\b\cf3\cb1\ulc0\sb240\sa60\outlinalevel3 Heading 
4;}{\s15\f3\fs26\b\i\cf3\cb1\ulc0\sb240\sa60\outlinelevel4 Heading 
5;}{\s16\f3\fs22\b\cf3\cb1\ulc0\sb240\sa60\outlinelevel5 
+Heading 6;}{\s17\f3\fs24\cf3\cb1\ulc0\sb240\sa60\outlinelevel6 Heading 
7;}{\s18\f3\fs24\i\cf0\cb1\ulc0\sb240\sa60\outlinelevel7 Heading 
8;}{\s19\f1\fs22\cf3\cb1\ulc0\sb240\sa60\outlinelevel8 Heading 
9;}{\s20\f1\fs32\b\cf0\cb1\ulc0\sb240\sa60\qc 
Title;}{\s21\f3\fs20\cf0\cb1\ulc0\fi-360\li360{\*\pn\pnlvlbody\pnstart1\pndec\ls0\ilvl0\pnhang
+{\pntxta \'2e}}\ls0\ilvl0 Numbered 
List;}{\s22\f3\fs20\cf0\cb1\ulc0\fi-360\li360{\*\pn\pnlvlblt\ls0\ilvl0\pnhang\pnf7{\pntxtb
 \'b7}}\ls0\ilvl0 Bulleted List;}{\s23\f3\fs20\cf0\cb1\ulc0\sa120 Body 
Text;}{\s24\f3\fs18\cf0\cb1\ulc0\sa120\sl480\slmult1 Body 
+Text 2;}{\s25\f3\fs16\cf0\cb1\ulc0\sa120 Body Text 
3;}{\s26\f3\fs20\cf0\cb1\ulc0 Note Heading;}{\s27\f10\fs20\cf0\cb1\ulc0 Plain 
Text;}{\s28\f3\fs20\b\cf0\cb1\ulc0 Strong;}{\s29\f3\fs20\i\cf0\cb1\ulc0 
Emphasis;}{\s30\f3\fs20\ul\cf5\cb1\ulc0 
Hyperlink;}{\s31\f3\fs20\cf0\cb1\ulc0\tx4320 
+Footer;}{\s32\f3\fs20\cf0\cb1\ulc0\tx4320 Header;}{\s33\f10\fs18\cf0\cb1\ulc0 
Code;}{\cs34\f3\fs20\i\cf3\cb1\ulc2 Field Label;}{\cs35\f3\fs22\b\cf0\cb1\ulc2 
Table Heading;}{\cs36\f6\fs16\b\protect\cf0\cb4\ulc0 
SSBookmark;}{\cs37\f3\fs20\b\ul\cf0\cb1\ulc0(
+Object type;}{\s38\f3\fs20\b\i\cf6\cb1\ulc0 List Header;}}
+{\*\listtable
+{\list\listtemplateid1
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List1;}\listid1
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\lerelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List2;}\listid2
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f9\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\nevelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List3;}\listid3
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f9\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List4;}\listid4
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List5;}\listid5
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List6;}\listid6
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'00.}{\levelnumbers \'01}\f5\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List7;}\listid7
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List8;}\listid8
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List9;}\listid9
+}
+{\list\listtemplateid10
+{\listlevel\level�fc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\meveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List10;}\listid10
+}
+{\list\listtemplateid11
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List11;}\listid11
+}
+{\list\listtemplateid12
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext 
\'01\'b7}{\levelnumbers}\f7\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'04.}{\levelnumbers \'01}}
+{\listlevel\Levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext 
\'02\'08.}{\levelnumbers \'01}}
+{\listname List12;}\listid12
+}
+}
+{\*\listoverridetable
+{\listoverride\listid12\listoverridecount0\ls1}
+}
+\paperw11908\paperh16833\margl1440\margr1440\margt1440\margb1440\headery720\footery720\deftab720\formshade\aendnotes\aftnnrlc\pgbrdrhead\pgbrdrfoot
+\sectd\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery720\footery720\sbkpage\pgncont\pgndec
+\plain\f1\cf0\fs20
+{\header
+\trowd\trgaph60\trleft0\trrh230
+\clvertalt\clbrdrb\brdrs\brdrw1\cellx3510
+\clvertalt\clbrdrb\brdrs\brdrw1\cellx5760
+\clvertalt\clbrdrb\brdrs\brdrw1\cellx9360
+\pard\intbl\s32\tx4320\ql\lang1033\f0 Model Specification\cell
+\pard\intbl\s32\tx4320\qc\lang1045\f1\lang1033\f0 Phase 01\cell
+\pard\intbl\s32\tx4320\qr\lang1045\f1\lang1033\f0 Page: {\field{\fldinst 
PAGE}{\fldrslt 1}}\cell
+\lang1045\f0\intbl\row
+\pard\s32\tx4320\qr\f1\f0\par\f1}
+{\footer\ql\f5\ulc0\par\f1\ulc2}
+\pard\s20\sb240\sa60\qc\l`ng1033\f5\fs32 Table of 
Contents\par\pard\s0\ql\lang1045\f1\fs20\f5\ulc0\par\pard\s5\tqr\tldot\tx9270\li540\ql\f1\ulc2{\field{\fldinst
 TOC \\o "1-9"}{\fldrslt\f3\ulc0\fs24 Infrastruktura sieciowa\lang1033\f0\tab 
2\par\lang1045\f3 
+Sieci LAN\lang1033\f0\tab 2\par\pard\s6\tqr\tldot\tx9270\li720\ql\lang1045\f3 
201.0.0.0\f0\tab 2\par\f3 201.0.100.136/30 :sie\u263 \'e6 IP\f0\tab 2\par\f3 
201.0.12.0\f0\tab 2\par\f3 201.0.16.0\f0\tab 2\par\f3 201.0.3.0\f0\tab 2\par\f3 
201.0.6.0\f0\tab 
+2\par\f3 ca 201.0.9.0/27\f0\tab 3\par\f3 cpfcpf 201.0.100.124/30\f0\tab 
3\par\f3 DMZ 193.27.6.0\f0\tab 3\par\f3 flink 201.0.100.140/30\f0\tab 3\par\f3 
Internet\f0\tab 3\par\f3 pixcpf 201.0.100.124/30\f0\tab 3\par\f3 prod 
201.0.100.240/29\f0\tab 3\par\f3 
+RA 201.0.9.32/27\f0\tab 3\par\\\\f3 RAO 201.0.9.96/27 :sie\u263 \'e6 IP\f0\tab 
3\par\pard\s5\tqr\tldot\tx9270\li540\ql\f3 Urz\u261 \'b9dzenia\lang1033\f0\tab 
4\par\pard\s6\tqr\tldot\tx9270\li720\ql\lang1045\f3 pix1\f0\tab 4\par\f3 
pix21\f0\tab 4\par\f3 proxy1\f0\tab 
+4\par\f3 proxy21\f0\tab 5\par\f3 sw1\f0\tab 5\par\f3 sw2\f0\tab 5\par\f3 
sw21\f0\tab 5\par\f3 sw22\f0\tab 5\par\f3 sw23\f0\tab 5\par\f3 sw3\f0\tab 
5\par\f3 wentyl1\f0\tab 5\par\f3 wentyl21\f0\tab 
5\par\pard\s2\tqr\tldottx9270\ql}}\lang1033\f0\pard\s2\tqr\tldot\tx9270\ql\par\page\pard\s14\li720\sb240\sa60\ql\lang1045\f1{\*\bkmkstart
 
+Infrastruktura_sieciowa}{\*\bkmkstart 
BKM_82c14eb3_F991_4597_98f0_854dd833f496}\f3\cf3\ulc0\fs28\b Infrastruktura 
sieciowa{\field\fldlock{\*\fldinst 
+MERGEFIELD \lang1033\f0 
Pkg.Name}{\fldrslt}}\lang1033\f0\pard\s14\li720\sb240\sa60\ql\par\pard\s0\tqr\tx1170\li720\ql\lang1045\f1\cf0\ulc2\fs20\b0{\field\fldlock{\*\fldinst
 MERGEFIELD \lang1033\f0\ulc0 
Pkg.Notes}{\fldrslt}}\cs36\lang1033\f8\highlight4\ulc0\fs16\b\protect\pard\s0\tqr\tx1170\li720\ql\par\pard\s0\li720\ql\cs1\lang1045\f1\highlight1\ulc2\fs20\b0\protect0\lang1045\f3\ulc0
 
+ \lang1045\f5\par\pard\s14\li720\sb240\sa60\ql\f1\ulc2{\*\bkmkstart 
Sieci_LAN}{\*\bkmkstart 
BKM_BDBBF25a_74dd_4037_B5e1_9d10c2183fbb}\f3\cf3\ulc0\fs28\b 
+Sieci LAN{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Pkg.Name}{\fldrslt}}\lang1033\f0\pard\s14\li720\sb240\sa60\ql\par\pard\s0\tqr\tx1170\li720\ql\lang1045\f1\cf0\ulc2\fs20\b0{\field\fldlock{\*\fldinst
 MERGEFIELD \lang1033\f0\ulc0 
Pkg.Notes}{\fldrslt}}\cs36\lang1033\f8\highlight4\ulc0\fs16\b\protect\pard\s0\tqr\tx1170\li720\ql\par
+{\*\bkmkstart 
BKM_523ada47_3e82_4089_ABEB_5b4b9b2a30c7}\cs1\lang1045\f5\highlight1\fs20\b0\protect0\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 201.0.0.0{\field\fldlock{\*\fldinst 
+MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  udost\lang1045\f3\u281 \'ea\lang1045\f3 
pniana klientom Izby za po\lang1045\f3\u347 \'9c\lang1045\f3 
+rednictwem sieci Exatel S.A.\lang1045\f5\par{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 Element.Notes}{\fldrslt}}\f1\ulc2\pard\par
+\trowd\trgaph60\trleft64816\trrh279
+\clvertalt\clmgf\cellx9240
+\clmrg\cellx9360
+\pard\intbl\s38\ql\cs35\f3\ulc0\fs22\b Szczeg\u243 \'f3\u322 \'b3y\cell\cell
+\cs1\f0\fs20\b0\intbl\row
+\trowd\trgaph60\trleft720\trrh381
+\clvertalt\cellx1350
+\clvertalt\cellx9361
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 Adres IP{\field\fldlock{\*\fldinst 
MERGEFIEND \lang1033\f0 ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = 
\lang1045\f3 201.0.0.0 255.255.255.255 1.0.0.11{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Value}{\fldrslt}}\lang1045\f5 
+.  {\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 
Lokalizacja{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = \lang1045\f3 o\lang1045\f3\u347 
\'9c\lang1045\f3 rodek Pileckiego{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
+ElementTagVal.Value}{\fldrslt}}\lang1045\f5 .  {\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\s0\tqr\tx1170\li720\ql\f1\ulc2{\*\bkmkend 
BKM_523ada47_3e82_4089_ABEB_5b4b9b2a30c7}\lang1045\f3\ulc0   {\*\bkmkstart 
BKM_BFCA7b27_252f_4611_9ad1_4049708dd34a}\lang1045\f5\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+201.0.100.136/30 :sie\u263 \'e6 IP{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\s0\tqr\tx1170\li720\ql\f1\cf0\ulc2\fs20\b0{\field\fldlock{\*\fldinst
 MERGEFIELD \lang1033\f0\ulc0 Element.Notes
+{\*\bkmkend 
BKM_BFCA7b27_252f_4611_9ad1_4049708dd34a}}{\fldrslt}}\lang1045\f3\ulc0   
{\*\bkmkstart 
BKM_BB3e912_D587_439e_AAB8_4ea7a3473176}\lang1045\f5\pard\s0\tqr\tx1170\li720\ql\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+201.0.12.0{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  udost\lang1045\f3\u281 \'ea\lang1045\f3 
pniana klientom 
+Izby za po\lang1045\f3\u347 \'9c\lang1045\f3 rednictwem sieci Exatel 
S.A.{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Notes}{\fldrslt}}\lang1045\f1\ulc2\pard\par
+\trowd\trgaph60\trleft720\trrh279
+\clvertalt\clmgf\cellx9240
+\clmrg\cellx9360
+\pard\intbl\s38\ql\cs35\f3\ulc0\fs22\b Szczeg\u243 \'f3\u322 \'b3y\cell\cell
+\cs1\f0\fs20\b0\intbl\row
+\trowd\trgaph60\trleft720\trrh381
+\clvertalt\cellx1350
+\clvertalt\cellx9361
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 Adres IP{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = 
\lang1045\f3 201.0.12.0 255.255.255.0 201.0.12.11{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Value}{\fldrslt}}\lang1045\f5 
+.  {\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 
Lokalizacja{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = \lang1045\f3 o\lang1045\f3\u347 
\'9c\lang1045\f3 rodek Cypryjska{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
+ElementTagVal.Value}{\fldrslt}}\lang1045\f5 .  {\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\s0\tqr\tx1170\li720\ql\f1\ulc2{\*\bkmkend 
BKM_BB3e912_D587_439e_AAB8_4ea7a3473176}\lang1045\f3\ulc0   {\*\bkmkstart 
BKM_B99df3a2_6fcc_4716_953e_A4e4a7e0CFA0}\lang1045\f5\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+201.0.16.0{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  og\lang1045\f3\u243 \'f3\lang1045\f3 
lna Centrali 
+KIR S.A.{\field\fldlock{\*\fldinst MERGEFIELD \l`ng1033\f0 
Element.Notes}{\fldrslt}}\lang1045\f1\ulc2\pard\par
+\trowd\trgaph60\trleft720\trrh279
+\clvertalt\clmgf\cellx9240
+\clmrg\cellx9360
+\pard\intbl\s38\ql\cs35\f3\ulc0\fs22\b Szczeg\u243 \'f3|u322 \'b3y\cell\cell
+\cs1\f0\fs20\b0\intbl\row
+\trowd\trgaph60\trleft720\trrh381
+\clvertalt\cellx1350
+\clvertalt\cellx9361
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 Adres IP{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = 
\lang1045\f3 201.0.16.0 255.255.255.0 201.0.16.242{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Value}{\fldrslt}}\lang1045\f5 
+.  {\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 
Lokalizacja{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = \lang1045\f3 o\lang1045\f3\u347 
\'9c\lang1045\f3 rodek Cypryjska{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
+ElementTagVal.Value}{\fldrslt}}\lang1045\f5 .  {\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\s0\tqr\tx1170\li720\ql\f1\ulc2{\*\bkmkend 
BKM_B99df3a2_6fcc_4716_953e_A4e4a7e0CFA0}\lang1045\f3\ulc0   {\*\bkmkstart 
BKM_BBB9F76C_07B9_4f8d_A567_D5772463993e}\lang1045\f5\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+201.0.3.0{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  udost\lang1045\f3\u281 \'ea\lang1045\f3 
pnia~a klientom 
+Izby za po\lang1045\f3\u347 \'9c\lang1045\f3 rednictwem sieci Exatel 
S.A.{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Notes}{\fldrslt}}\lang1045\f1\ulc2\pard\par
+\trowd\trgaph60\trleft720\trrh27y
+\clvertalt\clmgf\cellx9240
+\clmrg\cellx9360
+\pard\intbl\s38\ql\cs35\f3\ulc0\fs22\b Szczeg\u243 \'f3\u322 \'b3y\cell\cell
+\cs1\f0\fs20\b0\intbl\row
+\trowd\trgaph60\trleft720\trrh381
+\clvertalt\cellx1350
+\clvertalt\cellx9361
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 Adres IP{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = 
\lang1045\f3 201.0.3.0 255.255.255.0 201.0.3.11{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Value}{\fldrslt}}\lang1045\f5 
+.  {\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 
Lokalizacja{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = \lang1045\f3 o\lang1045\f3\u347 
\'9c\lang1045\f3 rodek Pileckiego{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
+ElementTagVal.Value}{\fldrslt}}\lang1045\f5 .  {\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\s0\tqr\tx1170\li720\ql\f1\ulc2{\*\bkmkend 
BKM_BBB9f76c_7b9_4f8d_A567_D5772463993e}\lang1045\f3\ulc0   {\*\bkmkstart 
BKM_1017804d_216c_4074_B461_668b2d44913d}\lang1045\f5\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+201.0.6.0{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  og\lang1045\f3\u243 \'f3\lang1045\f3 
lna Centrali 
+KIR S.A.{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Notes}{\fldrslt}}\lang1045\f1\ulc2\pard\par
+\trowd\trgaph60\trleft720\trrh279
+\clvertalt\clmgf\cellx9240
+\clmrg\cellx9360
+\pard\intbl\s38\ql\cs35\f3\ulc0\fs22\b Szczeg\u243 \'f3\u322 \'b3y\cell\cell
+\cs1\f0\fs20\b0\intbl\row
+\trowd\trgaph60\trleft720\trrh381
+\clvertalt\cellx1350
+\clvertalt\cellx9361
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 Adres IP{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = 
\lang1045\f3 201.0.6.0 255.255.255.0 201.0.6.11{\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Value}{\fldrslt}}\lang1045\f5 
+.  {\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\intbl\s0\qr\f1\ulc2\f5\ulc0\cell
+\pard\intbl\s0\ql\f1\ulc2\lang1045\f3\ulc0 
Lokalizacja{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
ElementTagVal.Name}{\fldrslt}}\lang1045\f5  = \lang1045\f3 o\lang1045\f3\u347 
\'9c\lang1045\f3 rodek Pileckiego{\field\fldlock{\*\fldinst MERGEFIELD 
\lang1033\f0 
+ElementTagVal.Value}{\fldrslt}}\lang1045\f5 .  {\field\fldlock{\*\fldinst 
MERGEFIELD \lang1033\f0 ElementTagVal.Notes}{\fldrslt}}\ql\cell
+\intbl\row
+\pard\s0\tqr\tx1170\li720\ql\f1\ulc2{\*\bkmkend 
BKM_1017804d_216c_4074_B461_668b2d44913d}\lang1045\f3\ulc0   {\*\bkmkstart 
BKM_349b5ca7_58e4_4ac5_B66e_ea8b76eb9f9}\lang1045\f5\par\pard\s15\li720\sb240\sa60\ql\f1\ulc2\f3\cf3\ulc0\fs26\b
 
+ca 201.0.9.0/27{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\f0 
Element.Name}{\fldrslt}}\f0\pard\s15\li720\sb240\sa60\ql\par\pard\f1\cf0\ulc2\fs20\b0\lang1045\f3\ulc0
 Sie\lang1045\f3\u263 \'e6\lang1045\f3  wysoce chroniona; w sieci 
znajduj\lang1045\f3\u261 

... etc. - the rest is truncated

Reply via email to