<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>The Document Foundation Planet</title>
  <updated>2024-03-21T11:01:23Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>The Document Foundation</name>
    <email>hostmaster@documentfoundation.org</email>
  </author>
  <id>https://planet.documentfoundation.org/atom.xml</id>
  <link href="https://planet.documentfoundation.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="https://planet.documentfoundation.org" rel="alternate"/>

  <entry xml:lang="en-GB">
    <id>https://meeksfamily.uk/~michael/blog/2024/03/20/2024-03-20</id>
    <link href="https://meeksfamily.uk/~michael/blog/2024-03-20.html" rel="alternate" type="text/html"/>
    <title xml:lang="en-GB">2024-03-20 Wednesday</title>
    <content type="xhtml" xml:lang="en-GB"><div xmlns="http://www.w3.org/1999/xhtml"><ul> <!-- -->
	<li>
		Early customer call, sync with Lily, mail chew, all
	hands meeting. Poked at socket lifecycle management, and
	SocketPoll workings in much more detail. Band practice,
	worked until late.
	</li>
</ul></div>
    </content>
    <updated>2024-03-20T21:00:00Z</updated>
    <published>2024-03-20T21:00:00Z</published>
    <source>
      <id>https://meeksfamily.uk/~michael/blog/index.atom</id>
      <author>
        <name>Michael Meeks</name>
        <email>michael.meeks@collabora.com</email>
        <uri>https://meeksfamily.uk/~michael/blog/index.atom</uri>
      </author>
      <link href="https://meeksfamily.uk/~michael/blog" rel="alternate" type="text/html"/>
      <link href="https://meeksfamily.uk/~michael/blog/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-GB">Copyright 1999-2015 Michael Meeks</rights>
      <subtitle xml:lang="en-GB">things, of varying degrees of uselessness, that I did</subtitle>
      <title xml:lang="en-GB">Stuff Michael Meeks is doing</title>
      <updated>2024-03-20T21:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://meeksfamily.uk/~michael/blog/2024/03/19/2024-03-19</id>
    <link href="https://meeksfamily.uk/~michael/blog/2024-03-19.html" rel="alternate" type="text/html"/>
    <title xml:lang="en-GB">2024-03-19 Tuesday</title>
    <content type="xhtml" xml:lang="en-GB"><div xmlns="http://www.w3.org/1999/xhtml"><ul> <!-- ljm -->
	<li>
		Mail chew, planning call, sync with Naomi &amp; Lily,
	lunch, monthly mgmt meeting, poked at some overdue 24.04 coding
	treats - discovered some corner-case performance issue by
	lengthing our fallback poll loop waits substantially; fun.
	</li>
</ul></div>
    </content>
    <updated>2024-03-19T21:00:00Z</updated>
    <published>2024-03-19T21:00:00Z</published>
    <source>
      <id>https://meeksfamily.uk/~michael/blog/index.atom</id>
      <author>
        <name>Michael Meeks</name>
        <email>michael.meeks@collabora.com</email>
        <uri>https://meeksfamily.uk/~michael/blog/index.atom</uri>
      </author>
      <link href="https://meeksfamily.uk/~michael/blog" rel="alternate" type="text/html"/>
      <link href="https://meeksfamily.uk/~michael/blog/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-GB">Copyright 1999-2015 Michael Meeks</rights>
      <subtitle xml:lang="en-GB">things, of varying degrees of uselessness, that I did</subtitle>
      <title xml:lang="en-GB">Stuff Michael Meeks is doing</title>
      <updated>2024-03-20T21:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://meeksfamily.uk/~michael/blog/2024/03/18/2024-03-18</id>
    <link href="https://meeksfamily.uk/~michael/blog/2024-03-18.html" rel="alternate" type="text/html"/>
    <title xml:lang="en-GB">2024-03-18 Monday</title>
    <content type="xhtml" xml:lang="en-GB"><div xmlns="http://www.w3.org/1999/xhtml"><ul> <!-- -->
	<li>
		Mail chew; day of 1:1's and catch-up admin &amp; planning.
	</li>
	<li>
		Reflecting on why I get -so- spam these days, I suspect
	LinkedIn likes to target on 'CEO' job title instead of the much
	more opaque 'General Manager'; if I wasn't so busy turning down
	the corporate 'enlargement services' equivalent I'd test that.
	</li>
</ul></div>
    </content>
    <updated>2024-03-18T21:00:00Z</updated>
    <published>2024-03-18T21:00:00Z</published>
    <source>
      <id>https://meeksfamily.uk/~michael/blog/index.atom</id>
      <author>
        <name>Michael Meeks</name>
        <email>michael.meeks@collabora.com</email>
        <uri>https://meeksfamily.uk/~michael/blog/index.atom</uri>
      </author>
      <link href="https://meeksfamily.uk/~michael/blog" rel="alternate" type="text/html"/>
      <link href="https://meeksfamily.uk/~michael/blog/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-GB">Copyright 1999-2015 Michael Meeks</rights>
      <subtitle xml:lang="en-GB">things, of varying degrees of uselessness, that I did</subtitle>
      <title xml:lang="en-GB">Stuff Michael Meeks is doing</title>
      <updated>2024-03-20T21:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://blog.documentfoundation.org/?p=15114</id>
    <link href="https://blog.documentfoundation.org/blog/2024/03/18/community-member-monday-dione-maddern-libreoffice-docs-team/" rel="alternate" type="text/html"/>
    <title>Community Member Monday: Dione Maddern, LibreOffice docs team</title>
    <summary>Today we’re talking to Dione Maddern, who helps out in LibreOffice’s documentation team… Tell us a bit about yourself! I’m 44. Originally from Brisbane, Australia but I currently live in Baltimore, on the East Coast of the USA. I’ve worked in a variety of administration, document production roles in the engineering and insurance industries. Most […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="Dione Maddern" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/Maddern_Dione.jpg" width="600"/></p>
<p><strong>Today we’re talking to Dione Maddern, who helps out in LibreOffice’s documentation team…</strong></p>
<h3>Tell us a bit about yourself!</h3>
<p>I’m 44. Originally from Brisbane, Australia but I currently live in Baltimore, on the East Coast of the USA. I’ve worked in a variety of administration, document production roles in the engineering and insurance industries.</p>
<p>Most of my technical writing experience has been writing procedures, instructions, and other documentation for Health Safety Environment and Quality (HSEQ) systems. This is my first software project.</p>
<p>In my spare time, I like to bake, draw, and play video games and tabletop RPGs.</p>
<h3>What are you doing in the LibreOffice community at the moment?</h3>
<p>I’m working on the Offline Help (F1) function of LibreOffice, fixing broken links and updating instructions and terminology.</p>
<h3>How did you join the community, and what was it like?</h3>
<p>I saw the banner on the user guide page asking for volunteers to work on Documentation Team. I’d been looking for a volunteer opportunity where I could use my skills in document production for a while and this seemed perfect. So I followed the link and posted my bio <a href="https://community.documentfoundation.org/c/documentation/12">on the Documentation forum</a>.</p>
<p><a href="https://documentation.libreoffice.org/en/join-the-documentation-team/"><img alt="Banner to join the Docs team" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/jointeam.png"/></a></p>
<p>I felt a bit daunted at first because a lot people had more experience than me, or were from a software development background. Everyone has been very welcoming and I feel like I’ve been able to make a contribution to the project. I’ve learned a lot too, including a crash course in XML and <a href="https://gerrit.libreoffice.org/">Gerrit</a>.</p>
<h3>What advice would you give to others who want to join the documentation team?</h3>
<p>Dive in! It can seem a bit daunting at first, but it’s easier to get started than you think.</p>
<p><strong>Thanks so much to Dione for all the help! Indeed, everyone is welcome to <a href="https://documentation.libreoffice.org/en/join-the-documentation-team/">dive in</a>, help out, and pick up valuable experience along the way. Who knows – perhaps it could lead to a career in technical writing…</strong></p>
<div class="shariff"/></div>
    </content>
    <updated>2024-03-18T15:56:31Z</updated>
    <published>2024-03-18T15:56:31Z</published>
    <category term="Community"/>
    <category term="Documentation"/>
    <category term="Interviews"/>
    <category term="LibreOffice"/>
    <author>
      <name>Mike Saunders</name>
    </author>
    <source>
      <id>https://blog.documentfoundation.org/</id>
      <logo>https://blog.documentfoundation.org/wp-content/uploads/2015/10/TDF_Logo_Wiki-50x50.png</logo>
      <link href="https://blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>The home of LibreOffice</subtitle>
      <title>The Document Foundation Blog</title>
      <updated>2024-03-18T19:25:46Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://dev.blog.documentfoundation.org/?p=1121</id>
    <link href="https://dev.blog.documentfoundation.org/2024/03/18/test-improvement-more-and-better-tests-for-libreoffice/" rel="alternate" type="text/html"/>
    <title>Test improvement – More and better tests for LibreOffice</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>One of the areas that can help LibreOffice, but may not directly be visible to the users even though it has a big impact is the <a href="https://wiki.documentfoundation.org/QA">quality assurance</a>, is <strong>automated testing</strong>.Â  Here, I discuss some areas and notes around improving tests for LibreOffice. First, I start with regressions and bug fixes without tests.</p>
<h3>Missing Unit Tests</h3>
<p>This is the description from the GSoC ideas page:</p>
<blockquote><p>While there are some automated tests for LibreOffice, there are not nearly enough. Adding more and better tests helps developers who work on the code to be more productive by allowing them to find regressions as early as possible.</p></blockquote>
<p>To elaborate more, I should say there are many regressions and bugs in general that are fixed, but lack testing. It is important to have tests for those bug fixes, to avoid such problems in the future. You can see a list of those fixed issues that lack tests here:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/Cpp_Unit_Tests">The Document Foundation Wiki – CppUnitTest</a></li>
<li><a href="https://wiki.documentfoundation.org/MissingUnitTests">The Document Foundation Wiki – Missing Unit Tests</a></li>
</ul>
<p>If you want to add some new tests for the bug fixes, first you should read the bug report very carefully to understand what is it about, and try to test the fix yourself. You can either use <code>git revert</code> command to revert the fix, and see the problem in action, or try changing back the fix in the code, if it is not too big.</p>
<p>That is important, because you have to see that the test fails without the fix in place, but succeeds when it is applied. This is an essential step when writing the test.</p>
<p>To know more about unit tests, you may look into these Wiki pages:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/UITests">The Document Foundation Wiki – UITests</a></li>
</ul>
<h3>Porting Existing Tests to C++ or Python</h3>
<p>Some tests are written in the past, but not have issues because of the way they are written. In this case, porting them can provide improvement.</p>
<p>Tests can be written in multiple languages. At least, C++, Python, Java and BASIC are currently in use for different tests across the LibreOffice code base. Again in the GSoC ideas page, you can read:</p>
<blockquote><p>There is some support in LibreOffice for automated tests, both at the level of unit tests, and at the level of system tests that drive a full LibreOffice instance. Currently tests can be written in C++, Java, or Python. Various new automated tests should be developed to improve the test coverage.</p>
<p>Tests written exclusively for Java (e.g. the JUnit framework) should be ported to C++ so that they can execute much more rapidly. Similarly, tests that do remote control of an existing LibreOffice instance, should be re-factored to run inside that instance to make debugging much easier.</p></blockquote>
<p>Almost all of the JUnitTests and UITests and also some smoke tests run as outside process. The trick to verify is to remove the <code>soffice</code>(<code>.exe</code>) binary, or to remove its execute permission (on Linux). In this way, out-of-process tests should fail, as they need to run the <code>soffice</code> binary. After a successful build, you can see if this works. For example, try this:</p>
<p><code>make -d JunitTest_framework_complex</code></p>
<p>As an example, we have this issue around complex tests that should be ported to Python:</p>
<ul>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=97362">tdf#97362 – Convert Java complex tests to Python</a></li>
</ul>
<p>You may find many examples of the previously ported test in the issue page. Keep in mind that usually old Java tests should be removed in the same patch that provides the CppUnitTest port.</p>
<p>Also, you may find examples of UITests ported to C++ from Python. For example, see this patch:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/894bb1128ca0e80b96d48bfd94556f70af02ce41">tdf#150457 Port UITest to CppunitTest</a></li>
</ul>
<p>It ports a previously implemented UITest from Python to C++. The result is a faster test, which is more robust.</p>
<h3>Focusing on a Specific Area</h3>
<p>If you want to add or port some tests, please focus on a specific area of the code. The LibreOffice code base is huge, and consists of more than 200 modules. It is not easy, and in fact not suggested, to work across different applications and modules. It is much better that you pick a specific application, and even inside that application, like Writer, Calc, Impress, etc., focus on a specific module. In this way, it would be much easier to understand the ideas and the way tests are implemented.</p>
<h3>How Hard is it to Write / Port a Test?</h3>
<p>One important question is around the complexity of writing or porting tests. The answer is not straightforward, as it depends on the area that the test is written. But one can take a look at what others did in the past. By looking into Gerrit or <code>git log</code>, you can find what other people, including GSoC applicants, were able to achieve during their work.</p>
<p>After writing a few tests, or porting a few tests, it may become easier for you to write more tests. Another thing is that you don’t have to write tests from scratch. There are many tests available in the LibreOffice code base, and you can create your new test based on existing tests and customize it to match the purpose of the issue your are working on. <a class="read-more" href="https://dev.blog.documentfoundation.org/2024/03/18/test-improvement-more-and-better-tests-for-libreoffice/">Read the rest </a></p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>One of the areas that can help LibreOffice, but may not directly be visible to the users even though it has a big impact is the <a href="https://wiki.documentfoundation.org/QA">quality assurance</a>, is <strong>automated testing</strong>.Â  Here, I discuss some areas and notes around improving tests for LibreOffice. First, I start with regressions and bug fixes without tests.</p>
<h3>Missing Unit Tests</h3>
<p>This is the description from the GSoC ideas page:</p>
<blockquote><p>While there are some automated tests for LibreOffice, there are not nearly enough. Adding more and better tests helps developers who work on the code to be more productive by allowing them to find regressions as early as possible.</p></blockquote>
<p>To elaborate more, I should say there are many regressions and bugs in general that are fixed, but lack testing. It is important to have tests for those bug fixes, to avoid such problems in the future. You can see a list of those fixed issues that lack tests here:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/Cpp_Unit_Tests">The Document Foundation Wiki – CppUnitTest</a></li>
<li><a href="https://wiki.documentfoundation.org/MissingUnitTests">The Document Foundation Wiki – Missing Unit Tests</a></li>
</ul>
<p>If you want to add some new tests for the bug fixes, first you should read the bug report very carefully to understand what is it about, and try to test the fix yourself. You can either use <code>git revert</code> command to revert the fix, and see the problem in action, or try changing back the fix in the code, if it is not too big.</p>
<p>That is important, because you have to see that the test fails without the fix in place, but succeeds when it is applied. This is an essential step when writing the test.</p>
<p>To know more about unit tests, you may look into these Wiki pages:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/UITests">The Document Foundation Wiki – UITests</a></li>
</ul>
<h3>Porting Existing Tests to C++ or Python</h3>
<p>Some tests are written in the past, but not have issues because of the way they are written. In this case, porting them can provide improvement.</p>
<p>Tests can be written in multiple languages. At least, C++, Python, Java and BASIC are currently in use for different tests across the LibreOffice code base. Again in the GSoC ideas page, you can read:</p>
<blockquote><p>There is some support in LibreOffice for automated tests, both at the level of unit tests, and at the level of system tests that drive a full LibreOffice instance. Currently tests can be written in C++, Java, or Python. Various new automated tests should be developed to improve the test coverage.</p>
<p>Tests written exclusively for Java (e.g. the JUnit framework) should be ported to C++ so that they can execute much more rapidly. Similarly, tests that do remote control of an existing LibreOffice instance, should be re-factored to run inside that instance to make debugging much easier.</p></blockquote>
<p>Almost all of the JUnitTests and UITests and also some smoke tests run as outside process. The trick to verify is to remove the <code>soffice</code>(<code>.exe</code>) binary, or to remove its execute permission (on Linux). In this way, out-of-process tests should fail, as they need to run the <code>soffice</code> binary. After a successful build, you can see if this works. For example, try this:</p>
<p><code>make -d JunitTest_framework_complex</code></p>
<p>As an example, we have this issue around complex tests that should be ported to Python:</p>
<ul>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=97362">tdf#97362 – Convert Java complex tests to Python</a></li>
</ul>
<p>You may find many examples of the previously ported test in the issue page. Keep in mind that usually old Java tests should be removed in the same patch that provides the CppUnitTest port.</p>
<p>Also, you may find examples of UITests ported to C++ from Python. For example, see this patch:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/894bb1128ca0e80b96d48bfd94556f70af02ce41">tdf#150457 Port UITest to CppunitTest</a></li>
</ul>
<p>It ports a previously implemented UITest from Python to C++. The result is a faster test, which is more robust.</p>
<h3>Focusing on a Specific Area</h3>
<p>If you want to add or port some tests, please focus on a specific area of the code. The LibreOffice code base is huge, and consists of more than 200 modules. It is not easy, and in fact not suggested, to work across different applications and modules. It is much better that you pick a specific application, and even inside that application, like Writer, Calc, Impress, etc., focus on a specific module. In this way, it would be much easier to understand the ideas and the way tests are implemented.</p>
<h3>How Hard is it to Write / Port a Test?</h3>
<p>One important question is around the complexity of writing or porting tests. The answer is not straightforward, as it depends on the area that the test is written. But one can take a look at what others did in the past. By looking into Gerrit or <code>git log</code>, you can find what other people, including GSoC applicants, were able to achieve during their work.</p>
<p>After writing a few tests, or porting a few tests, it may become easier for you to write more tests. Another thing is that you don’t have to write tests from scratch. There are many tests available in the LibreOffice code base, and you can create your new test based on existing tests and customize it to match the purpose of the issue your are working on.</p></div>
    </content>
    <updated>2024-03-18T06:45:41Z</updated>
    <published>2024-03-18T06:45:41Z</published>
    <category term="Best Practices"/>
    <category term="Developer Community"/>
    <category term="EasyHack"/>
    <category term="GSoC"/>
    <category term="quality assurance"/>
    <category term="testing"/>
    <category term="UI tests"/>
    <category term="unit tests"/>
    <author>
      <name>Hossein Nourikhah</name>
    </author>
    <source>
      <id>https://dev.blog.documentfoundation.org/</id>
      <link href="https://dev.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://dev.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog for the LibreOffice Developers Community; Tutorials, tips and tricks for working with the LibreOffice code</subtitle>
      <title>LibreOffice Development Blog</title>
      <updated>2024-03-21T01:12:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://meeksfamily.uk/~michael/blog/2024/03/17/2024-03-17</id>
    <link href="https://meeksfamily.uk/~michael/blog/2024-03-17.html" rel="alternate" type="text/html"/>
    <title xml:lang="en-GB">2024-03-17 Sunday</title>
    <content type="xhtml" xml:lang="en-GB"><div xmlns="http://www.w3.org/1999/xhtml"><ul> <!-- -->
	<li>
		Up earlyish, breakfast with the parents, bid a fond farewell
	&amp; drove home. N. cooked lunch; J. and N. went to visit Izzie,
	H.M. &amp; E. to StAG; relaxed variously - watched <i>The King</i> -
	interesting; its good to have a wife who speaks frankly to you.
	</li>
</ul></div>
    </content>
    <updated>2024-03-17T21:00:00Z</updated>
    <published>2024-03-17T21:00:00Z</published>
    <source>
      <id>https://meeksfamily.uk/~michael/blog/index.atom</id>
      <author>
        <name>Michael Meeks</name>
        <email>michael.meeks@collabora.com</email>
        <uri>https://meeksfamily.uk/~michael/blog/index.atom</uri>
      </author>
      <link href="https://meeksfamily.uk/~michael/blog" rel="alternate" type="text/html"/>
      <link href="https://meeksfamily.uk/~michael/blog/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-GB">Copyright 1999-2015 Michael Meeks</rights>
      <subtitle xml:lang="en-GB">things, of varying degrees of uselessness, that I did</subtitle>
      <title xml:lang="en-GB">Stuff Michael Meeks is doing</title>
      <updated>2024-03-20T21:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://meeksfamily.uk/~michael/blog/2024/03/16/2024-03-16</id>
    <link href="https://meeksfamily.uk/~michael/blog/2024-03-16.html" rel="alternate" type="text/html"/>
    <title xml:lang="en-GB">2024-03-16 Saturday</title>
    <content type="xhtml" xml:lang="en-GB"><div xmlns="http://www.w3.org/1999/xhtml"><ul> <!-- -->
	<li>
		Up earlyish, breakfast; ladies left to collect H. from
	Durham. Set too at a wiring problem in the kitchen; soup.
	Out to Toolstation to collect some pieces. More wiring in the
	afternoon - got it done eventually.
	</li>
	<li>
		Lovely dinner, watched <i>Fishermans Friends
	together, rather a fine movie - the love of home in
	<a href="https://youtu.be/FNCcSJiZR1I?si=O3rJDoxIGphNK7LU">Cornwall
	My Home</a> is quite endearing; the original Buoy Band.
	</i></li><i>
</i></ul></div>
    </content>
    <updated>2024-03-16T21:00:00Z</updated>
    <published>2024-03-16T21:00:00Z</published>
    <source>
      <id>https://meeksfamily.uk/~michael/blog/index.atom</id>
      <author>
        <name>Michael Meeks</name>
        <email>michael.meeks@collabora.com</email>
        <uri>https://meeksfamily.uk/~michael/blog/index.atom</uri>
      </author>
      <link href="https://meeksfamily.uk/~michael/blog" rel="alternate" type="text/html"/>
      <link href="https://meeksfamily.uk/~michael/blog/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-GB">Copyright 1999-2015 Michael Meeks</rights>
      <subtitle xml:lang="en-GB">things, of varying degrees of uselessness, that I did</subtitle>
      <title xml:lang="en-GB">Stuff Michael Meeks is doing</title>
      <updated>2024-03-20T21:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://mesahilgautam.github.io/post/libreoffice-different-units/</id>
    <link href="https://mesahilgautam.github.io/post/libreoffice-different-units/" rel="alternate" type="text/html"/>
    <title>Different Units of Measurement in Libreoffice</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://sahilgautam.in"><img align="left" alt="Git" src="https://www.svgrepo.com/show/130741/blog.svg" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://twitter.com/mesahilgautam"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Logo_of_Twitter.svg/2491px-Logo_of_Twitter.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://www.linkedin.com/in/mesahilgautam"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/LinkedIn_icon.svg/768px-LinkedIn_icon.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://github.com/mesahilgautam"><img align="left" alt="Git" src="https://static-00.iconduck.com/assets.00/github-icon-2048x2048-dpporae2.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://gerrit.libreoffice.org/q/owner:sahil%2540libreoffice.org"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Gerrit_icon.svg/1024px-Gerrit_icon.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="mailto:me.sahilgautam@gmail.com"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Gmail_icon_%282020%29.svg/2560px-Gmail_icon_%282020%29.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<br/></p>
<h2 id="why-work-on-this">Why work on this</h2>
<p>Working on this involves understanding the controlls, specially the spinedit,
finding some way to modify it so that clicking on the units “the last 2
characters of the label in the spinedit entry” shows a dropdown, from which we
can select a different unit.</p>
<img align="center" alt="Mockup" src="https://bug-attachments.documentfoundation.org/attachment.cgi?id=130628" style="padding-right: 10px;" width="60%"/>
<p>I find working on this as a great opportunity to get deeper insights into
widget implementations</p>
<h2 id="finding-a-starting-point">Finding a Starting Point</h2>
<p>I had no idea about where to start. One approach that appealed to me was if somehow
I find the cursor position when the spinedit goes into edit mode, and compare it to
the text length in the GtkEntry (internal) of the spinedit, then I can easily say that
if the cursor is on the last 2 characters, then show a dropdown here. But that would
not work, because “creating a new widget” ==&gt; the logic should be built into the
widget itself (I don’t know, it’s just guess-work).</p>
<p>Then I went to #gtk IRC channel, and asked about how to approach this problem.</p>
<table>
<thead>
<tr>
<th>IRC Conversation</th>
<th/>
</tr>
</thead>
<tbody>
<tr>
<td><strong>sahil_</strong></td>
<td>hi, I have a task to write a custom spinedit control, which will have a fontsize field (with a number and a unit like mm, pt, etc). It should be such that if I click on the unit with mouse, then it should show me a dropdown to use different units. <a href="https://bug-attachments.documentfoundation.org/attachment.cgi?id=130628">Mockup</a> Here’s the mockup. How can I approach it?</td>
</tr>
<tr>
<td><strong>sahil_</strong></td>
<td>Libreoffice uses glade and custom welding for widgets. And from the research I did on it, I found that a normal gtkentry is aware of the cursor position, which can be used like if the cursor is on the last 2 characters, then show the popup.</td>
</tr>
<tr>
<td><strong>sahil_</strong></td>
<td>But a new control has to be created for that (in my understanding).</td>
</tr>
<tr>
<td><strong>mclasen</strong></td>
<td>The pieces are <code>GtkText</code> and <code>GtkGestureClick</code>. You just have to glue them together in the right way</td>
</tr>
<tr>
<td><strong>sahil_</strong></td>
<td><strong>mclasen</strong>: and for the dropdown?</td>
</tr>
<tr>
<td><strong>mclasen</strong></td>
<td>GtkPopover is what is used for that</td>
</tr>
<tr>
<td><strong>sahil_</strong></td>
<td>Also the spinedit doesn’t expose the gtkEntry (it’s internal). So do I have to create one from scratch?</td>
</tr>
<tr>
<td><strong>sahil_</strong></td>
<td>or does it?</td>
</tr>
<tr>
<td><strong>mclasen</strong></td>
<td>you can take a look at how GtkEntry, GtkSpinButton, etc are put together nowadays  they are all just wrappers around a GtkText widget</td>
</tr>
</tbody>
</table>
<p>This was more than enough to get started.</p>
<h2 id="starting-the-hunt">Starting the Hunt</h2>
<p>Looking into it, I found that I was mixing up GtkComboBox, which is used as
fontsizebox, and GtkSpinButton, which is what I was supposed to explore and
modify. <code>weld::SpinButton</code>, which is libreoffice’s wrapper over <code>GtkSpinButton</code>
(if I am not wrong) has functions which give access to the cursor location in
the Entry. It would require some playing around to understand the dynamics
though.</p>
<blockquote>
<p>I am also curious about how a dialog, or any UI element, which is created
using glade, which usually has the widgets as Gtk types (GtkLabel, GtkButton
etc.) is loaded into different backends. Knowing how the welding works would answer
it I think.</p>
</blockquote></div>
    </summary>
    <updated>2024-03-15T00:00:00Z</updated>
    <published>2024-03-15T00:00:00Z</published>
    <author>
      <name>me.sahilgautam.github.io (Sahil Gautam)</name>
    </author>
    <source>
      <id>https://mesahilgautam.github.io/</id>
      <author>
        <name>me.sahilgautam.github.io (Sahil Gautam)</name>
      </author>
      <link href="https://mesahilgautam.github.io/" rel="alternate" type="text/html"/>
      <link href="https://mesahilgautam.github.io/index.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Recent content on Sahil Gautam</subtitle>
      <title>Sahil Gautam</title>
      <updated>2024-03-15T16:00:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://blog.documentfoundation.org/?p=15088</id>
    <link href="https://blog.documentfoundation.org/blog/2024/03/12/libreoffice-24-4-shines-again-writer-24-2-and-calc-24-2-guides-published/" rel="alternate" type="text/html"/>
    <title>LibreOffice 24.2 Shines Again! Writer 24.2 and Calc 24.2 Guides Published</title>
    <summary>The LibreOffice Community Documentation Team is happy to announce the immediate release of the latest Writer and Calc guides for the new LibreOffice 24.2 office suite. The two books are updates of the respective LibreOffice 7.6 guides, and describe the new features available in LibreOffice 24.2. Jean Weber and Steve Fanning leaded the update of […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The <strong>LibreOffice Community Documentation Team</strong> is happy to announce the immediate release of the latest <strong>Writer and Calc guides</strong> for the new LibreOffice 24.2 office suite.</p>
<p><a href="http://books.libreoffice.org"><img alt="" class="aligncenter wp-image-15090 size-large" height="540" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/24-2-writer-calc-1024x576.png" width="960"/></a></p>
<p>The two books are updates of the respective LibreOffice 7.6 guides, and describe the new features available in LibreOffice 24.2.</p>
<p><strong>Jean Weber</strong> and <strong>Steve Fanning</strong> leaded the update of the Guides and provided valuable inputs to the contents.</p>
<h2>The Writer Guide</h2>
<div class="wp-caption alignleft" id="attachment_11149" style="width: 244px;"><img alt="" class="size-medium wp-image-11149" height="300" src="https://blog.documentfoundation.org/wp-content/uploads/2021/04/jeanweber2012-234x300.jpg" width="234"/><p class="wp-caption-text" id="caption-attachment-11149">Jean Weber</p></div>
<p>Updated and review by <strong>Jean Weber</strong>, the Writer Guide is the authoritative guide for using Writer to edit documents, from a single page to a full book. The latest Writer guide includes all these updates:</p>
<ul>
<li>Comments can now use styles</li>
<li>New features in the Navigator</li>
<li>Save with password dialog now has a password strength meter</li>
<li>Insert Special Characters dropdown now shows a character description</li>
<li>Improved support for multi-page floating tables</li>
<li>“Legal” ordered list numbering: make a given list level use Arabic numbering for all its numeric portions</li>
<li>Miscellaneous changes in the names of some fields and buttons</li>
<li>And more; see the Release Notes</li>
</ul>
<p> </p>
<p> </p>
<p> </p>
<h2>The Calc Guide</h2>
<div class="wp-caption alignleft" id="attachment_12431" style="width: 247px;"><img alt="Steve Fanning" class=" wp-image-12431" height="295" src="https://blog.documentfoundation.org/wp-content/uploads/2021/12/Steve_fanning.png" width="237"/><p class="wp-caption-text" id="caption-attachment-12431">Steve Fanning</p></div>
<p>Updated by <strong>Steve Fanning</strong>, the guide contains description of the new features of Calc 24.2, the spreadsheet program of LibreOffice:</p>
<ul>
<li>Live font preview when using the Font Name menus on the Properties deck of the Sidebar and on the Formatting toolbar.</li>
<li>Interactions to switch between sheets operate cyclically.</li>
<li>Option to view or hide column/row highlighting.</li>
<li>Additional metadata fields on the Description tab of the Properties dialog.</li>
<li>On Windows platforms, support for Alt+NumPad codes covering full Unicode range.</li>
<li>Text description of highlighted character on drop-down from Insert Special Characters toolbar icon.</li>
<li>Password strength meters on several dialogs.</li>
<li>Search field on Functions deck of Sidebar.</li>
<li>Support for FTP protocol removed from Hyperlink dialog.</li>
<li>Changes to auto-recovery and backup options.</li>
<li>Search function on Tools – Options dialogs.</li>
<li>Security warnings converted from dialogs to infobars.</li>
<li>Modify button renamed Assign on Customize dialog.</li>
<li>Language Settings menu of Tools – Options dialogs renamed to Languages and Locales.</li>
</ul>
<h2>More…</h2>
<p>LibreOffice Community 24.2 also includes <a href="https://wiki.documentfoundation.org/ReleaseNotes/24.2">many other changes</a>, including:</p>
<ul>
<li>New password-based ODF encryption that hides metadata better and is more resistant to tampering</li>
<li>Clarification of macro security options to make it clear exactly what is allowed and what is not</li>
<li>Accessibility improvements</li>
<li>Improvements in interoperability with Microsoft’s proprietary file formats</li>
</ul>
<p>The Guides are available in PDF, in source OpenDocument Format and printed versions from the <a href="https://books.libreoffice/org/en/" rel="noopener" target="_blank">bookshelf</a> and <a href="https://documentation.libreoffice.org" rel="noopener" target="_blank">documentation</a> web pages.</p>
<div class="shariff"/></div>
    </content>
    <updated>2024-03-12T20:09:43Z</updated>
    <published>2024-03-12T20:09:43Z</published>
    <category term="Documentation"/>
    <category term="LibreOffice"/>
    <category term="documentation"/>
    <author>
      <name>Olivier Hallot</name>
    </author>
    <source>
      <id>https://blog.documentfoundation.org/</id>
      <logo>https://blog.documentfoundation.org/wp-content/uploads/2015/10/TDF_Logo_Wiki-50x50.png</logo>
      <link href="https://blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>The home of LibreOffice</subtitle>
      <title>The Document Foundation Blog</title>
      <updated>2024-03-18T19:25:46Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://qa.blog.documentfoundation.org/?p=2185</id>
    <link href="https://qa.blog.documentfoundation.org/2024/03/11/qa-dev-report-february-2024/" rel="alternate" type="text/html"/>
    <title>QA/Dev Report: February 2024</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 7.6.5 was <a href="https://blog.documentfoundation.org/blog/2024/02/22/libreoffice-7-6-5/">released</a> on February 22</li>
<li>LibreOffice 24.2.1 was <a href="https://blog.documentfoundation.org/blog/2024/02/29/libreoffice-24-2-1/">released</a> on February 29</li>
<li>Olivier Hallot (TDF) added help content for Calc’s XLOOKUP and XMATCH functions, Navigate By in Find toolbar, Draw’s Shrink text on overflow and did many fixed and cleanups in Help</li>
<li>Rafael Lima made it so selected text in the BASIC editor is automatically inserted into the search bar, added a command for toggling code block commenting in BASIC IDE and fixed an issue where Duplicate Sheet command might create the sheet in the wrong file, if having two open files with the same name</li>
<li>Stanislav Horacek updated command paths in Help</li>
<li>Stéphane Guillou (TDF) updated command paths in Help</li>
<li>Alain Romedenne updated ScriptForge Help pages, updated Python shell script Help for macOS and improved Python example in SDK</li>
<li>Dione Maddern did many fixes and updates to Help pages, mostly fixing links</li>
<li>Gábor Kelemen (allotropia) made some cleanups in Help and in UI and UNO bridges code</li>
<li>Laurent Balland fixed an issue with skip empty cells option not working for the last column in Calc Text Import dialog, made it so custom number formats using the ? character replace trailing zeroes with figure spaces which have a width approximating a digit and removed unneeded thumbnail.png images from Wizard templates</li>
<li>Miklós Vajna (Collabora) added <a href="https://vmiklos.hu/blog/sw-legal-numbering.html">legal numbering support</a> for DOC and RTF files, made Calc HTML import support data-sheets attributes, made Calc’s cell editing accept pasted HTML fragments, made DOCX content control handling more robust and continued polishing floating table support</li>
<li>Szymon Kłos, Gülşah Köse, Marco Cecchetti, Gökay Şatır, Pranam Lashkari, Michael Meeks and Méven Car (Collabora) worked on LOKit used by Collabora Online</li>
<li>Attila Szűcs (Collabora) fixed PPTX issues with multiline field wrapping and stacked text</li>
<li>Henry Castro (Collabora) tweaked Calc’s background colour filter to not extend transparent colours to empty cells and fixed an issue with Sidebar not displaying the full localised currency string for cell properties</li>
<li>Tomaž Vajngerl (Collabora) made it so the currencies used in a spreadsheet are put at the top of the currency pop-up list, made pivot table data cache handling smarter and improved the handling of XLS documents with unknown DRM encryption (mainly due to some Excel addons)</li>
<li>Julien Nabet fixed an issue where Data validation without error check allowed entering incorrect data, fixed LOWER not being supported in Base’s Query-GUI if condition was LIKE and fixed an issue with Calc Macro setting SearchWildcard to False changing SearchRegularExpression value. He also fixed some crashes</li>
<li>Andreas Heinisch made Calc’s Autofilter sorting and removing duplicates more robust and made it so a single click is enough to access options through Calc’s status bar</li>
<li>Xisco Faulí (TDF) made over a dozen addition and changes to automated tests, improved dark mode support of Writer comment UI, fixed an issue with Autofilter empty option, made SVG text baseline handling more intuitive, added support for in and result SVG filter attributes and fixed a crash</li>
<li>Michael Stahl (allotropia) added support for cropped images in RTF import, fixed an issue with unwanted formatting in DOCX numbered lists, fixed page style for even/odd section breaks in RTF/DOCX import and fixed a memory leak related to copying Writer content</li>
<li>Mike Kaganski (Collabora) made many improvements to repairing broken documents, implemented auto-accelerator feature on Windows, fixed an issue with PDF compliance, fixed an issue with vertical alignment of math formulas, fixed an issue preventing Select All in Writer from working when section at the start of document body was hidden, made the handling of temporary directories more robust, fixed an issue with unwanted wrapping in Calc and fixed crashes. He also restored a Boost library patch related to Windows locales, which was found to work around a Windows bug causing a hang after opening file dialogs</li>
<li>Caolán McNamara (Collabora) improved dark mode support for charts and optimised Calc’s performance. He also fixed crashes and many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on WASM build. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) dramatically improved the memory use when exporting a PDF with lots of small graphics and expanded mergedlibs build support. He also did many code cleanups</li>
<li>Justin Luth (Collabora) made many improvements to VML and DML graphics support and gradient support in Microsoft document formats, fixed an issue with unwanted optimal row height in XLSX import and made it so applied date/time language is detected in Impress’s insert header/footer dialog</li>
<li>Michael Weghorn (TDF) worked on bringing native Qt widgets to Qt/KDE UI, fixed clipboard issues affecting Qt-based UIs under Wayland on Linux, added support for module-specific window icons on Wayland and fixed accessibility issues in areas such as the Navigator and Calc’s rows and columns</li>
<li>Balázs Varga (allotropia) made the recently-added Calc XLOOKUP function implementation more robust, added Excel2021 function XMATCH to Calc and added a global config setting RecalcOptimalRowHeightMode for optimal row height recalculation when loading spreadsheets</li>
<li>Patrick Luby (NeoOffice) made many improvements to certificate management on macOS, worked around a nasty bug in Apple’s toolchain hampering debugging, fixed a performance issue related to font handling on macOS and fixed many macOS crashes</li>
<li>Jim Raykowski made Draw less jumpy when deleting pages, made “New style from selection” work in Impress and Draw, revamped Writer Navigator’s go to page spin control, made keyboard shortcuts work when focus is in toolbar in all UIs and improved the layout of the top toolbox of the Navigator</li>
<li>Sarper Akdemir (allotropia) added a panel that shows presenter notes in editing view in Impress</li>
<li>Regina Henschel fixed an issue with snap guides disappearing in Impress and Draw and took the first step in implementing 3D element support for PPTX import</li>
<li>Sahil Gautam added a selection locking feature to Calc’s Autofilter</li>
<li>Samuel Mehrbrodt (allotropia) tweaked highlighting in Navigator, so headings get highlighted instead of bookmarks residing in them, added an option to not write temporary file next to local file to provide a better experience with Samba network shares and made it possible to modify default bullet selection in Writer</li>
<li>Armin Le Grand (allotropia) implemented support for editing Impress slides during presentation and continued the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) fixed an issue where the paragraph end Pilcrow character changed to a different one, if a symbol font was used, fixed importing checkboxes from RTF files, fixed selection in Writer tables with split/merged cells, made special character dialog respect the recently used font, added Writer table sidebar controls to change table alignment and left/right spacing, made it possible to use Cycle Case when cursor is at the beginning or end of a word and not only inside it, improved compatibility with RTF tables, added support for paper tray settings in RTF and DOCX files, made it so Clone Formatting in Impress only applies paragraph attributes from and to fully selected paragraphs and made it so dash replacement autocorrection also works between sentences</li>
<li>Matt K fixed a couple of Writer crashes</li>
<li>Arnaud Versini did some code cleanups</li>
<li>Jaume Pujantell (Collabora) fixed an issue causing text in shapes to be lost when exporting Impress presentations to SVG and implemented reading simple solid fills from the fill styles list in a Visio file theme</li>
<li>Heiko Tietze (TDF) improved the look of Writer comments, made the Keep Ratio setting more intuitive in the Position and Size dialog and made infobar appearances uncluttered</li>
<li>Hossein Nourikhah (TDF) made the build configure error out, if a buggy Windows SDK version is found</li>
<li>Omkar Acharekar worked on bringing native Qt widgets to Qt/KDE UI as part of an Outreachy project</li>
<li>Tibor Nagy (allotropia) fixed an issue where the layout of content to be printed from Calc was not refreshed when changing the orientation</li>
<li>Kurt Nordback worked on adding a chart type for “pie-with-remainder-as-another-pie”</li>
<li>Taichi Haradaguchi updated some dependencies and fixed a link in Help</li>
<li>Juan C. Sanz made it so Firebird embedded databases get their data saved automatically regardless of whether or not the save button is pressed</li>
<li>Ashod Nakashian (Collabora) fixed corner-case issues with DOCX content controls and change tracking</li>
<li>Yiğit Akçay added a feature for enclosing selected text in parentheses/brackets or quotation marks in Writer</li>
<li>Vladislav Tarakanov fixed an issue with slideshow navigation bar, where double-clicking would advance three slides</li>
<li>Vasily Melenchuk (CIB) fixed an issue with field styles in RTF import</li>
<li>Áron Budea (Collabora) did some code cleanups</li>
<li>Hubert Figuière and Vivek Javiya (Collabora) worked on jsdialog used in Collabora Online</li>
<li>Akshay Warrier added a goto page/slide dialog for Impress and Draw</li>
<li>Kevin Ottens fixed backup copy creation for files on mounted Samba shares</li>
<li>David Gilbert fixed a PDF import performance issue involving tiling pattern fills</li>
<li>Po-Yen Huang fixed an issue with Calc’s ROUND function producing inconsistent results in some cases (co-authored with Franklin Weng and Firefly</li>
<li>Kohei Yoshida optimised Calc’s performance</li>
<li>Zeph Chai translated an ODK example from Java to Python</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>477</strong> bugs, <strong>55</strong> of which are enhancements, have been reported by <strong>313</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 23 )</li>
<li>Mike Kaganski ( 11 )</li>
<li>lvm ( 11 )</li>
<li>Telesto ( 10 )</li>
<li>Rafael Lima ( 9 )</li>
<li>Xisco Faulí ( 9 )</li>
<li>Regina Henschel ( 8 )</li>
<li>Stéphane Guillou (stragu) ( 7 )</li>
<li>Adalbert Hanßen ( 7 )</li>
<li>Olivier Hallot ( 7 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>458</strong> bugs have been triaged by <strong>79</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 86 )</li>
<li>Buovjaga ( 45 )</li>
<li>Heiko Tietze ( 29 )</li>
<li>Julien Nabet ( 29 )</li>
<li>V Stuart Foote ( 22 )</li>
<li>Mike Kaganski ( 21 )</li>
<li>ady ( 21 )</li>
<li>m_a_riosv ( 21 )</li>
<li>Xisco Faulí ( 21 )</li>
<li>Dieter ( 16 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>419</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>147</strong> bugs have been fixed by <strong>40</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 15 )</li>
<li>Xisco Fauli ( 9 )</li>
<li>Michael Stahl ( 8 )</li>
<li>Miklos Vajna ( 8 )</li>
<li>Oliver Specht ( 7 )</li>
<li>Noel Grandin ( 6 )</li>
<li>Olivier Hallot ( 6 )</li>
<li>Justin Luth ( 5 )</li>
<li>Patrick Luby ( 5 )</li>
<li>Heiko Tietze ( 5 )</li>
</ol>
<p><strong>List of critical bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=157135">tdf#157135</a> LibreOffice 7.6 stalls/crashes under Windows 11 with Norwegian (Bokmål) locale when opening file dialog ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159707">tdf#159707</a> CRASH: Changing to edit mode ( Thanks to Julien Nabet )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=126638">tdf#126638</a> macOS: Can’t paste, copy, cut or ⌘A (select all) using keyboard shortcuts in Save-As field (workaround: comment 38) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=127293">tdf#127293</a> Add XLOOKUP function in Calc ( Thanks to Balazs Varga )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=149499">tdf#149499</a> CRASH: inserting page break and undoing ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=156352">tdf#156352</a> macOS: Save as &gt; Encrypt with GPG key results in hang / crash ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159302">tdf#159302</a> Formula OLE in a line of text or its full height frame is now misaligned vertically, due to change of sm map units ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159519">tdf#159519</a> LibreOffice 24.2.0.3 (Windows 7) ODF files saved with passwords can be opened without any password ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159529">tdf#159529</a> Excessive memory consumption in v24.2 ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159581">tdf#159581</a> FILEOPEN XLSX 24.2: optimal row height from previous sheet may be applied to all future sheets ( Thanks to Justin Luth )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159743">tdf#159743</a> German UI: Many not plausible Keyboard Shortcut Changes ( Thanks to Xisco Fauli )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=54169">tdf#54169</a> LibO doesn’t obey Windows OS setting “only show the accelerator underline when the Alt key is being pressed” ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=55004">tdf#55004</a> backup copy fails when using share / samba (if nobrl cifs mount option not used) ( Thanks to Kevin Ottens )</li>
</ol>
<p><strong>List of crashes fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=147731">tdf#147731</a> Crash in SwFrameFormat::~SwFrameFormat() ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=149499">tdf#149499</a> CRASH: inserting page break and undoing ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155710">tdf#155710</a> Calc crashes </li></ol>…</div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 7.6.5 was <a href="https://blog.documentfoundation.org/blog/2024/02/22/libreoffice-7-6-5/">released</a> on February 22</li>
<li>LibreOffice 24.2.1 was <a href="https://blog.documentfoundation.org/blog/2024/02/29/libreoffice-24-2-1/">released</a> on February 29</li>
<li>Olivier Hallot (TDF) added help content for Calc’s XLOOKUP and XMATCH functions, Navigate By in Find toolbar, Draw’s Shrink text on overflow and did many fixed and cleanups in Help</li>
<li>Rafael Lima made it so selected text in the BASIC editor is automatically inserted into the search bar, added a command for toggling code block commenting in BASIC IDE and fixed an issue where Duplicate Sheet command might create the sheet in the wrong file, if having two open files with the same name</li>
<li>Stanislav Horacek updated command paths in Help</li>
<li>Stéphane Guillou (TDF) updated command paths in Help</li>
<li>Alain Romedenne updated ScriptForge Help pages, updated Python shell script Help for macOS and improved Python example in SDK</li>
<li>Dione Maddern did many fixes and updates to Help pages, mostly fixing links</li>
<li>Gábor Kelemen (allotropia) made some cleanups in Help and in UI and UNO bridges code</li>
<li>Laurent Balland fixed an issue with skip empty cells option not working for the last column in Calc Text Import dialog, made it so custom number formats using the ? character replace trailing zeroes with figure spaces which have a width approximating a digit and removed unneeded thumbnail.png images from Wizard templates</li>
<li>Miklós Vajna (Collabora) added <a href="https://vmiklos.hu/blog/sw-legal-numbering.html">legal numbering support</a> for DOC and RTF files, made Calc HTML import support data-sheets attributes, made Calc’s cell editing accept pasted HTML fragments, made DOCX content control handling more robust and continued polishing floating table support</li>
<li>Szymon Kłos, Gülşah Köse, Marco Cecchetti, Gökay Şatır, Pranam Lashkari, Michael Meeks and Méven Car (Collabora) worked on LOKit used by Collabora Online</li>
<li>Attila Szűcs (Collabora) fixed PPTX issues with multiline field wrapping and stacked text</li>
<li>Henry Castro (Collabora) tweaked Calc’s background colour filter to not extend transparent colours to empty cells and fixed an issue with Sidebar not displaying the full localised currency string for cell properties</li>
<li>Tomaž Vajngerl (Collabora) made it so the currencies used in a spreadsheet are put at the top of the currency pop-up list, made pivot table data cache handling smarter and improved the handling of XLS documents with unknown DRM encryption (mainly due to some Excel addons)</li>
<li>Julien Nabet fixed an issue where Data validation without error check allowed entering incorrect data, fixed LOWER not being supported in Base’s Query-GUI if condition was LIKE and fixed an issue with Calc Macro setting SearchWildcard to False changing SearchRegularExpression value. He also fixed some crashes</li>
<li>Andreas Heinisch made Calc’s Autofilter sorting and removing duplicates more robust and made it so a single click is enough to access options through Calc’s status bar</li>
<li>Xisco Faulí (TDF) made over a dozen addition and changes to automated tests, improved dark mode support of Writer comment UI, fixed an issue with Autofilter empty option, made SVG text baseline handling more intuitive, added support for in and result SVG filter attributes and fixed a crash</li>
<li>Michael Stahl (allotropia) added support for cropped images in RTF import, fixed an issue with unwanted formatting in DOCX numbered lists, fixed page style for even/odd section breaks in RTF/DOCX import and fixed a memory leak related to copying Writer content</li>
<li>Mike Kaganski (Collabora) made many improvements to repairing broken documents, implemented auto-accelerator feature on Windows, fixed an issue with PDF compliance, fixed an issue with vertical alignment of math formulas, fixed an issue preventing Select All in Writer from working when section at the start of document body was hidden, made the handling of temporary directories more robust, fixed an issue with unwanted wrapping in Calc and fixed crashes. He also restored a Boost library patch related to Windows locales, which was found to work around a Windows bug causing a hang after opening file dialogs</li>
<li>Caolán McNamara (Collabora) improved dark mode support for charts and optimised Calc’s performance. He also fixed crashes and many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on WASM build. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) dramatically improved the memory use when exporting a PDF with lots of small graphics and expanded mergedlibs build support. He also did many code cleanups</li>
<li>Justin Luth (Collabora) made many improvements to VML and DML graphics support and gradient support in Microsoft document formats, fixed an issue with unwanted optimal row height in XLSX import and made it so applied date/time language is detected in Impress’s insert header/footer dialog</li>
<li>Michael Weghorn (TDF) worked on bringing native Qt widgets to Qt/KDE UI, fixed clipboard issues affecting Qt-based UIs under Wayland on Linux, added support for module-specific window icons on Wayland and fixed accessibility issues in areas such as the Navigator and Calc’s rows and columns</li>
<li>Balázs Varga (allotropia) made the recently-added Calc XLOOKUP function implementation more robust, added Excel2021 function XMATCH to Calc and added a global config setting RecalcOptimalRowHeightMode for optimal row height recalculation when loading spreadsheets</li>
<li>Patrick Luby (NeoOffice) made many improvements to certificate management on macOS, worked around a nasty bug in Apple’s toolchain hampering debugging, fixed a performance issue related to font handling on macOS and fixed many macOS crashes</li>
<li>Jim Raykowski made Draw less jumpy when deleting pages, made “New style from selection” work in Impress and Draw, revamped Writer Navigator’s go to page spin control, made keyboard shortcuts work when focus is in toolbar in all UIs and improved the layout of the top toolbox of the Navigator</li>
<li>Sarper Akdemir (allotropia) added a panel that shows presenter notes in editing view in Impress</li>
<li>Regina Henschel fixed an issue with snap guides disappearing in Impress and Draw and took the first step in implementing 3D element support for PPTX import</li>
<li>Sahil Gautam added a selection locking feature to Calc’s Autofilter</li>
<li>Samuel Mehrbrodt (allotropia) tweaked highlighting in Navigator, so headings get highlighted instead of bookmarks residing in them, added an option to not write temporary file next to local file to provide a better experience with Samba network shares and made it possible to modify default bullet selection in Writer</li>
<li>Armin Le Grand (allotropia) implemented support for editing Impress slides during presentation and continued the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) fixed an issue where the paragraph end Pilcrow character changed to a different one, if a symbol font was used, fixed importing checkboxes from RTF files, fixed selection in Writer tables with split/merged cells, made special character dialog respect the recently used font, added Writer table sidebar controls to change table alignment and left/right spacing, made it possible to use Cycle Case when cursor is at the beginning or end of a word and not only inside it, improved compatibility with RTF tables, added support for paper tray settings in RTF and DOCX files, made it so Clone Formatting in Impress only applies paragraph attributes from and to fully selected paragraphs and made it so dash replacement autocorrection also works between sentences</li>
<li>Matt K fixed a couple of Writer crashes</li>
<li>Arnaud Versini did some code cleanups</li>
<li>Jaume Pujantell (Collabora) fixed an issue causing text in shapes to be lost when exporting Impress presentations to SVG and implemented reading simple solid fills from the fill styles list in a Visio file theme</li>
<li>Heiko Tietze (TDF) improved the look of Writer comments, made the Keep Ratio setting more intuitive in the Position and Size dialog and made infobar appearances uncluttered</li>
<li>Hossein Nourikhah (TDF) made the build configure error out, if a buggy Windows SDK version is found</li>
<li>Omkar Acharekar worked on bringing native Qt widgets to Qt/KDE UI as part of an Outreachy project</li>
<li>Tibor Nagy (allotropia) fixed an issue where the layout of content to be printed from Calc was not refreshed when changing the orientation</li>
<li>Kurt Nordback worked on adding a chart type for “pie-with-remainder-as-another-pie”</li>
<li>Taichi Haradaguchi updated some dependencies and fixed a link in Help</li>
<li>Juan C. Sanz made it so Firebird embedded databases get their data saved automatically regardless of whether or not the save button is pressed</li>
<li>Ashod Nakashian (Collabora) fixed corner-case issues with DOCX content controls and change tracking</li>
<li>Yiğit Akçay added a feature for enclosing selected text in parentheses/brackets or quotation marks in Writer</li>
<li>Vladislav Tarakanov fixed an issue with slideshow navigation bar, where double-clicking would advance three slides</li>
<li>Vasily Melenchuk (CIB) fixed an issue with field styles in RTF import</li>
<li>Áron Budea (Collabora) did some code cleanups</li>
<li>Hubert Figuière and Vivek Javiya (Collabora) worked on jsdialog used in Collabora Online</li>
<li>Akshay Warrier added a goto page/slide dialog for Impress and Draw</li>
<li>Kevin Ottens fixed backup copy creation for files on mounted Samba shares</li>
<li>David Gilbert fixed a PDF import performance issue involving tiling pattern fills</li>
<li>Po-Yen Huang fixed an issue with Calc’s ROUND function producing inconsistent results in some cases (co-authored with Franklin Weng and Firefly</li>
<li>Kohei Yoshida optimised Calc’s performance</li>
<li>Zeph Chai translated an ODK example from Java to Python</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>477</strong> bugs, <strong>55</strong> of which are enhancements, have been reported by <strong>313</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 23 )</li>
<li>Mike Kaganski ( 11 )</li>
<li>lvm ( 11 )</li>
<li>Telesto ( 10 )</li>
<li>Rafael Lima ( 9 )</li>
<li>Xisco Faulí ( 9 )</li>
<li>Regina Henschel ( 8 )</li>
<li>Stéphane Guillou (stragu) ( 7 )</li>
<li>Adalbert Hanßen ( 7 )</li>
<li>Olivier Hallot ( 7 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>458</strong> bugs have been triaged by <strong>79</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 86 )</li>
<li>Buovjaga ( 45 )</li>
<li>Heiko Tietze ( 29 )</li>
<li>Julien Nabet ( 29 )</li>
<li>V Stuart Foote ( 22 )</li>
<li>Mike Kaganski ( 21 )</li>
<li>ady ( 21 )</li>
<li>m_a_riosv ( 21 )</li>
<li>Xisco Faulí ( 21 )</li>
<li>Dieter ( 16 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>419</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>147</strong> bugs have been fixed by <strong>40</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/03/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 15 )</li>
<li>Xisco Fauli ( 9 )</li>
<li>Michael Stahl ( 8 )</li>
<li>Miklos Vajna ( 8 )</li>
<li>Oliver Specht ( 7 )</li>
<li>Noel Grandin ( 6 )</li>
<li>Olivier Hallot ( 6 )</li>
<li>Justin Luth ( 5 )</li>
<li>Patrick Luby ( 5 )</li>
<li>Heiko Tietze ( 5 )</li>
</ol>
<p><strong>List of critical bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=157135">tdf#157135</a> LibreOffice 7.6 stalls/crashes under Windows 11 with Norwegian (Bokmål) locale when opening file dialog ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159707">tdf#159707</a> CRASH: Changing to edit mode ( Thanks to Julien Nabet )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=126638">tdf#126638</a> macOS: Can’t paste, copy, cut or ⌘A (select all) using keyboard shortcuts in Save-As field (workaround: comment 38) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=127293">tdf#127293</a> Add XLOOKUP function in Calc ( Thanks to Balazs Varga )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=149499">tdf#149499</a> CRASH: inserting page break and undoing ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=156352">tdf#156352</a> macOS: Save as &gt; Encrypt with GPG key results in hang / crash ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159302">tdf#159302</a> Formula OLE in a line of text or its full height frame is now misaligned vertically, due to change of sm map units ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159519">tdf#159519</a> LibreOffice 24.2.0.3 (Windows 7) ODF files saved with passwords can be opened without any password ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159529">tdf#159529</a> Excessive memory consumption in v24.2 ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159581">tdf#159581</a> FILEOPEN XLSX 24.2: optimal row height from previous sheet may be applied to all future sheets ( Thanks to Justin Luth )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159743">tdf#159743</a> German UI: Many not plausible Keyboard Shortcut Changes ( Thanks to Xisco Fauli )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=54169">tdf#54169</a> LibO doesn’t obey Windows OS setting “only show the accelerator underline when the Alt key is being pressed” ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=55004">tdf#55004</a> backup copy fails when using share / samba (if nobrl cifs mount option not used) ( Thanks to Kevin Ottens )</li>
</ol>
<p><strong>List of crashes fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=147731">tdf#147731</a> Crash in SwFrameFormat::~SwFrameFormat() ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=149499">tdf#149499</a> CRASH: inserting page break and undoing ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155710">tdf#155710</a> Calc crashes </li></ol>…</div>
    </content>
    <updated>2024-03-11T12:21:29Z</updated>
    <published>2024-03-11T12:21:29Z</published>
    <category term="reports"/>
    <author>
      <name>x1sc0</name>
    </author>
    <source>
      <id>https://qa.blog.documentfoundation.org/</id>
      <link href="https://qa.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://qa.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Updates from the Quality Assurance community</subtitle>
      <title>LibreOffice QA Blog</title>
      <updated>2024-03-11T12:21:29Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://mesahilgautam.github.io/post/libreoffice-user-hostile-dialog-box/</id>
    <link href="https://mesahilgautam.github.io/post/libreoffice-user-hostile-dialog-box/" rel="alternate" type="text/html"/>
    <title>User Hostile Dialog Box</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://sahilgautam.in"><img align="left" alt="Git" src="https://www.svgrepo.com/show/130741/blog.svg" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://twitter.com/mesahilgautam"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Logo_of_Twitter.svg/2491px-Logo_of_Twitter.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://www.linkedin.com/in/mesahilgautam"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/LinkedIn_icon.svg/768px-LinkedIn_icon.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://github.com/mesahilgautam"><img align="left" alt="Git" src="https://static-00.iconduck.com/assets.00/github-icon-2048x2048-dpporae2.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://gerrit.libreoffice.org/q/owner:sahil%2540libreoffice.org"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Gerrit_icon.svg/1024px-Gerrit_icon.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="mailto:me.sahilgautam@gmail.com"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Gmail_icon_%282020%29.svg/2560px-Gmail_icon_%282020%29.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<a href="https://mesahilgautam.github.io/index.xml"><img align="left" alt="Git" src="https://upload.wikimedia.org/wikipedia/en/thumb/4/43/Feed-icon.svg/2048px-Feed-icon.svg.png" style="padding-right: 10px;" width="30px"/> </a>
<br/></p>
<h2 id="what-do-i-want-to-achieve">What do I want to achieve</h2>
<p>It’s important to set some target before jumping into and starting to do the
thing. I would like to make an annoying “Donate Now” dialog</p>
<ul>
<li>
<p>The dialog would show up whenever the user starts libreoffice, or whenever he
switches to different modules like calc or writer etc.</p>
</li>
<li>
<p>The dialog would look something like the mockup shown below. The dialog
should have a faint background image which shows all the community members,
to give out cheerfull vibes. Other than that it would have a text which would
be some interesting fact about libreoffice.</p>
</li>
<li>
<p>It would have an image on the top, and a “donate now” and a “close” button on
the bottom It would also have a checkbox saying “I am broke”, which would be
unchecked by default. If the user checks it, then the dialog will stop asking
for monitory donations, and instead pester the user with “Other Ways To
Contribute”, which would include all the getting involved stuff.</p>
</li>
<li>
<p>Other than that It would also have an “I don’t care” checkbox, which will be
unchecked by default, and if checked, the dialog won’t show up again, and
then one has to reactivate it from <code>about &gt; user-hostile-donation-dialog</code>.</p>
</li>
</ul>
<img align="center" alt="Git" src="https://mesahilgautam.github.io/attachments/202411074_6.png" style="padding-right: 10px;" width="400px"/>
<p>This would makeup for a nice and fun learning experience. It would involve
playing around with the UI, listeners, strings, “the user centiments” etc.</p>
<p>It’s not a rigid outline, but rather an idea to atleast get started. <a href="https://gerrit.libreoffice.org/c/core/+/159434">Patch on gerrit</a>.</p>
<h2 id="starting-with-the-ui">Starting with the UI</h2>
<p>I will start with understanding how the about dialog is implemented, how does
it display images and custom text etc. One thing that I noticed previously is that
the “Tip Of The Day” dialog uses GtkDrawingArea while the about dialog uses GtkImage.</p>
<blockquote>
<p>I asked on the #gtk IRC channel, and found that GtkImage is an image loaded from the
disk at a specific size, while GtkDrawingArea is a canvas you draw on using cario.</p>
</blockquote>
<p>This might have been the reason for why Libreoffice was carshing when I used GtkImage
while trying to recreate the “Tip Of The Day” dialog. There I just created a bare
constructor, without specifying the image.</p>
<p>Well for the user hostile dialog, GtkImage would work fine as I don’t need to change the
image on the go.</p>
<h3 id="creating-a-dialog">Creating a Dialog</h3>
<p>I created a dialog box using glade. The challenge that I faced was that I was
not able to move the checkboxes in the ButtonBox of the GtkDialog to the left
side. All 4 controls were stuck together. Then I looked into how the
tip-of-the-day dialog does it, and there I found that whatever control I wanted
to left align (in the button box), I had to turn on the <code>packing &gt; secondary</code>
control. What that is, I am still to investigate into.I got this <a href="https://docs.gtk.org/gtk3/method.ButtonBox.set_child_secondary.html">Documentation Reference</a>
from the #gtk IRC channel.</p>
<p>For some reason, the dialog doesn’t carsh now :). Other issue that I faced was
related to text wrapping. So if I set some long text in a <code>weld::Label</code> using
the <code>set_label(OUString)</code> function, then it just expands the dialog to fit in
one line. GtkImage is just a bitmap image, for which we specify the size
(width) while loading it. For label wrapping, I will look into how the
tip-of-the-day dialog does it. Making the dialog resizable doesn’t work as
well. Under <code>general &gt; formatting</code> of the GtkLabel there is an option to specify
wrapping properties, and just below that are boxes for max width. Playing around with
those, I was able to get text wrapping to work.</p>
<blockquote>
<p>Sometimes these things feel hard, and I tend to avoid them as much as I can.
But Now I realize that it is those hard moments which build me to tackel bigger
challenges, and I should be looking for such opportunities. Today I find glade
easier to use compared to yesterday</p>
</blockquote>
<p>I got the dialog as I wanted. Looks nice! When I was working on the dialog, I
changed the <code>SID_ABOUT:</code> unocommand to display the user-hostile-dialog instead
of the about dialog. This way I was able to test whether it works as expected
or not.</p>
<img align="center" alt="Git" src="https://mesahilgautam.github.io/attachments/2024-075.png" style="padding-right: 10px;" width="350px"/>
<p>Then I went ahead to work on the listeners and the configuration logic. There
should be some way for us to remember what options were checked/unchecked when
the dialog was closed (configuration), and some way know which module we are
entering, so that we can change the text accordingly (listeners).</p>
<h2 id="what-next">What Next?</h2>
<p>I figured that for each dialog, we have a generic wrapper class called
<code>VclAbstractDialog</code>. It provides “one type for all dialogs” solution, which
makes sense. I followed the about/tip-of-the-day dialog to write all these
functions and classes. And since I want a menu entry as well, I had to create
an unocommand as well. I found that each module, and the start center etc have
their own menubar.xml file. I added the user-hostile-dialog entry to most of
those.</p>
<h3 id="adding-listeners">Adding Listeners</h3>
<p>Looking into tip-of-the-day dialog, I found that when it is created,  it adds a
listener on the parent window, and checks if it is dying or not, and if so then
it terminates as well. Then in the destructor, it removes the listener.</p>
<p>For adding listeners to show the dialog on such and such events, I had to read
through the <code>SfxViewFrame::Notify</code> function, as described in the <a href="https://design.blog.documentfoundation.org/2019/06/26/how-to-create-a-new-dialog/">Blog</a>.
It listens for changes like document created/opened and creates the dialog then.</p>
<h3 id="remembering-dialog-configuration">Remembering Dialog Configuration</h3>
<p>The last part was to remember whether the user checked some checkbox or not, and
remember that throughout the session, and between new sessions. I defined configuration
defaults in xml file <code>officecfg/registry/schema/org/openoffice/Office/Common.xcs</code> and
used the path to define a struct, through which we access/set the values, similar to
how tip-of-the-day dialog does it.</p>
<div class="highlight"><pre tabindex="0"><code class="language-cpp"><span style="display: flex;"><span><span style="color: #204a87; font-weight: bold;">struct</span> <span style="color: #000;">UserHostileDialogDontCare</span> <span style="color: #ce5c00; font-weight: bold;">:</span> <span style="color: #204a87; font-weight: bold;">public</span> <span style="color: #000;">comphelper</span><span style="color: #ce5c00; font-weight: bold;">::</span><span style="color: #000;">ConfigurationProperty</span><span style="color: #ce5c00; font-weight: bold;">&lt;</span><span style="color: #000;">LastTipOfTheDayShown</span><span style="color: #000; font-weight: bold;">,</span> <span style="color: #000;">sal_Int32</span><span style="color: #ce5c00; font-weight: bold;">&gt;</span> <span style="color: #000; font-weight: bold;">{</span>
</span></span><span style="display: flex;"><span>    <span style="color: #204a87; font-weight: bold;">static</span> <span style="color: #000;">OUString</span> <span style="color: #000;">path</span><span style="color: #000; font-weight: bold;">()</span> <span style="color: #000; font-weight: bold;">{</span> <span style="color: #204a87; font-weight: bold;">static</span> <span style="color: #204a87; font-weight: bold;">constexpr</span> <span style="color: #000;">OUString</span> <span style="color: #000;">PATH</span><span style="color: #000; font-weight: bold;">(</span><span style="color: #4e9a06;">u</span><span style="color: #4e9a06;">"/org.openoffice.Office.Common/Misc/UserHostileDialogDontCare"</span><span style="color: #000;">_ustr</span><span style="color: #000; font-weight: bold;">);</span> <span style="color: #204a87; font-weight: bold;">return</span> <span style="color: #000;">PATH</span><span style="color: #000; font-weight: bold;">;</span> <span style="color: #000; font-weight: bold;">}</span>
</span></span><span style="display: flex;"><span><span style="color: #204a87; font-weight: bold;">private</span><span style="color: #ce5c00; font-weight: bold;">:</span>
</span></span><span style="display: flex;"><span>    <span style="color: #000;">UserHostileDialogDontCare</span><span style="color: #000; font-weight: bold;">();</span> <span style="color: #8f5902; font-style: italic;">// not defined
</span></span></span><span style="display: flex;"><span><span style="color: #8f5902; font-style: italic;"/>    <span style="color: #ce5c00; font-weight: bold;">~</span><span style="color: #000;">UserHostileDialogDontCare</span><span style="color: #000; font-weight: bold;">();</span> <span style="color: #8f5902; font-style: italic;">// not defined
</span></span></span><span style="display: flex;"><span><span style="color: #8f5902; font-style: italic;"/><span style="color: #000; font-weight: bold;">};</span>
</span></span><span style="display: flex;"><span>
</span></span><span style="display: flex;"><span><span style="color: #000; font-weight: bold;">...</span>
</span></span></code></pre></div><p>Now when the dialog is created , these configuration values are checked, and
are used to set the state of the controls. When the dialog is destroyed, these
choices are not lost. I forgot to set the type to boolean in the xml file, and
as a result, the dialog was not showing up, so that’s something to reember as
well, while copy pasting ;).</p>
<p>I added links to the checkboxes as well to change the <code>Donate</code> button to
<code>Contribute</code>, if the user says “I’m broke!”</p>
<h3 id="button-opens-donationcontribution-page">Button Opens Donation/Contribution page</h3>
<p>Since the user can either donate or contribute, I had to redirect him to the correct
page. For that I looked at how <code>.uno:Donation</code> does it. At first I tried to do it how
the .uno:Donation does it, but then I thought why don’t I just call the uno commands!</p>
<p>So when the button is clicked, it dispatches uno commands depending on whether “[ ] I’m broke!”
is checked or not.</p>
<h2 id="whats-left">What’s Left?</h2>
<p>Since I want it to be User Hostile, there should be some way to show it when
start center is opened. Other than that there should be some way to tell which
module is opened, and change the label according to that.</p></div>
    </summary>
    <updated>2024-03-11T00:00:00Z</updated>
    <published>2024-03-11T00:00:00Z</published>
    <author>
      <name>me.sahilgautam.github.io (Sahil Gautam)</name>
    </author>
    <source>
      <id>https://mesahilgautam.github.io/</id>
      <author>
        <name>me.sahilgautam.github.io (Sahil Gautam)</name>
      </author>
      <link href="https://mesahilgautam.github.io/" rel="alternate" type="text/html"/>
      <link href="https://mesahilgautam.github.io/index.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Recent content on Sahil Gautam</subtitle>
      <title>Sahil Gautam</title>
      <updated>2024-03-15T16:00:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://blog.documentfoundation.org/?p=15076</id>
    <link href="https://blog.documentfoundation.org/blog/2024/03/08/nepali-community-celebrates-libreoffice-24-2-release-party-with-cs50x-nepal-students/" rel="alternate" type="text/html"/>
    <title>Nepali Community celebrates LibreOffice 24.2 Release Party with CS50x Nepal students</title>
    <summary>Suraj Bhattarai, our Nepalese LibreOffice Community Liaison, writes: We shared some positive words around the LibreOffice project, among students of IOE Purwanchal Campus enrolled in CS50x Nepal. The LibreOffice orientation was scheduled for two hours on 21st February, 2024 at the MSC special classroom of the same campus; it was a special session in the […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="Info banner about LibreOffice special session for Nepali community" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/nepal_libreoffice_session.jpg"/></p>
<p><strong>Suraj Bhattarai, our Nepalese LibreOffice Community Liaison, writes:</strong></p>
<p>We shared some positive words around the LibreOffice project, among students of IOE Purwanchal Campus enrolled in CS50x Nepal. The LibreOffice orientation was scheduled for two hours on 21st February, 2024 at the MSC special classroom of the same campus; it was a special session in the CS50x Nepal timeline.</p>
<p>The session that I delivered gave a general overview of the LibreOffice project, The Document Foundation, the <a href="https://www.documentliberation.org/">Document Liberation Project</a>, past activities carried out by the local Nepali community, customization tips and tricks for familiarity, and how to contribute or connect in the community.</p>
<p><img alt="LibreOffice special session for Nepali community" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/nepal_libreoffice_session_01.jpg"/></p>
<p>Moreover, the session – organized for 30 CS50x Students – included a total participation of 47 people, seven of whom were Nepali Community members, six of whom were other students, and the rest were the CS50x staff. The session was primarily intended to introduce the LibreOffice suite and provide hands-on experience with it, to the newly enrolled, first-year students in the campus, who were actually enrolled for the CS50x classes.</p>
<p>The session had this breakdown:</p>
<ul>
<li>40 mins of talks</li>
<li>30 mins of quick presentation competition using LibreOffice Impress</li>
<li>30 mins of release party cake and celebration</li>
<li>And lastly, 30 mins of Plane Rush competition as a fun touch to the session</li>
</ul>
<p>The competition was facilitated by our community volunteers, where they distributed some gifts as well. The challenge for the competition was to create a visually appealing, quick three-page presentation using LibreOffice Impress on-the-spot, in 25 minutes. All they had to do was recreate the presentation slide version of the <a href="https://blog.documentfoundation.org/blog/2021/07/15/libreoffice-flyer-for-schools-and-universities-extra-design/">LibreOffice university/school (English) flyer</a>.</p>
<p><img alt="LibreOffice special session for Nepali community" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/nepal_libreoffice_session_02.jpg"/></p>
<p>The gifts were LibreOffice T-shirts, water bottles, Document Liberation Project stickers, pens and more. The same gifts were distributed to winners of the Plane Rush activity as well, and some light items like stickers and pens were given to everyone present in the session.</p>
<p>After some hands-on experience with LibreOffice Impress, a quick survey was conducted, where 27 of the participants claimed that they tried LibreOffice for the very first time. The same survey had asked what they love about LibreOffice. And honestly, a majority of them mentioned the reasons to be: open source, free, compatible with Microsoft Office files, community driven, cross-platform, privacy, and feature-rich.</p>
<p>The latter half of the session was filled with fun, as we cut and shared the vanilla-flavored release party cake with everyone present in the room. The environment was really fun with flashes, noise, claps, smiles, and cameras and eyes all over the cake.</p>
<p><img alt="LibreOffice special session for Nepali community" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/nepal_libreoffice_session_03.jpg"/></p>
<p>Lastly, in the sunset and the open ground, participants flew their own paper planes based on <a href="https://wiki.documentfoundation.org/File:LibreOffice_PaperPlaneFront.odg">LibreOffice PaperPlaneFront.odg</a>. The session was totally fun and a unique experience for everyone. And yes, they did collect the planes for paper recycling later on. And with this, the day, joy and celebration all came down to a happy ending with the efforst from the Nepali community.</p>
<p><img alt="LibreOffice special session for Nepali community" class="aligncenter" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/nepal_libreoffice_session_04.jpg"/></p>
<div class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " id="_ytid_61133" style="display: block; margin: 0px auto;">
<p><strong>Please confirm that you want toÂ play a YouTube video.</strong> By accepting, you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" rel="noopener" target="_blank">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<p><button class="__youtube_prefs_gdpr__" type="button">Accept YouTube Content<img alt="accept" src="https://blog.documentfoundation.org/wp-content/plugins/youtube-embed-plus/images/icon-check.png"/></button></p></div>
<div class="shariff"/></div>
    </content>
    <updated>2024-03-08T09:51:25Z</updated>
    <published>2024-03-08T09:51:25Z</published>
    <category term="Community"/>
    <category term="LibreOffice"/>
    <category term="Meetings"/>
    <author>
      <name>Mike Saunders</name>
    </author>
    <source>
      <id>https://blog.documentfoundation.org/</id>
      <logo>https://blog.documentfoundation.org/wp-content/uploads/2015/10/TDF_Logo_Wiki-50x50.png</logo>
      <link href="https://blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>The home of LibreOffice</subtitle>
      <title>The Document Foundation Blog</title>
      <updated>2024-03-18T19:25:46Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://blog.documentfoundation.org/?p=15068</id>
    <link href="https://blog.documentfoundation.org/blog/2024/03/04/libreoffice-at-fosdem-2024/" rel="alternate" type="text/html"/>
    <title>LibreOffice at FOSDEM 2024</title>
    <summary>FOSDEM is the biggest meetup of free and open source software (FOSS) developers in Europe, and takes place every year, in early February, in Brussels. And the LibreOffice project is always there! We had a stand with merchandise, and community members were present to answer questions, provide information about new features in LibreOffice, and meet […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="LibreOffice at FOSDEM 2024" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/fosdem_2023_02.jpg"/></p>
<p><a href="https://fosdem.org">FOSDEM</a> is the biggest meetup of free and open source software (FOSS) developers in Europe, and takes place every year, in early February, in Brussels. And the LibreOffice project is always there!</p>
<p>We had a stand with merchandise, and community members were present to answer questions, provide information about new features in LibreOffice, and meet people from other FOSS projects.</p>
<p>Our LibreOffice pens were very popular, as were <a href="https://www.documentliberation.org/">Document Liberation Project</a> stickers and flyers. Many visitors to the stand were regular LibreOffice users and just wanted to say thank you, some buying a T-shirt or hoodie as well. We even had a couple of donations on the spot! Others asked <a href="https://whatcanidoforlibreoffice.org/">what they can do for LibreOffice</a>.</p>
<p>And here are a few photos from the event, and our community dinner. This is just the beginning though – we plan to be at many more events this year!</p>
<p><img alt="LibreOffice at FOSDEM 2024" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/fosdem_2023_01.jpg"/></p>
<p><img alt="LibreOffice at FOSDEM 2024" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/fosdem_2023_03.jpg"/></p>
<p><img alt="LibreOffice at FOSDEM 2024" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/fosdem_2023_04.jpg"/></p>
<div class="shariff"/></div>
    </content>
    <updated>2024-03-04T16:58:50Z</updated>
    <published>2024-03-04T16:58:50Z</published>
    <category term="Community"/>
    <category term="LibreOffice"/>
    <category term="Meetings"/>
    <author>
      <name>Mike Saunders</name>
    </author>
    <source>
      <id>https://blog.documentfoundation.org/</id>
      <logo>https://blog.documentfoundation.org/wp-content/uploads/2015/10/TDF_Logo_Wiki-50x50.png</logo>
      <link href="https://blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>The home of LibreOffice</subtitle>
      <title>The Document Foundation Blog</title>
      <updated>2024-03-18T19:25:46Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://blog.documentfoundation.org/?p=15055</id>
    <link href="https://blog.documentfoundation.org/blog/2024/03/01/board-of-directors-2024/" rel="alternate" type="text/html"/>
    <title>The new Board of Directors</title>
    <summary>The new Board of Directors of The Document Foundation has just started its two-year term on 18 February 2024. The full members are, in alphabetical order: Eliane Domingos, Sophie Gautier, Björn Michaelsen, László Németh, Simon Phipps, Eike Rathke, Italo Vignoli. The deputies are again in alphabetical order: Osvaldo Gervasi, Mike Saunders, Paolo Vecchi. Mike Saunders […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://blog.documentfoundation.org/wp-content/uploads/2024/03/BANNER3-BOARD-2024-2026.png"><img alt="" class="alignnone size-full wp-image-15057" height="512" src="https://blog.documentfoundation.org/wp-content/uploads/2024/03/BANNER3-BOARD-2024-2026.png" width="1024"/></a></p>
<p>The new Board of Directors of The Document Foundation has just started its two-year term on 18 February 2024.</p>
<p>The full members are, in alphabetical order: Eliane Domingos, Sophie Gautier, Björn Michaelsen, László Németh, Simon Phipps, Eike Rathke, Italo Vignoli.</p>
<p>The deputies are again in alphabetical order: Osvaldo Gervasi, Mike Saunders, Paolo Vecchi.</p>
<p>Mike Saunders was elected to the Board for the first time. All the other members have served either on the Steering Committee from 2010 to 2012 (Sophie Gautier and Italo Vignoli) or on the Board of Directors since 2014 as full or deputy members.</p>
<p>At its first meeting, the Board unanimously elected Eliane Domingos as Chair and Simon Phipps as Vice-Chair.</p>
<p>At the same time, they decided to review and reorganise responsibilities and areas of oversight to ensure a more agile decision-making process.</p>
<p>Six people who served during the previous term have left the Board, but will continue to contribute to the project as TDF Members: Thorsten Behrens, Gábor Kelemen, Gabriel Masei, Cor Nouws, Emiliano Vavassori, Ayhan Yalçınsoy.</p>
<p>We are deeply grateful to all of them for their dedication, their contribution to decision making and all the time they have volunteered to serve on the Board, as well as their ongoing contribution to FOSS and LibreOffice.</p>
<div class="shariff"/></div>
    </content>
    <updated>2024-03-01T13:08:46Z</updated>
    <published>2024-03-01T13:08:46Z</published>
    <category term="Announcements"/>
    <category term="Foundation"/>
    <author>
      <name>Italo Vignoli</name>
    </author>
    <source>
      <id>https://blog.documentfoundation.org/</id>
      <logo>https://blog.documentfoundation.org/wp-content/uploads/2015/10/TDF_Logo_Wiki-50x50.png</logo>
      <link href="https://blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>The home of LibreOffice</subtitle>
      <title>The Document Foundation Blog</title>
      <updated>2024-03-18T19:25:46Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:vmiklos.hu,2024-03-01:/blog/sw-legal-numbering.html</id>
    <link href="https://vmiklos.hu/blog/sw-legal-numbering.html" rel="alternate" type="text/html"/>
    <title>Legal numbering in Writer: DOC and RTF support</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Writer now supports legal numbering for two more formats: DOC and RTF (ODT and DOCX were working
already.)</p>
<p>This work is primarily for <a href="https://www.collaboraoffice.com/">Collabora Online</a>, done as a
<a href="https://vmiklos.hu/blog/sw-content-controls3.html">HackWeek</a> project, but the feature is fully available in
desktop Writer as well.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#motivation" title="Permanent link">¶</a></h2>
<p>Legal numbering is a way to influence the number format of values inherited in a multi-level
numbering. Say, the outer numbering uses Roman numerals and the inner numbering uses X.Y as the number
format, but the inner level wants to display the outer values as Arabic numerals. If this is wanted
(and guessing from the name, sometimes lawyers do want this), then the inner number portion will
expand to values like "2.01" instead of "II.01", while the outer number portions will remain values
like "II".</p>
<p>Mike did <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=150408">80% of the work</a>, what you can
see here is just the RTF/DOC filters.</p>
<p>Picking a smaller feature task like this looked like a good idea, since I wanted to spend some of
the time on regression fixing around last year's multi-page floating table project.</p>
<h2 id="results-so-far">Results so far<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#results-so-far" title="Permanent link">¶</a></h2>
<p>For (binary) DOC, the relevant detail is the <code>fLegal</code> bit in the <code>LVLF</code> structure. Here is the
result:</p>
<p><a href="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-doc.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-doc.png"><img src="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-doc.png"/><figcaption>Improved handling of legal numbering from DOC: old, new and reference rendering</figcaption></a></figure><p/>
<p>It shows how the outer "II" gets turned into "2", while it remained "II" in the past. This works for
both loading and saving.</p>
<p>The same feature is now handled in the RTF filter as well. There the relevant detail is the
<code>\levellegal</code> control word, which has an odd 1 default value (the default is usually 0). Here is the
result:</p>
<p><a href="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-rtf.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-rtf.png"><img src="https://share.vmiklos.hu/blog/sw-legal-numbering/2024-02-29-writer-legal-numbering-rtf.png"/><figcaption>Improved handling of legal numbering from RTF: old, new and reference rendering</figcaption></a></figure><p/>
<p>It shows that the RTF filter is up to speed with the DOC one by now.</p>
<p>As for the multi-page floating tables, I looked at
<a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158986">tdf#158986</a> and
<a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158801">tdf#158801</a>.</p>
<h2 id="how-is-this-implemented">How is this implemented?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#how-is-this-implemented" title="Permanent link">¶</a></h2>
<p>If you would like to know a bit more about how this works, continue reading... :-)</p>
<p>As usual, the high-level problem was addressed by a series of small changes:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/397d72e582c725d162c7e0b819dc6c0bb62e42b0">Related: tdf#158986 sw floattable: fix unexpected page break with sections</a></li>
<li><a href="https://git.libreoffice.org/core/commit/b7c4c4d45f44a26283678f3dc32982b3a728c614">tdf#158986 sw floattable: fix RTF import of table followed by \sect</a></li>
<li><a href="https://git.libreoffice.org/core/commit/a73b3994fb6a2cc10b2d65cbaad201762610cecc">Related: tdf#150408 DOC filter: handle legal numbering</a></li>
<li><a href="https://git.libreoffice.org/core/commit/e8487bedb20a429565b4a0e4bd2d6806cc603b7f">Related: tdf#150408 RTF filter: handle legal numbering</a></li>
<li><a href="https://git.libreoffice.org/core/commit/c98ff922831f56253af2a050b8e07cfc89b7a387">Related: tdf#158986 sw floattable, RTF import: use more setNeedPar()</a></li>
<li><a href="https://git.libreoffice.org/core/commit/186de7178c6065e1de13fd216b46ac9b716e44c5">tdf#158801 sw floattable: fix crash with headers and interactive editing</a></li>
</ul>
<h2 id="want-to-start-using-this">Want to start using this?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#want-to-start-using-this" title="Permanent link">¶</a></h2>
<p>You can get a snapshot / demo of Collabora Office 24.04 and try it out yourself right now: <a href="https://www.collaboraoffice.com/collabora-office-latest-snapshot/">try the
unstable snapshot</a>.  Collabora
intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all
of this work will be available in TDF's next release too (24.8).</p></div>
    </summary>
    <updated>2024-03-01T07:46:39Z</updated>
    <published>2024-03-01T07:46:39Z</published>
    <category term="libreoffice"/>
    <category term="en"/>
    <author>
      <name>Miklos Vajna</name>
    </author>
    <source>
      <id>https://vmiklos.hu/blog/</id>
      <link href="https://vmiklos.hu/blog/" rel="alternate" type="text/html"/>
      <link href="https://people.freedesktop.org/~vmiklos/index.rss" rel="self" type="application/rss+xml"/>
      <title>What is Miklos hacking - libreoffice</title>
      <updated>2024-03-01T07:46:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://dev.blog.documentfoundation.org/?p=1006</id>
    <link href="https://dev.blog.documentfoundation.org/2024/02/29/writer-tables-converted-to-plain-text-difficultyinteresting-easyhack/" rel="alternate" type="text/html"/>
    <title>Writer tables converted to plain text – difficultyInteresting EasyHack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>If you copy contents from LibreOffice Writer to a plain text editor like gedit or Notepad, you will see that it does a straightforward thing: It copies the text and some basic formatting like converting bullets to ‘â€¢’. For the Writer tables, the conversion is very simple right now: every cell is written in a separate line.</p>
<p>For example, if you have a table like this:</p>
<pre>A | B
--|--
C | D</pre>
<p>When you copy the table from LibreOffice Writer and paste it into a plain text editor, it will become something like this, which is not always desirable.</p>
<pre>A
B
C
D</pre>
<p>It is requested that like LibreOffice Calc, or Microsoft Word, and many other programs, the copy/paste mechanism should create a text like this:</p>
<pre>A	B
C	D</pre>
<p>The columns are separated by &lt;tab&gt;.</p>
<p>This feature request is filed in Bugzilla as tdf#144576:</p>
<ul>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=144576">tdf#144576 – Copy a table from Writer to plain text editor or as un-formatted text pastes a list instead of matrix</a></li>
</ul>
<h3>Code pointers for Handling Writer tables</h3>
<p>There are many steps in copy/pasting, including the data/format conversion and clipboard format handling. Here, you have to know that the document is converted to plain text via “text” filter.</p>
<p>The plaintext (ASCII) filter is located here in the LibreOffice core source code:</p>
<ul>
<li><a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/ascii/">sw/source/filter/ascii</a></li>
</ul>
<p>Therefore, to change the copy/paste output, you have to fix the ASCII filter. That would also provide the benefit that plain text export will be also fixed as requested here.</p>
<p>In this folder, there are a few files:</p>
<pre>$ ls sw/source/filter/ascii/
ascatr.cxx parasc.cxx wrtasc.cxx wrtasc.hxx</pre>
<p>To change the output, you have to edit this file:</p>
<ul>
<li><a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/ascii/wrtasc.cxx?r=a841ac09">sw/source/filter/ascii/wrtasc.cxx</a></li>
</ul>
<p>In this file, there is a loop dedicated to create the output.</p>
<pre>// Output all areas of the pam into the ASC file
do {
    bool bTstFly = true;
    ...
}</pre>
<p>Inside this loop, the code iterates over the nodes inside the document structure, and extracts text from them. To check for yourself, add the one line below to the code, build LibreOffice, and then test. You will see that a <code>*</code> is appended before each node.</p>
<pre>SwTextNode* pNd = m_pCurrentPam-&gt;GetPoint()-&gt;GetNode().GetTextNode();
if( pNd )
{
<span style="color: #00ff00;">+   Strm().WriteUChar('*');</span>
    ...
}</pre>
<p>For example, having this table, with 1 blank paragraph up and down:</p>
<pre>A | B
--|--
C | D</pre>
<p>You will get this after copy/paste into a plain text editor:</p>
<pre>*
*a
*b
*c
*d
*</pre>
<p>To fix the bug, you have to differentiate between table cells and other nodes. Then, you should take care of the table columns and print tab between them.</p>
<p>To go further, you can only add star before table cells:</p>
<pre>if( pNd )
{
    SwTableNode *pTableNd = pNd-&gt;FindTableNode();
<span style="color: #00ff00;">+   if (pTableNd)
+   {
+       Strm().WriteUChar('*');
+    }</span>
    ...
}</pre>
<p>You can look into how other filters handled tables. For example, inside <a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/html/htmltab.cxx">sw/source/filter/html/htmltab.cxx</a> you will see how table is managed, first cell is tracked and appropriate functions to handle HTML table are called.</p>
<p>For the merged cells, the EasyHacker should first checks the behavior in other software, then design and implement the appropriate behavior.</p>
<h3>Final Words</h3>
<p>To gain a better understanding of the Writer document model / layout, please see this document:</p>
<ul>
<li><a href="https://wiki.openoffice.org/wiki/Writer/Core_And_Layout">OpenOffice Wiki: Writer/Core And Layout</a></li>
</ul>
<p>This presentation is also very helpful to gain a good understanding of Writer development:</p>
<p>Introduction to Writer Development – LibreOffice 2023 Conference Workshop, Miklos Vajna</p>
<div class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " id="_ytid_16684" style="display: block; margin: 0px auto;">
<p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" rel="noopener" target="_blank">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<p><button class="__youtube_prefs_gdpr__" type="button">Accept YouTube Content<img alt="accept" src="https://dev.blog.documentfoundation.org/wp-content/plugins/youtube-embed-plus/images/icon-check.png"/></button></p></div>
<h3/> <a class="read-more" href="https://dev.blog.documentfoundation.org/2024/02/29/writer-tables-converted-to-plain-text-difficultyinteresting-easyhack/">Read the rest </a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>If you copy contents from LibreOffice Writer to a plain text editor like gedit or Notepad, you will see that it does a straightforward thing: It copies the text and some basic formatting like converting bullets to ‘â€¢’. For the Writer tables, the conversion is very simple right now: every cell is written in a separate line.</p>
<p>For example, if you have a table like this:</p>
<pre>A | B
--|--
C | D</pre>
<p>When you copy the table from LibreOffice Writer and paste it into a plain text editor, it will become something like this, which is not always desirable.</p>
<pre>A
B
C
D</pre>
<p>It is requested that like LibreOffice Calc, or Microsoft Word, and many other programs, the copy/paste mechanism should create a text like this:</p>
<pre>A	B
C	D</pre>
<p>The columns are separated by &lt;tab&gt;.</p>
<p>This feature request is filed in Bugzilla as tdf#144576:</p>
<ul>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=144576">tdf#144576 – Copy a table from Writer to plain text editor or as un-formatted text pastes a list instead of matrix</a></li>
</ul>
<h3>Code pointers for Handling Writer tables</h3>
<p>There are many steps in copy/pasting, including the data/format conversion and clipboard format handling. Here, you have to know that the document is converted to plain text via “text” filter.</p>
<p>The plaintext (ASCII) filter is located here in the LibreOffice core source code:</p>
<ul>
<li><a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/ascii/">sw/source/filter/ascii</a></li>
</ul>
<p>Therefore, to change the copy/paste output, you have to fix the ASCII filter. That would also provide the benefit that plain text export will be also fixed as requested here.</p>
<p>In this folder, there are a few files:</p>
<pre>$ ls sw/source/filter/ascii/
ascatr.cxx parasc.cxx wrtasc.cxx wrtasc.hxx</pre>
<p>To change the output, you have to edit this file:</p>
<ul>
<li><a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/ascii/wrtasc.cxx?r=a841ac09">sw/source/filter/ascii/wrtasc.cxx</a></li>
</ul>
<p>In this file, there is a loop dedicated to create the output.</p>
<pre>// Output all areas of the pam into the ASC file
do {
    bool bTstFly = true;
    ...
}</pre>
<p>Inside this loop, the code iterates over the nodes inside the document structure, and extracts text from them. To check for yourself, add the one line below to the code, build LibreOffice, and then test. You will see that a <code>*</code> is appended before each node.</p>
<pre>SwTextNode* pNd = m_pCurrentPam-&gt;GetPoint()-&gt;GetNode().GetTextNode();
if( pNd )
{
<span style="color: #00ff00;">+   Strm().WriteUChar('*');</span>
    ...
}</pre>
<p>For example, having this table, with 1 blank paragraph up and down:</p>
<pre>A | B
--|--
C | D</pre>
<p>You will get this after copy/paste into a plain text editor:</p>
<pre>*
*a
*b
*c
*d
*</pre>
<p>To fix the bug, you have to differentiate between table cells and other nodes. Then, you should take care of the table columns and print tab between them.</p>
<p>To go further, you can only add star before table cells:</p>
<pre>if( pNd )
{
    SwTableNode *pTableNd = pNd-&gt;FindTableNode();
<span style="color: #00ff00;">+   if (pTableNd)
+   {
+       Strm().WriteUChar('*');
+    }</span>
    ...
}</pre>
<p>You can look into how other filters handled tables. For example, inside <a href="https://opengrok.libreoffice.org/xref/core/sw/source/filter/html/htmltab.cxx">sw/source/filter/html/htmltab.cxx</a> you will see how table is managed, first cell is tracked and appropriate functions to handle HTML table are called.</p>
<p>For the merged cells, the EasyHacker should first checks the behavior in other software, then design and implement the appropriate behavior.</p>
<h3>Final Words</h3>
<p>To gain a better understanding of the Writer document model / layout, please see this document:</p>
<ul>
<li><a href="https://wiki.openoffice.org/wiki/Writer/Core_And_Layout">OpenOffice Wiki: Writer/Core And Layout</a></li>
</ul>
<p>This presentation is also very helpful to gain a good understanding of Writer development:</p>
<p>Introduction to Writer Development – LibreOffice 2023 Conference Workshop, Miklos Vajna</p>
<div class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " id="_ytid_60059" style="display: block; margin: 0px auto;">
<p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" rel="noopener" target="_blank">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<p><button class="__youtube_prefs_gdpr__" type="button">Accept YouTube Content<img alt="accept" src="https://dev.blog.documentfoundation.org/wp-content/plugins/youtube-embed-plus/images/icon-check.png"/></button></p></div>
<h3/></div>
    </content>
    <updated>2024-02-29T15:01:33Z</updated>
    <published>2024-02-29T15:01:33Z</published>
    <category term="EasyHack"/>
    <author>
      <name>Hossein Nourikhah</name>
    </author>
    <source>
      <id>https://dev.blog.documentfoundation.org/</id>
      <link href="https://dev.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://dev.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog for the LibreOffice Developers Community; Tutorials, tips and tricks for working with the LibreOffice code</subtitle>
      <title>LibreOffice Development Blog</title>
      <updated>2024-03-21T01:12:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://dev.blog.documentfoundation.org/?p=1080</id>
    <link href="https://dev.blog.documentfoundation.org/2024/02/22/make-impress-master-slides-copyable-difficulty-interesting-easyhack/" rel="alternate" type="text/html"/>
    <title>Make Impress master slides copyable – difficulty interesting EasyHack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>When working with LibreOffice Impress, “Slide Master” is the place where you can change the templates used for different types of the slides used in your presentation. Here we discuss a possible improvement for the “Slide Master” by making the copy from master slides possible.</p>
<h3>Copying the Master Page in Impress</h3>
<p>To see the problem and the room for enhancement, open LibreOffice Impress, then choose “View-&gt;Master-&gt;Slide Master” from the menus. Then, try to copy the master page on the left in the slide sorter. Unfortunately, it is not possible.</p>
<div class="wp-caption alignnone" id="attachment_1115" style="width: 970px;"><img alt="Impress slide master" class="wp-image-1115 size-large" height="638" src="https://dev.blog.documentfoundation.org/wp-content/uploads/sites/11/2024/02/slide-master-1024x681.png" width="960"/><p class="wp-caption-text" id="caption-attachment-1115">Impress slide master</p></div>
<p>Having this feature is helpful, because different page types have many things in common, and being able to copy/paste helps creating templates much faster.</p>
<h3>Impress Code Pointers</h3>
<p>Looking into <code>sd/source/core/drawdoc3.cxx</code>, you can see a huge function <code>SdDrawDocument::InsertBookmarkAsPage</code>, which is relevant here. It contains ~600 lines of code. This huge function is in itself a problem. Therefore, to implement the enhancement, on should try to first refactor the function, then add a unit test in <code>sd/qa/unit</code>, find and then separate all the ~6 use cases, and fix the style/name merging.</p>
<p>After the cleanup, the main fix should be implemented. The suggested path to implement this comes from Jean-Francois. He suggest to improve the <code>duplicate()</code> method, which is described in the documentation:</p>
<ul>
<li><a href="https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1drawing_1_1XDrawPageDuplicator.html#a029c790ab6371eed1bf392b328673c91">XDrawPageDuplicator interface, <code>duplicate()</code> method</a></li>
</ul>
<p>As described in the above documentation, its role is to duplicate a page:</p>
<blockquote><p>Creates a duplicate of a <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1DrawPage.html" title="This service specifies a page for the actual draw pages to contain the drawings.">DrawPage</a> or <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1MasterPage.html" title="This service is a single master page inside a drawing document.">MasterPage</a>, including the <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1Shapes.html" title="This service is for a generic collection of shapes.">Shapes</a> on that page and inserts it into the same model.</p></blockquote>
<p>However, the implementation does not work for master slides, as the macros in the attachment file implies. The solution should add the needed implementation for master slides.</p>
<p>The implementation is inside <code>sd/source/ui/unoidl/unomodel.cxx</code> inside duplicate function:</p>
<pre>// XDrawPageDuplicator
uno::Reference&lt; drawing::XDrawPage &gt; SAL_CALL SdXImpressDocument::duplicate( const uno::Reference&lt; drawing::XDrawPage &gt;&amp; xPage )
{

...

}</pre>
<h3>Final Words</h3>
<p>The above issue is filed as <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=45617">tdf#45617.</a> If you like to work on it, just follow the Bugzilla link to see more information.</p>
<p>To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first:</p>
<blockquote class="wp-embedded-content"><p><a href="https://dev.blog.documentfoundation.org/2021/10/04/getting-started-video-tutorial/">Getting Started (Video Tutorial)</a></p></blockquote>
<p> <a class="read-more" href="https://dev.blog.documentfoundation.org/2024/02/22/make-impress-master-slides-copyable-difficulty-interesting-easyhack/">Read the rest </a></p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>When working with LibreOffice Impress, “Slide Master” is the place where you can change the templates used for different types of the slides used in your presentation. Here we discuss a possible improvement for the “Slide Master” by making the copy from master slides possible.</p>
<h3>Copying the Master Page in Impress</h3>
<p>To see the problem and the room for enhancement, open LibreOffice Impress, then choose “View-&gt;Master-&gt;Slide Master” from the menus. Then, try to copy the master page on the left in the slide sorter. Unfortunately, it is not possible.</p>
<div class="wp-caption alignnone" id="attachment_1115" style="width: 970px;"><img alt="Impress slide master" class="wp-image-1115 size-large" height="638" src="https://dev.blog.documentfoundation.org/wp-content/uploads/sites/11/2024/02/slide-master-1024x681.png" width="960"/><p class="wp-caption-text" id="caption-attachment-1115">Impress slide master</p></div>
<p>Having this feature is helpful, because different page types have many things in common, and being able to copy/paste helps creating templates much faster.</p>
<h3>Impress Code Pointers</h3>
<p>Looking into <code>sd/source/core/drawdoc3.cxx</code>, you can see a huge function <code>SdDrawDocument::InsertBookmarkAsPage</code>, which is relevant here. It contains ~600 lines of code. This huge function is in itself a problem. Therefore, to implement the enhancement, on should try to first refactor the function, then add a unit test in <code>sd/qa/unit</code>, find and then separate all the ~6 use cases, and fix the style/name merging.</p>
<p>After the cleanup, the main fix should be implemented. The suggested path to implement this comes from Jean-Francois. He suggest to improve the <code>duplicate()</code> method, which is described in the documentation:</p>
<ul>
<li><a href="https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1drawing_1_1XDrawPageDuplicator.html#a029c790ab6371eed1bf392b328673c91">XDrawPageDuplicator interface, <code>duplicate()</code> method</a></li>
</ul>
<p>As described in the above documentation, its role is to duplicate a page:</p>
<blockquote><p>Creates a duplicate of a <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1DrawPage.html" title="This service specifies a page for the actual draw pages to contain the drawings.">DrawPage</a> or <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1MasterPage.html" title="This service is a single master page inside a drawing document.">MasterPage</a>, including the <a class="el" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1drawing_1_1Shapes.html" title="This service is for a generic collection of shapes.">Shapes</a> on that page and inserts it into the same model.</p></blockquote>
<p>However, the implementation does not work for master slides, as the macros in the attachment file implies. The solution should add the needed implementation for master slides.</p>
<p>The implementation is inside <code>sd/source/ui/unoidl/unomodel.cxx</code> inside duplicate function:</p>
<pre>// XDrawPageDuplicator
uno::Reference&lt; drawing::XDrawPage &gt; SAL_CALL SdXImpressDocument::duplicate( const uno::Reference&lt; drawing::XDrawPage &gt;&amp; xPage )
{

...

}</pre>
<h3>Final Words</h3>
<p>The above issue is filed as <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=45617">tdf#45617.</a> If you like to work on it, just follow the Bugzilla link to see more information.</p>
<p>To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first:</p>
<blockquote class="wp-embedded-content"><p><a href="https://dev.blog.documentfoundation.org/2021/10/04/getting-started-video-tutorial/">Getting Started (Video Tutorial)</a></p></blockquote>
<p/></div>
    </content>
    <updated>2024-02-22T14:57:41Z</updated>
    <published>2024-02-22T14:57:41Z</published>
    <category term="EasyHack"/>
    <author>
      <name>Hossein Nourikhah</name>
    </author>
    <source>
      <id>https://dev.blog.documentfoundation.org/</id>
      <link href="https://dev.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://dev.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog for the LibreOffice Developers Community; Tutorials, tips and tricks for working with the LibreOffice code</subtitle>
      <title>LibreOffice Development Blog</title>
      <updated>2024-03-21T01:12:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://qa.blog.documentfoundation.org/?p=2160</id>
    <link href="https://qa.blog.documentfoundation.org/2024/02/13/qa-dev-report-january-2024/" rel="alternate" type="text/html"/>
    <title>QA/Dev Report: January 2024</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 24.2 <a href="https://blog.documentfoundation.org/blog/2024/01/31/libreoffice-24-2/">was released</a> on January, 31</li>
<li>Olivier Hallot (TDF) fixed a duplicate Covariance command in Notebookbar UIs, updated menu item paths in Help pages and updated Help pages for conversion filters and style Spotlight </li>
<li>Rafael Lima added a Color Scheme switcher to Basic IDE, added a “Delete Comment” command to the Navigator context menu, fixed drawing comment triangles in Calc at all zoom levels, made it so the visibility of UI components in the Basic IDE is remembered, made Basic IDE highlight the line where the cursor is positioned, made it possible to open the “Go to Line” dialog from the statusbar in Basic IDE, fixed Calc AutoFilter arrow color in dark mode, made it so line numbering and breakpoint in Basic IDE are on the left even in right-to-left UI and fixed a crash in Dialog Editor. He also improved the ScriptForge Help pages</li>
<li>Stanislav Horacek updated menu paths in Help alongside other cleanups and fixes</li>
<li>Ilmari Lauhakangas (TDF) removed unnecessary images from SVG icon themes, saving nearly 5 MB of space. He also changed the Help CSS to account for a quirk in Safari</li>
<li>Stéphane Guillou (TDF) continued linking Sidebar decks to Help</li>
<li>Alain Romedenne updated ScriptForge Help pages</li>
<li>Dione Maddern did many fixes and updates to Draw dialog Help pages</li>
<li>Gábor Kelemen (allotropia) added accessible descriptions to new Dublin Core metadata boxes, updated Help after removal of FTP protocol support and did code cleanups in the area of code simplification and includes</li>
<li>Laurent Balland did cleanups in the metadata of Impress templates</li>
<li>Miklós Vajna (Collabora) fixed the layout handling of empty paragraphs formatted as superscript in Writer, added support for HTML paste to Writer shape text or Calc cell text edit and continued polishing support for multi-page floating tables in Writer</li>
<li>Jean-Pierre Ledure worked on the ScriptForge library</li>
<li>Gabriel Masei (1&amp;1), Paris Oplopoios, Szymon Kłos, Méven Car, Andras Timar, Attila Szűcs and Áron Budea (Collabora) worked on LOKit used by Collabora Online. Andras also fixed some FreeBSD build issues while Attila fixed hyperlink colouring in certain PPTX files and a textbox vertical alignment inversion issue when saving PPTX files</li>
<li>Henry Castro (Collabora) made the status bar in Calc work as expected with language selection</li>
<li>Eike Rathke (Red Hat) made it so the maximum number of hours that can be entered into a Calc cell with time formatting is now a 32-bit integer instead of 65535</li>
<li>Tomaž Vajngerl (Collabora) continued refactoring the EditEngine text editing code</li>
<li>Julien Nabet fixed an issue preventing some position parameters to go beyond 17 mm in Writer, fixed an issue that made ReportBuilder wizards show two different data sources, fixed several crashes and did code cleanups</li>
<li>Andreas Heinisch made it so font, highlight and background colour in toolbar buttons is remembered between sessions, fixed canceling Text Import in Calc locking the document and made it so question mark can be used in autotext shortcuts</li>
<li>László Németh continued polishing support for smart justify found in DOCX files and implemented ODF attribute fo:hyphenate to exclude a portion of text from hyphenation</li>
<li>Xisco Faulí (TDF) fixed a regression with multiline text exported to PDF as one line, added support for viewBox in symbol elements in SVG import and made nearly 20 additions and improvements to automated tests</li>
<li>Michael Stahl (allotropia) continued polishing revamped ODF encryption, fixed a regression preventing editing of index entries in Writer, worked on WASM build, fixed a Writer issue causing objects to disappear after undo followed by Enter due to invisible anchor selection and fixed slowness if Style Inspector visible during PDF export</li>
<li>Mike Kaganski (Collabora) made font substitution more robust, implemented support for inserting Unicode decimal codes via Alt+NumPad on Windows, fixed storing URLs in DOCX files, fixed a Writer formatting error in paragraphs with justified text, fixed PPTX import of graphic placeholder with a custom prompt, made it so Delete and Backspace move the cursor correctly in change tracking mode, fixed floating content controls importing from DOCX as separate paragraphs, improved the debugging experience in Visual Studio, fixed autotext / word completion tooltips not showing up, fixed an issue with saving word completion options, improved the IDE integration build code, got rid of unwanted space between footnote number and following text, when paragraph has hanging indent in imported DOCX files, fixed passing Integer-sized Long argument via script.invoke in BASIC, fixed unwanted interleaving of bookmark starts and ends and fixed updating path to library when it is renamed using Basic Macro Organizer. He also fixed crashes and did code cleanups</li>
<li>Caolán McNamara (Collabora) fixed an issue causing Similarities dialog to not appear in Base, made optimal column width in Calc more robust, fixed an issue with checkboxes under GTK3 not being disabled when settings are locked down from config, fixed an issue with Hyperlink dialog width growing too large with long text in clipboard, improved Calc performance by reducing window content invalidations and enabled Small Caps toolbar button in Impress. He also fixed crashes and many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on the online update feature and WASM build and fixed an issue preventing certificate manager use. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) optimised opening files on Unixes, fixed an issue causing Paste as RTF to lose character color and paragraph alignment from styles, improved scrolling performance in Calc and made cryptographic signing more robust. He also did many code cleanups</li>
<li>Justin Luth (Collabora) fixed a problem with tracked changes showing in Start Center thumbnail, fixed various cases of context menu not appearing in Writer when right-clicking the last half character, fixed an object z-order issue in DOCX files, fixed loss of number formatting in charts in DOCX import, fixed DOCX export issues causing unwanted overlapping of objects, fixed unwanted offset added to shapes in headers in DOCX import and fixed issues with pie chart import in OOXML files</li>
<li>Michael Weghorn (TDF) worked on bringing native Qt widgets to Qt/KDE UI and fixed accessibility issues in areas such as shortcuts. He also did many updates and cleanups to the LibreOffice Android Viewer code</li>
<li>Balázs Varga (allotropia) fixed an issue with copying master slide style in PPTX documents, made it so the user is taken straight to the Security Options and Warnings dialog after clicking the relevant button in an infobar notification and made accessibility warnings about simulated numbering smarter</li>
<li>Patrick Luby (NeoOffice) fixed many macOS crashes and a hang on iOS during export</li>
<li>Jim Raykowski made Spotlight more elegant by only showing it for styles that are used in the document, fixed a hyperlink editing crash while having Navigator open and made it possible to insert cross references from Navigator by dragging and dropping</li>
<li>Sarper Akdemir (allotropia) continued working on the feature for disabling active content, fixed an issue with background image shifting down in presentation mode in PPTX files and made it so Dublin Core meta data attribute dc:date is added to exported PDF files</li>
<li>Christian Lohmaier (TDF) fixed packaging of Noto fonts on macOS, fixed an issue with Windows build signing, added Armenian language pack and fixed Windows aarch64 cross-build</li>
<li>Regina Henschel fixed an issue with line break missing from RTF clipboard data after copying shape text</li>
<li>Sahil Gautam added a UI label for page preview zoom slider and made Calc cell cursor more accessible for colour blind users</li>
<li>Samuel Mehrbrodt (allotropia) made the removal of meta data more extensive when the option to remove it when saving is active, implemented resizing of Writer comment section, made it so only documents from the current module are shown by default in Recent Documents and fixed an issue with an empty chart title getting unwanted text in imported PPTX files</li>
<li>Thorsten Behrens (allotropia) fixed build issues related to certain libraries, fixed an xpdfimport crash with missing fonts, made MAR-based LibreOffice updater non-experimental and wholesome ODF package encryption the default</li>
<li>Armin Le Grand (allotropia) continued the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) made it so that upon entering a legacy text fieldmark in Writer, placeholder text gets pre-selected, made sure paper tray settings are respected when importing RTF and DOCX files and made clone formatting switch off lists</li>
<li>Matt K fixed an issue with conditional formatting getting lost when moving Calc sheets around and fixed many crashes</li>
<li>Adam Seskunas added an automated test for moving focus to inserted image in Writer</li>
<li>Arnaud Versini did some code cleanups</li>
<li>Darshan Upadhyay, Jaume Pujantell and Vivek Javiya (Collabora) worked on jsdialog used by Collabora Online. Jaume also made font embedding in DOCX files more robust</li>
<li>Heiko Tietze (TDF) made Template Manager cleaner by hiding useless buttons, made the options in Image compression dialog behave more logically and improved the look of Calc comment indicator</li>
<li>Hossein Nourikhah (TDF) added a minimal Python extension as an example, fixed a JUnit test not running and decreased the maximum number of columns in Calc’s data entry form to prevent performance issues</li>
<li>Skyler Grey (Collabora) added a Calc option to keep edit mode on Enter/Tab, particularly useful for devices with an onscreen keyboard</li>
<li>Gökay Şatır (Collabora) fixed Ignore All not working with LanguageTool spellchecking errors</li>
<li>Omkar Acharekar worked on bringing native Qt widgets to Qt/KDE UI as part of an Outreachy project</li>
<li>Tibor Nagy (allotropia) made Calc support creation of accessible PDFs, fixed many other accessible PDF issues and fixed an issue with table styles in PPTX import</li>
<li>Kurt Nordback fixed an issue with combo chart render order</li>
<li>Marco Cecchetti (Collabora) fixed Calc view invalidation issues</li>
<li>Dennis Francis (Collabora) improved the performance of conditional formatting in Calc</li>
<li>Matthew Kogan fixed an issue with an unwanted space appearing at start of line when field wraps</li>
<li>Kevin Suo made it so Empty and Error entries are shown as non-selected and inactive when hidden by autofilter</li>
<li>Eli Schwartz (Arch Linux) improved the portability of shell scripts</li>
<li>Bayram Çiçek (Collabora) made inactive Calc sheets movable and copyable</li>
<li>Xuan Chen fixed a Java UNO bridge test failure on riscv64 CPU architecture</li>
<li>Winfried Donkers added Excel2021 function XLOOKUP to Calc</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>515</strong> bugs, <strong>76</strong> of which are enhancements, have been reported by <strong>297</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 40 )</li>
<li>Xisco Faulí ( 19 )</li>
<li>Telesto ( 16 )</li>
<li>Mike Kaganski ( 12 )</li>
<li>Tracey ( 10 )</li>
<li>Rafael Lima ( 10 )</li>
<li>Robert Großkopf ( 9 )</li>
<li>Stéphane Guillou (stragu) ( 9 )</li>
<li>Regina Henschel ( 8 )</li>
<li>Justin L ( 8 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>523</strong> bugs have been triaged by <strong>67</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 109 )</li>
<li>Buovjaga ( 80 )</li>
<li>m_a_riosv ( 56 )</li>
<li>Heiko Tietze ( 41 )</li>
<li>Xisco Faulí ( 29 )</li>
<li>Mike Kaganski ( 23 )</li>
<li>Julien Nabet ( 17 )</li>
<li>Rafael Lima ( 14 )</li>
<li>Telesto ( 13 )</li>
<li>V Stuart Foote ( 12 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>456</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>181</strong> bugs have been fixed by <strong>39</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 21 )</li>
<li>Rafael Lima ( 13 )</li>
<li>Caolán McNamara ( 9 )</li>
<li>Justin Luth ( 8 )</li>
<li>Michael Stahl ( 8 )</li>
<li>László Németh ( 6 )</li>
<li>Tibor Nagy ( 6 )</li>
<li>Heiko Tietze ( 6 )</li>
<li>Samuel Mehrbrodt ( 5 )</li>
<li>Matt K ( 5 )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155917">tdf#155917</a> Writer crashes when inserting ODT file containing PDF into table in another ODT doc ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158965">tdf#158965</a> Find Record: Similarities dialog won’t appear ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159243">tdf#159243</a> Armenian characters displaying incorrectly (as boxes) on macOS (fonts not packaged properly) ( Thanks to Christian Lohmaier )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159386">tdf#159386</a> Selecting all in a certain table causes assert in SfxPoolItem::SetWhich with a debug build ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=73678">tdf#73678</a> FORMATTING: Conditional Formatting lost when Click-drag Sheet2 tab to position 1 or adding, then </li></ol>…</div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 24.2 <a href="https://blog.documentfoundation.org/blog/2024/01/31/libreoffice-24-2/">was released</a> on January, 31</li>
<li>Olivier Hallot (TDF) fixed a duplicate Covariance command in Notebookbar UIs, updated menu item paths in Help pages and updated Help pages for conversion filters and style Spotlight </li>
<li>Rafael Lima added a Color Scheme switcher to Basic IDE, added a “Delete Comment” command to the Navigator context menu, fixed drawing comment triangles in Calc at all zoom levels, made it so the visibility of UI components in the Basic IDE is remembered, made Basic IDE highlight the line where the cursor is positioned, made it possible to open the “Go to Line” dialog from the statusbar in Basic IDE, fixed Calc AutoFilter arrow color in dark mode, made it so line numbering and breakpoint in Basic IDE are on the left even in right-to-left UI and fixed a crash in Dialog Editor. He also improved the ScriptForge Help pages</li>
<li>Stanislav Horacek updated menu paths in Help alongside other cleanups and fixes</li>
<li>Ilmari Lauhakangas (TDF) removed unnecessary images from SVG icon themes, saving nearly 5 MB of space. He also changed the Help CSS to account for a quirk in Safari</li>
<li>Stéphane Guillou (TDF) continued linking Sidebar decks to Help</li>
<li>Alain Romedenne updated ScriptForge Help pages</li>
<li>Dione Maddern did many fixes and updates to Draw dialog Help pages</li>
<li>Gábor Kelemen (allotropia) added accessible descriptions to new Dublin Core metadata boxes, updated Help after removal of FTP protocol support and did code cleanups in the area of code simplification and includes</li>
<li>Laurent Balland did cleanups in the metadata of Impress templates</li>
<li>Miklós Vajna (Collabora) fixed the layout handling of empty paragraphs formatted as superscript in Writer, added support for HTML paste to Writer shape text or Calc cell text edit and continued polishing support for multi-page floating tables in Writer</li>
<li>Jean-Pierre Ledure worked on the ScriptForge library</li>
<li>Gabriel Masei (1&amp;1), Paris Oplopoios, Szymon Kłos, Méven Car, Andras Timar, Attila Szűcs and Áron Budea (Collabora) worked on LOKit used by Collabora Online. Andras also fixed some FreeBSD build issues while Attila fixed hyperlink colouring in certain PPTX files and a textbox vertical alignment inversion issue when saving PPTX files</li>
<li>Henry Castro (Collabora) made the status bar in Calc work as expected with language selection</li>
<li>Eike Rathke (Red Hat) made it so the maximum number of hours that can be entered into a Calc cell with time formatting is now a 32-bit integer instead of 65535</li>
<li>Tomaž Vajngerl (Collabora) continued refactoring the EditEngine text editing code</li>
<li>Julien Nabet fixed an issue preventing some position parameters to go beyond 17 mm in Writer, fixed an issue that made ReportBuilder wizards show two different data sources, fixed several crashes and did code cleanups</li>
<li>Andreas Heinisch made it so font, highlight and background colour in toolbar buttons is remembered between sessions, fixed canceling Text Import in Calc locking the document and made it so question mark can be used in autotext shortcuts</li>
<li>László Németh continued polishing support for smart justify found in DOCX files and implemented ODF attribute fo:hyphenate to exclude a portion of text from hyphenation</li>
<li>Xisco Faulí (TDF) fixed a regression with multiline text exported to PDF as one line, added support for viewBox in symbol elements in SVG import and made nearly 20 additions and improvements to automated tests</li>
<li>Michael Stahl (allotropia) continued polishing revamped ODF encryption, fixed a regression preventing editing of index entries in Writer, worked on WASM build, fixed a Writer issue causing objects to disappear after undo followed by Enter due to invisible anchor selection and fixed slowness if Style Inspector visible during PDF export</li>
<li>Mike Kaganski (Collabora) made font substitution more robust, implemented support for inserting Unicode decimal codes via Alt+NumPad on Windows, fixed storing URLs in DOCX files, fixed a Writer formatting error in paragraphs with justified text, fixed PPTX import of graphic placeholder with a custom prompt, made it so Delete and Backspace move the cursor correctly in change tracking mode, fixed floating content controls importing from DOCX as separate paragraphs, improved the debugging experience in Visual Studio, fixed autotext / word completion tooltips not showing up, fixed an issue with saving word completion options, improved the IDE integration build code, got rid of unwanted space between footnote number and following text, when paragraph has hanging indent in imported DOCX files, fixed passing Integer-sized Long argument via script.invoke in BASIC, fixed unwanted interleaving of bookmark starts and ends and fixed updating path to library when it is renamed using Basic Macro Organizer. He also fixed crashes and did code cleanups</li>
<li>Caolán McNamara (Collabora) fixed an issue causing Similarities dialog to not appear in Base, made optimal column width in Calc more robust, fixed an issue with checkboxes under GTK3 not being disabled when settings are locked down from config, fixed an issue with Hyperlink dialog width growing too large with long text in clipboard, improved Calc performance by reducing window content invalidations and enabled Small Caps toolbar button in Impress. He also fixed crashes and many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on the online update feature and WASM build and fixed an issue preventing certificate manager use. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) optimised opening files on Unixes, fixed an issue causing Paste as RTF to lose character color and paragraph alignment from styles, improved scrolling performance in Calc and made cryptographic signing more robust. He also did many code cleanups</li>
<li>Justin Luth (Collabora) fixed a problem with tracked changes showing in Start Center thumbnail, fixed various cases of context menu not appearing in Writer when right-clicking the last half character, fixed an object z-order issue in DOCX files, fixed loss of number formatting in charts in DOCX import, fixed DOCX export issues causing unwanted overlapping of objects, fixed unwanted offset added to shapes in headers in DOCX import and fixed issues with pie chart import in OOXML files</li>
<li>Michael Weghorn (TDF) worked on bringing native Qt widgets to Qt/KDE UI and fixed accessibility issues in areas such as shortcuts. He also did many updates and cleanups to the LibreOffice Android Viewer code</li>
<li>Balázs Varga (allotropia) fixed an issue with copying master slide style in PPTX documents, made it so the user is taken straight to the Security Options and Warnings dialog after clicking the relevant button in an infobar notification and made accessibility warnings about simulated numbering smarter</li>
<li>Patrick Luby (NeoOffice) fixed many macOS crashes and a hang on iOS during export</li>
<li>Jim Raykowski made Spotlight more elegant by only showing it for styles that are used in the document, fixed a hyperlink editing crash while having Navigator open and made it possible to insert cross references from Navigator by dragging and dropping</li>
<li>Sarper Akdemir (allotropia) continued working on the feature for disabling active content, fixed an issue with background image shifting down in presentation mode in PPTX files and made it so Dublin Core meta data attribute dc:date is added to exported PDF files</li>
<li>Christian Lohmaier (TDF) fixed packaging of Noto fonts on macOS, fixed an issue with Windows build signing, added Armenian language pack and fixed Windows aarch64 cross-build</li>
<li>Regina Henschel fixed an issue with line break missing from RTF clipboard data after copying shape text</li>
<li>Sahil Gautam added a UI label for page preview zoom slider and made Calc cell cursor more accessible for colour blind users</li>
<li>Samuel Mehrbrodt (allotropia) made the removal of meta data more extensive when the option to remove it when saving is active, implemented resizing of Writer comment section, made it so only documents from the current module are shown by default in Recent Documents and fixed an issue with an empty chart title getting unwanted text in imported PPTX files</li>
<li>Thorsten Behrens (allotropia) fixed build issues related to certain libraries, fixed an xpdfimport crash with missing fonts, made MAR-based LibreOffice updater non-experimental and wholesome ODF package encryption the default</li>
<li>Armin Le Grand (allotropia) continued the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) made it so that upon entering a legacy text fieldmark in Writer, placeholder text gets pre-selected, made sure paper tray settings are respected when importing RTF and DOCX files and made clone formatting switch off lists</li>
<li>Matt K fixed an issue with conditional formatting getting lost when moving Calc sheets around and fixed many crashes</li>
<li>Adam Seskunas added an automated test for moving focus to inserted image in Writer</li>
<li>Arnaud Versini did some code cleanups</li>
<li>Darshan Upadhyay, Jaume Pujantell and Vivek Javiya (Collabora) worked on jsdialog used by Collabora Online. Jaume also made font embedding in DOCX files more robust</li>
<li>Heiko Tietze (TDF) made Template Manager cleaner by hiding useless buttons, made the options in Image compression dialog behave more logically and improved the look of Calc comment indicator</li>
<li>Hossein Nourikhah (TDF) added a minimal Python extension as an example, fixed a JUnit test not running and decreased the maximum number of columns in Calc’s data entry form to prevent performance issues</li>
<li>Skyler Grey (Collabora) added a Calc option to keep edit mode on Enter/Tab, particularly useful for devices with an onscreen keyboard</li>
<li>Gökay Şatır (Collabora) fixed Ignore All not working with LanguageTool spellchecking errors</li>
<li>Omkar Acharekar worked on bringing native Qt widgets to Qt/KDE UI as part of an Outreachy project</li>
<li>Tibor Nagy (allotropia) made Calc support creation of accessible PDFs, fixed many other accessible PDF issues and fixed an issue with table styles in PPTX import</li>
<li>Kurt Nordback fixed an issue with combo chart render order</li>
<li>Marco Cecchetti (Collabora) fixed Calc view invalidation issues</li>
<li>Dennis Francis (Collabora) improved the performance of conditional formatting in Calc</li>
<li>Matthew Kogan fixed an issue with an unwanted space appearing at start of line when field wraps</li>
<li>Kevin Suo made it so Empty and Error entries are shown as non-selected and inactive when hidden by autofilter</li>
<li>Eli Schwartz (Arch Linux) improved the portability of shell scripts</li>
<li>Bayram Çiçek (Collabora) made inactive Calc sheets movable and copyable</li>
<li>Xuan Chen fixed a Java UNO bridge test failure on riscv64 CPU architecture</li>
<li>Winfried Donkers added Excel2021 function XLOOKUP to Calc</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>515</strong> bugs, <strong>76</strong> of which are enhancements, have been reported by <strong>297</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 40 )</li>
<li>Xisco Faulí ( 19 )</li>
<li>Telesto ( 16 )</li>
<li>Mike Kaganski ( 12 )</li>
<li>Tracey ( 10 )</li>
<li>Rafael Lima ( 10 )</li>
<li>Robert Großkopf ( 9 )</li>
<li>Stéphane Guillou (stragu) ( 9 )</li>
<li>Regina Henschel ( 8 )</li>
<li>Justin L ( 8 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>523</strong> bugs have been triaged by <strong>67</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 109 )</li>
<li>Buovjaga ( 80 )</li>
<li>m_a_riosv ( 56 )</li>
<li>Heiko Tietze ( 41 )</li>
<li>Xisco Faulí ( 29 )</li>
<li>Mike Kaganski ( 23 )</li>
<li>Julien Nabet ( 17 )</li>
<li>Rafael Lima ( 14 )</li>
<li>Telesto ( 13 )</li>
<li>V Stuart Foote ( 12 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>456</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>181</strong> bugs have been fixed by <strong>39</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/02/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 21 )</li>
<li>Rafael Lima ( 13 )</li>
<li>Caolán McNamara ( 9 )</li>
<li>Justin Luth ( 8 )</li>
<li>Michael Stahl ( 8 )</li>
<li>László Németh ( 6 )</li>
<li>Tibor Nagy ( 6 )</li>
<li>Heiko Tietze ( 6 )</li>
<li>Samuel Mehrbrodt ( 5 )</li>
<li>Matt K ( 5 )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155917">tdf#155917</a> Writer crashes when inserting ODT file containing PDF into table in another ODT doc ( Thanks to Michael Stahl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158965">tdf#158965</a> Find Record: Similarities dialog won’t appear ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159243">tdf#159243</a> Armenian characters displaying incorrectly (as boxes) on macOS (fonts not packaged properly) ( Thanks to Christian Lohmaier )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=159386">tdf#159386</a> Selecting all in a certain table causes assert in SfxPoolItem::SetWhich with a debug build ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=73678">tdf#73678</a> FORMATTING: Conditional Formatting lost when Click-drag Sheet2 tab to position 1 or adding, then </li></ol>…</div>
    </content>
    <updated>2024-02-13T09:17:21Z</updated>
    <published>2024-02-13T09:17:21Z</published>
    <category term="reports"/>
    <author>
      <name>x1sc0</name>
    </author>
    <source>
      <id>https://qa.blog.documentfoundation.org/</id>
      <link href="https://qa.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://qa.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Updates from the Quality Assurance community</subtitle>
      <title>LibreOffice QA Blog</title>
      <updated>2024-03-11T12:21:29Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-1948642343859505027.post-5096058170067952909</id>
    <link href="http://caolanm.blogspot.com/feeds/5096058170067952909/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://caolanm.blogspot.com/2024/02/coverity-202260-and-libreoffice.html#comment-form" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default/5096058170067952909" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default/5096058170067952909" rel="self" type="application/atom+xml"/>
    <link href="http://caolanm.blogspot.com/2024/02/coverity-202260-and-libreoffice.html" rel="alternate" title="coverity 2022.6.0 and LibreOffice" type="text/html"/>
    <title>coverity 2022.6.0 and LibreOffice</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="" height="252" src="data:image/png;base64,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S0gWEhKiIUOGyM3NTbVq1bog56yo999/XzNnzpQk9ezZs8JBWVmys7N15MgRHTlyRHFxcZo3b54aNGig559//or9QjooKEgdO3Y0y40aNXJps379ej311FOSpCeffJKgDOVSnveWnbzxxhuWkKxNmzbq3bu3/P39yz3GuXPnNGXKFGVkZKhHjx4un0vu7u6We966deuqTxwAAAAAAOAiICgDUC5xcXGKjo7W3LlzNXny5GofPykpyVL+97//reHDh1f7eari008/vajnO3z4sO655x798MMP+uCDD+TmdmXtlturVy/FxcWV2eaTTz65SLPBlaQ87y07Kf75un79eoWEhFRojGXLlikjI6PUel9fX+45AAAAAAC4LBGUAVBoaKi2bdtmlk+fPq3ExER99913eu+998wvR/Py8vTAAw+oYcOGGjp0aLXOIS8vz1K+1FaAxMfHKz4+vlrHXLt2rZo3by6pcLXG4cOHtW7dOs2bN08pKSlmu4ULF6pevXp69dVXq/X8l7r8/Hx9/vnnNT0N4LJX9PPV29u7wiGZdPH/oQAAAAAAAMDFcmUtTwBQKW5ubgoPDzd/2rVrp0GDBmnu3LnauXOnOnXqZLYtKCjQ1KlTlZWVVeJYBw4c0IwZM9S5c2cFBwfL29tb4eHhGjFihL7//nuX9j179pTD4TCf/eUUFRUlh8Mhh8PhshqioucobsWKFRo9erSaNm0qX19f1apVS23bttXUqVO1e/duS9u33npLDodDHTp0sBzv37+/Ob+iW0ZWRP369c173rJlS0VHR+upp57Snj17dMcdd1jazp49W7/++muJ42RmZmrOnDm64YYbVK9ePXl5eSk0NFQ33nij5s2bp/z8/BL7NWnSxLyGrl27SircdnPWrFlq3769+ay6m266ST/88EOp15Gbm6v33ntPMTExaty4sXx9feXt7a1GjRrpT3/6k959913l5ua69Fu2bJl5fofDoUcffVSStHv3bjkcDnl4eOjo0aNm+1mzZpltly5dqilTplj6z549u9Q59unTx9J2/fr1pbYtSXZ2tubNm6dBgwapYcOG8vb2VkBAgFq0aKGxY8cqNjbWpc/LL79sOedDDz1U6vgvvPCCpa1zu8mi/vd//1f33HOPWrZsKX9/f/n5+ally5a6//779fvvv5c47rhx4yzjZmRkaPfu3erdu7d8fHzk4+NT7nsQERFhjhMRESGp8NmCjzzyiFq1aiU/Pz/VrVtXMTEx2rBhQ5ljVeZv+N1337Vcy7Jly3TmzBmNGzdOQUFBcjgc2rx5s6TS31slWb58ucaOHavmzZvL399fPj4+Cg8PV0xMjN5+++3zPiNx3bp1Gjp0qOrVqycfHx81b95cf/7zn3X06FE5HI4y+1ZEReeZl5dnXn9CQoJ5PDs72zzetGnT8543LCxMDofDElpv2LDBHOPhhx+WJGVkZFjuufMzxem9995zef0kacmSJerevbsCAgIUFhamW265Rf/5z3/MfkePHtWDDz6opk2bysfHR02bNtWMGTN09uzZUudsGIaWLFmiW2+9VeHh4fLx8VHt2rXVpUsXPfPMM5X+zAYAAAAAAFeoffv2GdX9A+DSlpiYaEgyf+rXr19m+4MHDxrBwcGWPvPmzXNpt2jRIsPHx8fSrvjPfffdZ+Tn55t9evToUWZ7SUZiYmKVzuF09uxZY9iwYWX29fT0NF5//XWzz5tvvnne+Z04caJc971JkyaWfrt27Sq1bV5ensu9GTNmjEu7uLg4IyIiosz5devWzUhLS3Pp26FDB7NNixYtjJMnTxrdunUrcQw3Nzdj4cKFLmMcOnTI6Nix43nvUadOnYxDhw5Z+n7zzTeWNtOnTzcMwzB27dp13vG+/PJLY+vWrZZjUVFRJd7L9PR0w8PDw2zXrFmzMl+n4rZv3240bdr0vHPq16+fcfz4cbNfcnKy4XA4zPqIiIhSz3HNNdeU+t7Iz883Hn744fO+b99//32XcadOneryt9SsWTOz7O3tXe770L59e7Ofv7+/sWPHDqN+/fqlvl8+/PDDEsep7N/w4sWLLW0WLVpkjB071nJs06ZNhmGU/t4q6vjx40bfvn3P+7pGRkYacXFxJV7L3LlzLa9x0Z/w8HBj6dKllmMjR44s9/2u6jxzc3PP26dJkybnPX9pr7HzZ9q0aYZhGMaZM2csx7t06WIZZ8mSJZb6hQsXGq+99lqJYwYGBhrx8fFGamqq0bp16xLb9O3b1ygoKHCZb1pamtGnT58y51yvXj1j27ZtFX4tAAAAAABAzbsQmRZbLwI4r4YNG2rq1Kl6/vnnzWOxsbGaNGmSWV65cqXuvPNOFRQUSJJCQkI0fvx4hYaGas2aNfruu+8kFT57rEmTJnriiSckSbfccos6dOigH3/80bKaa9iwYapXr54kKSAgoErncBo7dqy+/PJLsxwSEqIbbrhBp0+f1g8//KDc3Fzl5uZq2rRpqlu3rsaMGaP27dvrvvvu05YtWyzP34mJiTG3h/T29q7K7S2Ru7u7Zs6cqX79+pnHvvvuOxmGYa5SOXz4sAYMGKBjx45Jkjw8PDRu3Di1a9dOO3fu1Icffqi8vDxt2bJFo0ePNu+Pk5eXl/n76dOn9dRTT2nLli2qVauW3N3ddfr0abO+oKBAU6ZM0eDBgxUYGGgenzRpkrn6w+FwKDo6Wm3btpXD4dDOnTu1bt06GYahuLg4jR49WmvXrj3vtQcHB+u+++5TSkqKli9fbh6/5pprdO2110qSIiMj1bFjR3Xu3Fnbt2+XJG3evFkHDx502bbz22+/tWw9d+edd553Dk579+5Vnz59dOrUKfNYRESEunfvrszMTK1du9bcmnTVqlUaMmSI1q5dK09PT0VERKhnz5766aefJEn79+9XXFycZYWmJCUnJ1u2Pr322mvVpk0bs/zMM89ozpw5ZrlDhw4aPny43Nzc9Nlnnyk+Pl65ubkaP368WrRooR49ephti77GUuEKyX379pX7+ovy8PjvfzJkZmZq3LhxSk1NVXR0tAIDA7V+/XpzpU5BQYHuvfde9ezZU5GRkWa/qvwNF7+W//znP1q0aFGlriUrK0sDBgyw3PegoCBFR0fLx8dHGzdu1MGDByVJiYmJ6tu3r7Zt22aupJOkrVu36uGHH5ZhGOaxli1b6vrrr9fhw4e1evVqc7VVZVVlnm5ubrrvvvskSR9//LH59+zu7q6JEydKUrm2YLzrrruUnp6ud955xzwWFhZmbr9b9P1WluKvX1xcnF5//XX5+PjI09NTZ86cMetOnz6tWbNmyd/fX7///ruCg4N15swZy9/x6tWrtWTJEo0YMcI8lp+fr1tvvVU//vijeWzgwIHq06eP0tLS9O677yotLU3Hjh3TzTffrJ07dyo4OLhc8wcAAAAAAFcwVpQB9lPRFWWGYRibNm2y9GnUqJFZV1BQYLRq1cqy2iQpKcnS/4EHHjDrfXx8jPT0dEv9PffcU+LKkOo6x9dff20Zv127dpZVVtu3bzf8/PzM+gYNGhjZ2dlm/YwZMyz9V65ced57VlxFVpQZRuGKkFq1aln67N2716yfOHGipe7zzz+39C++giM2NtZS36VLF7PO3d3d8PDwMF588UUjJyfHKCgoML744guXlT8LFiww+6enp1tW0zzxxBMu1/Dqq6+a9Q6Hw/j111/NuvOt+omNjbXUP/nkky7j//Of/7S0Kboa0Om2226ztElISCjzvhdVfGXK5MmTjdzcXLP+8OHDlpVWkox//vOfZn3xFYkzZ84s8x5JMubOnWvWJSUlGe7u7mZd165djaysLLM+KyvL8jp269bNMvb06dMtYwcHBxutW7c2Pv74Y2PdunXGp59+Wu57UfQ8zr+xH3/80axPS0szOnXqZGnz0EMPmfVV/Rsu/n4JDg42AgMDjTlz5hjr1683Pv/8c+Po0aMlti3+3vrrX/9qqe/evbvl8yArK8sYPXq0pc2IESMsYxRfnTpixAjLe+O7776zrGSUKr6irDrmaRiG0bx5c7O+IqsInc6dO2c5R48ePVzanG9FWfHXxMvLy+jfv79x8uRJIy8vz3j22Wdd6t3d3Y1XX33VKCgoME6ePGn07NnT0ub222+3nGPhwoWW+gceeMBSn5SUZPj7+5v1M2bMqPC9AAAAAAAANetCZFo8owxAubRo0cJSTk1NNX9ft26d9uzZY5ZHjx6tJk2aWNoXfeZSVlaWFi9eXKHzV/Ucb731lqXtrFmzVKdOHbPcqVMnTZgwQUFBQQoKClJmZqb5vKOa4uHh4fIMIefqsaysLC1cuNA83rJlS916662WtsOHD1fbtm3N8ocffljqufLz8xUTE6PHH39cnp6ecjgcGjZsmMaNG2dpV/Q5aenp6ZbVNO7u7i7jTp48WRs3blRiYqKysrJ01VVXlXHFFXfHHXfI19fXLC9ZssRSn5OTY1lJ17NnTzVr1qxcY//666+WFXCNGzfWnDlzLCurwsLCNHfuXEu/N9980/x9xIgR8vT0NMtfffWVy3mKPvvJw8NDo0aNMsvvv/++5RlzjzzyiGUFo7e3tx577DGzvGXLllKfVyYVrvRau3atRo0apV69eun2228vte35TJkyRdHR0Wa5Tp06+vvf/25pU/R6q/tz4sSJE/rkk080bdo09ejRQ7feequ5CrUsBQUFeuONNyzH3n33Xcvngbe3t9566y35+/ubxz7//HPz7y87O9uy2tHhcOi1116zvDcGDBig0aNHn3c+F3Kel7L8/HzNnz9fQUFBcnd315NPPqkGDRqY9Tk5Obr22mv15z//WQ6HQ0FBQXrhhRcsY8THx1vKRVe9SXJZVdykSRPLitKyPhMBAAAAAIB9sPUigHKpVauWpZyTk6Ps7Gx5e3tr/fr1lrrMzEx98sknLmMEBASY22tt3LhR9957b7nPX5VzFBQUWPo7HA7179/fpe8//vEP/eMf/yj3nC6G4vfdeW1bt25VVlaWedzf37/E+1F0m8SNGzeWea7777/f5Vj//v01b948s5yenm7+3qhRI/n5+SkzM1NSYfi4bds2xcTEKCoqSh06dJCvr6+ioqLKPG9VBAUF6bbbbtOCBQskSRs2bNCRI0cUFhYmSVqzZo1lS7fiwV9ZVq1aZSkPGTLEZfs4SerTp4/lfRcfH6+0tDSFhIQoJCREN910k5YtWyZJ2rZtmw4cOKDw8HBJ0pEjRyyB7MCBAxUaGmqWi7/vk5KSXF7nAwcOWMqbNm1S69atS7ym0aNHm/emqopueefUp08f+fr66ty5c5IKt5U8efKkateuXe2fE23atNGf/vSnCs87Li5Ox48fN8vt27e3BMpOgYGB6t27t7799ltJhcHVhg0bNGzYMO3cuVPZ2dlm23bt2pmvaVGDBw8235s1Mc9LWXR0tBo3bmyW3dzc1L17d8v2uMWDxqioKDkcDjOgd271KcncZtbJ29tb69atczlv0c/Nw4cPKykpyeUfJAAAAAAAAHshKANQLkW/kJQKV744V7akpKRY6hYtWnTeZwft3bu3QuevyjmOHz9ued5W3bp1XQKoS1Xx++5cOVL8fmzfvv28q1eSk5OVm5trWeFUVNHnYjkVXeEhyfKMIB8fH02fPl3PPfecJMkwDC1fvtxcaePv769evXpp6NChGjNmjPmsueo2ceJEM4woKCjQF198oSlTpkiSvv76a8t8K7KCKiEhwVJu1apVie3c3NwUGRlprrYzDEP79+83n/80ZswYMyhzzsk5v6VLl5rP65Jcn59W/HV+8sknzzvvsv62nM94qw4lhTbu7u6KiIiwrGo7duyYateuXe2fE5W9lvK+rpLUvHlzSzkpKUmSdOjQIcvxos9hK6ply5aVmGGh6pjnpayklZ1169a1lIuvZPbw8FDt2rV14sQJSdbPo+PHj5sBrVS46q88K/r27t1LUAYAAAAAgM2x9SKAcvntt98s5aJfDJ89e7bC4506dapC7atyjqIriqTCwORykJmZqX379lmOOe97Ze6HVPZ9dwY7RRXd5q8kM2fO1Isvvig/Pz+XuoyMDMXGxur+++9XZGSkueKlukVHR1tWUBXdfrHo9nhDhgxRUFBQucctGq5KsmxvV1zx6y/ad+jQoZa+Rbcj/OKLL8zfAwMDNWTIEMs41f23VdJrXFmlBZ9Ft8KUZK44vFSupTpeV+c1ORW/5vMdL4/qev9dqmrXru1yrPiKzaIrYktr43QhPhMBAAAAAIA9EJQBKJelS5dayt27dzd/L/4F7rx582QYRpk/O3bsqND5q3KO4qvHin/JfalatmyZZcVE48aN1bBhQ0mu92PMmDHnvR+GYbis2Kgqh8Ohxx9/XIcOHdJHH32kCRMmqG3btnJzs/7fS1pamoYPH65du3ZV6/mdJkyYYP6+bt06paWlac+ePUpOTjaP33XXXRUas/iX9GV9EZ+RkWEpFw3k/Pz8NHToULO8du1anTlzRidOnNAPP/xgHh8xYoRLiFv8dd6zZ895X+Piz7UqqqTnyFVWaX9Hxe+T8++vuj8nKnst1fG6Fg+miq5kKqp4SF8R1fX+s4vi76+GDRuW6zPxtttuq6EZAwAAAACASwVBGYDz2rt3rz744APLsaJfLkZERFjqDh48WO1zqMo56tata/liOy0trcRVBOnp6YqLizN/jh07VvkJV1F2dra5paHTxb7nFREUFKTRo0dr/vz52rlzp06cOKGvv/5avXv3NttkZ2e7vI+qy913321uKZmfn6/Y2FitXLnSrK9fv74GDBhQoTGLb2e3e/fuEtvl5eVZVv65ubm5bOU2ZswY8/ecnBytWbNG3377rSUILb7tonTpvc5F7dmzx+VYXl6eZYtFh8Nhbt95qVxLeV9XyfUanX2LP+ctMTGxxP5VCYarY552UvxzPjU1Vbm5uTU4IwAAAAAAcLkgKANQpoMHD+qWW26xrB5p166dYmJizPL1119v6bNq1SqXcfLy8hQbG6utW7cqJSVF2dnZFZpHVc7h4eGhqKgoS9sVK1a49J81a5Y6d+5s/mzYsKHU+VR0/hWRnZ2tO++807KaxsfHRw899JBZvuaaayyrj37++ecSt1v76aeftHnzZu3bt89l1Ul1OHbsmDZu3Kh169ZZjgcGBmrw4MFauXKlZYu1AwcOVPpcZd3zevXqafDgwWb5u+++swRlY8aMkYdHxR7L2a9fP0v5m2++KfGL99jYWMvfx7XXXuuyrdyAAQMUGhpqllesWGF5bllERISio6Ndxi7P+/7IkSNavXq1fvvtNx09elT5+fnnubLqUXQLSacffvhBWVlZZrlly5bmSp+L8TlRHp06dbKsrNy5c2eJgVZqaqp+/PFHs+zl5WW+Ru3bt7c862/nzp0uz2CTrNuA1sQ8L5QL+flXWe7u7rruuuvMcm5uruW+OMXHx2vdunXavXu30tPTL+YUAQAAAADAJYqgDIAKCgp04MAB8ycxMVEbNmzQ008/rfbt22vnzp1mW09PT7399tuWrfV69eplWcGwYcMGLVq0yHKON954QzfffLO6du2qiIgIy7OZyqOq55g0aZKl7dNPP63jx4+b5fj4eL399ttmOSQkxBKUFH/W0Pr16ys0/5IcPXrUvOcpKSnavn273njjDXXo0EGLFy+2tH322Wctq5S8vb01atQos3zu3Dn95S9/kWEY5rFffvlFN954o6KiotS8eXNNnz69ynMuavLkyapfv7569OihQYMG6Y8//nBpc/DgQUtA17hx43KPX/yeb9y40XJ9xU2cONH8feXKlZYvyceNG1fu8zpdffXVuuGGG8xySkqKHn30URUUFJjHkpKS9PDDD1v6PfLIIy5jeXh4aMSIEWZ5xYoVliBv7NixcjgcLv3GjRtn+Vt74403LH+PBQUFmjp1qvr166err75aTZo00f79+yt4pZUze/ZsxcXFmeVTp07pscces7QZPny4+fvF+JwoDzc3Nz344IOWYxMnTrSsMs3MzNSECRMsgdCECRPMLQ19fHwsKxQNw9C0adMsQeonn3yir7/+ukbnWV08PT0tQfOuXbuUlpZWreeoDnfffbelPGPGDMv2l+np6RoyZIh69+6ttm3bqmfPnhctWAYAAAAAAJeuiv3zegBXpNTU1HIFGB4eHnrvvfdcVoa4ublpzpw5lhU9d955pxYuXKiWLVtq586dWrNmjVnXo0cPS8hTHlU9x4gRIzR//nwznNi7d69at26t/v37KyMjQ6tWrbJ82fzKK68oICDALBffyuzll1/W1q1b5e3treeee06dOnWq0PVIUp8+fcrVbvLkyfrLX/7icvzZZ5/VV199pRMnTkgqfObTzz//rJ49e+ro0aP65ptvzK39goOD9eyzz1Z4jmWZMmWK3nnnHeXl5SkjI0Ndu3bVwIEDFR4ervz8fB08eFDff/+9OQdvb2+XL7LLUvyeb9y4Uddcc42aN2+umJgYl7FuuukmNW7cWCkpKTp69Kh5/Oqrr67U6yNJ//73v3Xttdea4cTcuXO1YsUKXXfddTpx4oTWrFljeT7V8OHDNXLkyBLHuuOOO/Svf/1LUmHAVlRJ2y5KUmRkpB555BG9+uqrkgrDqGuvvVa33HKLgoKC9NNPP1lWHk6fPl2RkZGVutaKcG6p2L17d/Xv31/+/v5avXq1UlNTzTaBgYGaNm2aWb4YnxPl9dhjj+nrr78Jeg5oAAAgAElEQVTW1q1bJRW+t1q0aKEbb7xRhmHoxx9/tGy92rx5c73wwguWMWbMmKFvv/3WLH/55Zdq27atoqKilJKSonXr1umqq67Sb7/9ZrYpGrJerHlWB3d3dzVp0kQJCQmSCp+X1rlzZ3Xr1k2NGzfWa6+9Vu3nrIw77rhDb731ljZv3ixJ2rZtm9q0aaOYmBjl5eXp22+/NT8bHA6HZs+eXa3P7QMAAAAAAJcngjIA5dKmTRu9/fbb6tmzZ4n1MTExmjdvnqZOnarc3FwZhqEVK1a4bHEYHR2tr7/+usTVM+dTlXO4ublp8eLFuv322/X9999LKlxd8Omnn1r6ent76+WXX9b48eMtx4cMGaL69eubX7IahmGGbjNmzKjwtZRHcHCwXnrpJd17770l1jdu3FixsbEaOnSoOS/n89WKatSokVasWKH69etX6/yuuuoqffDBB7rnnnuUlZWlU6dOudxPp4CAAC1YsECtW7cu9/jh4eEaOHCg5fV1Xl9JwZebm5vGjx/vEghWZjWZU8uWLfXDDz9o2LBhSk5OllT4PKiSns81fvx4MwgryfXXX6+mTZu6hGRdu3ZVmzZtSu330ksv6dSpU3rnnXckFa4i+uijj1zaPfzww3r++efLc1lVZhiG5s+fr8GDB1u2kHTy8vLSRx995PKeuxifE+Xh4+OjFStWaOTIkWY4d/z4cX322Wcuba+77jotWbJEwcHBluO9evXSU089ZbnnCQkJZpjUokULvfPOO+rWrZtZX9EtC6tjntVl0qRJevzxx81ySkqKUlJS1Ldv3wtyvsrw8PDQ0qVLNXToUG3ZskWSdOjQIc2bN8/SzsvLSx9++KFuuummmpgmAAAAAAC4xLD1IoAS+fn5qXXr1ho7dqy+/PJLxcfHlxqSOU2aNEm7d+/Www8/rA4dOigwMFA+Pj5q3ry5Bg0apC+++EJr1qyp0rZgVTlHUFCQvvvuOy1dulTDhw9XeHi4vL29FRgYqA4dOmj69OnasWOHZRWMU2BgoFatWqWBAwcqJCREPj4+atSokQYNGqRGjRpV+nqK8vb2VuPGjRUTE6M333xTycnJpYZkTt26ddOePXv00ksvqUePHqpTp448PT0VHh6unj176h//+Id27dqlDh06VMscixszZox27dqlJ554QlFRUQoNDZWnp6c8PT0VGhqq6OhozZo1SwkJCRo6dGiFx1+4cKEmTpyo8PBwc8xevXqpa9euJbafMGGCZatCd3d33XHHHZW+Pknq3Lmzdu/erX/9618aMGCAwsLC5OnpqYCAALVp00b33nuvfv75Z7377ruW58aVZMyYMS7HSltN5uTh4aG3335b69at05133qnIyEj5+voqICBA7dq101133aXNmzdr9uzZFyxYKsk111yjrVu3auLEiYqIiJCXl5fCwsI0evRobdu2TYMGDSqx38X4nCiPunXravXq1frmm280cuRINWnSRL6+vvLx8VFERIRGjBihJUuWaNOmTaWuuH3uuee0ZMkS9ezZUwEBAapVq5batm2rJ598Ur/88ouuvvpqy2tSmecEVsc8q8P06dP10ksvqVWrVvLy8lLt2rXVsWNHDRw48IKdszLq16+vDRs2aMGCBRo0aJDCwsLk5eWlunXrqnPnznr88ce1d+/eUld+AgAAAAAA+3Hs27ev9Ae+VNLF2PYJAIDi/vjjD7Vq1cp8ltmf/vQnLV++vIZndWXo2rWruQWgVBj61KpVqwZnBAAAAAAAALtJTEys9jFZUQYAuGK89tprZkgmFT5HDRdG0fsMAAAAAAAAXK4IygAAV4TFixdbnkXUsWPHUrf/AwAAAAAAAABJ8qjpCQAAUFkvvviiFi9erBMnTigpKck87nA4NGfOnIv6zC4AAAAAAAAAlx+CMgDAZSstLU3bt293Of7cc8+pT58+F39CAAAAAAAAAC4rBGUAgMtW3bp1FRgYqLNnz8rHx0ddunTRI488oltuuaWmpwYAAAAAAADgMuDYt2+fUd2DRkZGVveQAAAAAAAAAAAAsLHExMRqH9Ot2kcEAAAAAAAAAAAALgMEZQAAAAAA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" width="677"/><br/>After a long slog since November when the previous version of coverity was EOLed and we had to start using 2022.6.0 with its new suggestions for std::move etc, LibreOffice is now finally back to a 0 warnings <a href="https://scan.coverity.com/projects/libreoffice?tab=overview">coverity state</a></p><p><img alt="" height="398" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABo8AAAPhCAYAAAAowDZnAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAmdEVYdENyZWF0aW9uIFRpbWUAU3VuIDExIEZlYiAyMDI0IDE4OjAwOjQ4gNoMbgAAIABJREFUeJzs3XtYVHX+B/D3DIwMdwQFFVBABVFQES8goiJopvbLtiytLbfMfrbbWuvWL3XVrKzVXVe7amu7tpXZxU3bLmaSF0AFQUDlroCo3GGQmzIwMPP7g4fzgMw5zMAMl/b9ep6eZ2a+3/M933MY6HnO28/3K8vPz9eBiIiIiIiIiIiIiIiICIC8rydARERERERERERERERE/QfDIyIiIiIiIiIiIiIiIhIwPCIiIiIiIiIiIiIiIiIBwyMiIiIiIiIiIiIiIiISMDwiIiIiIiIiIiIiIiIiAcMjIiIiIiIiIiIiIiIiEjA8IiIiIiIiIiIiIiIiIgHDIyIiIiIiIiIiIiIiIhIwPCIiIiIiIiIiIiIiIiIBwyMiIiIiIiIiIiIiIiISMDwiIiIiIiIiIiIiIiIiAcMjIiIiIiIiIiIiIiIiElj29QSofzh79izeeust0fYXXngBYWFhvTijgWHfvn2Ijo4Wbf/www/h5OTUizMi6r7q6mqsXr1atH3+/Pl45plnenFGRERERERERERE1BdYeURERERERERERERERESCfld59NprryEtLa3Lfm+//TZGjBjRCzMiorsdOnQIX331lUF9f/3rX+P+++/v0fnS09Px6quvGtQ3LCwML7zwQo/OR0RERERERERERPTfrF+FR1VVVcjIyDCob0xMDFasWGHmGRFRT50/f77H4VFiYqKJZtN/NDQ04Pvvv+/wmbOzMyIjI/toRkRERERERERERESt+lV4FBMTA61Wa1Df2NhYLF++HDKZzMyzIqKeyM3NRVVVFZydnbs9xi8xPLpw4UKn6q2xY8cyPCIiIiIiIiIiIqI+1+/CI0NVVlYiIyMDAQEBZpwRkbSxY8dCrVaLtg8aNKgXZ9M/6XQ6JCQkYNGiRd06Pi8vDyqVysSz6nvnz5/v6yl0MmjQIISHh4u2jx07thdnQ0RERERERERERH2l34RHubm5KCoqMuqYmJgYhkfUpyIiIhAREdHX0+j3zp8/3+3wqD+GLD3V1NSEixcv9vU0OrGxscHatWv7ehpERERERERERETUx+R9PYE2p0+fFm0bPHiw3s8TEhLQ2NhophkRkalkZ2ejpqamW8f+EpesS01N5d8uIiIiIiIiIiIi6rf6RXjU3NyMs2fP6m1zdnYWrVhQq9W/yKoEooFMLu/8Z0Wr1XYrBCoqKtJbkajvHAPJLzEQIyIiIiIiIiIiol+OfvEENjk5GfX19XrbgoODMWPGDNFjpSqWiKj3eXl56f08ISHB6LHEwmFPT0+jx+ovWlpakJyc3NfTICIiIiIiIiIiIhLVL/Y8kgqApk2bhuHDh8PT0xM3b97s1J6RkQGVSgUXFxczzlA/lUqF3NxcVFRUoKmpCba2tnB0dMTYsWNNPh+dTofy8nLcvHkT1dXVUKvVaGpqglKphK2tLVxdXeHj4wMrKyuTnnegU6vVKCoqQklJCe7cuYOGhga0tLRAqVTCxsYGw4cPh7u7O+zs7Pp6qp3U1dXhxo0bqKiogFqtRkNDA2QyGaytrWFnZ4cRI0bA3d0dgwYN6uupduDv74/8/PxOn6enp6O+vt6oey1WoePn54fr1693e45SNBoN8vLycOvWLdTV1aG+vh4WFhawt7eHm5sbRo8eDaVS2e3x09LScPv2bRPO2DDl5eXIzMxEdXU1LCws4OrqiilTpkChUPTqPMrKylBUVITa2lrU1dWhpaUFtra2cHBwgJeXF9zc3Ex+Tq1Wi6KiIhQXF6O2trbD30+lUokhQ4bAw8OjT/4/QkRERERERERE1B/1eXhUW1uL1NRUvW22trYIDAwE0Boi6QuPtFot4uLisHTp0m7PYePGjbh69aretnvvvRdPPfVUh8+Sk5Nx5MgR5OTkiI7p5eWFBx54AKGhoZDJZN2eW2pqKs6ePYsLFy50+cBZLpdjzJgxWLBgAWbOnGnWh8IVFRV47rnnoNVq9bYrlUrs37/f6DlUVVVhzZo10Ol0ettdXFywZ88eyWXLqqqqEBsbi/j4eFy7dk10rPa8vLwwbdo0REVFwdnZ2eD57tu3D9HR0aLtH374IZycnAweLz8/H3FxcTh//jwqKiq67C+XyzFhwgSEhIRg7ty5/SJIcnJywrBhw1BaWtrhc61Wi6SkJERERBg0jkqlQl5eXqfPFQoFfHx8TDLXNhqNBqdOnUJCQgKys7Oh0WhE+7bd86ioKISEhHS5hN6//vUv/PDDDwbN4+rVq1i2bFmnz9esWYPIyMgO83300UdFx3nxxReFis26ujrs27dPb+XX9u3bMXr0aOF9dXU1Vq9eLTru/Pnz8cwzzxh0Le3l5+cjOjoaly9fRnl5uWRfBwcHhISEYMGCBRg1apTR52qjVqsRHx+Pc+fOIT09Hc3NzV0e4+zsjOnTpyMiIsLk3zEiIiIiIiIiIqKBpM/Do7i4OLS0tOhtmz59OiwtW6c4Y8YMHD58WG+/2NjYHoVHUpUQtbW1wmu1Wo29e/fi3LlzXY5ZUFCA3bt34/Tp01i3bp3RlQr5+fnYv3+/ZEB1N61WiytXruDKlSs4dOgQ1q5dC19fX6POa6ihQ4di0qRJosGfWq1GSkqK5JKD+ly4cEEy7Jk9e7bow3q1Wo2vv/4aP/zwg+TDf30KCgpQUFCAb775BgsXLsSKFSt6tSKjvLwcn376qdFLu2m1WqSlpSEtLQ2HDh3CihUrMG/ePDPN0jBqtRpTpkzB0aNHO7WdP3/e4PBIrOrI39+/R/O728mTJ/Hll1+iqqrKoP7t77m3tzd++9vfii7VZy4KhQIKhUL0e15XVweg9Wexbds2vZVgvaGkpASfffYZEhMTDQpxgda/ucePH8fx48cRHh6O3/zmN3BwcDDqvCdPnsQXX3yBW7duGXVcVVUVjh07hmPHjmHatGl4+umnjQqTiYiIiIiIiIiIfin6fM+jmJgY0bbQ0FDhtY+PD1xdXfX2u3nzpt4KBUNJBTt37twB0Pov/f/85z8bFBy1l5qaitdff100INPn7Nmz2LRpk1HB0d3KysqwefNmxMbGdnuMrsyfP1+yPT4+3ugxxfa4aSMWPNTU1GDr1q345ptvjA6O2tNoNPjuu++wadMmg8OEnrp69SrWr1/frT2B2quursbevXvx7rvvilaE9Ya28Eify5cvQ61WGzSO2Hdh0qRJaGxs7Pb82jQ3N2PPnj3Yu3dvt3/W165dw5/+9CdcuHChx/MxliF/tz777LM+C47S0tKwfv16nD9/3uDg6G5xcXFYt26dwdeg1WqFn6mxwdHdkpKS8NJLLyErK6tH4xAREREREREREQ1EfRoe3bx5E9euXdPbZmdnh4kTJ3b4LCwsTHQsqRCqK1IVJm1LxX300UfIzMzs1vhXrlzBV199ZVDfy5cv45133ulRANKm7UFqenp6j8fSJzg4WHKPkOTkZDQ1NRk83p07d5CRkSHa7uvri+HDh3f6vKWlBW+++WaPAsS75efnY/v27QYHHd1VXl6O1157TagUMYXY2Fj84x//MNl4xmpqasL48eP1hhsajQbJycldjlFXVyf60D4oKKjH4ZFWq8Wbb76JU6dO9WgcoPV6//a3v3X770N3SS1RqFarUVFRIbmkojmdO3cO27ZtE0KsnqipqcErr7yCK1eudNn3X//6l0l+pm1qa2uxfft2vUumEhERERERERER/ZL1aXh0+vRp0baQkBBYWFh0+GzWrFmi/c+cOWNUdU97bUvj6dPQ0IC0tLQeP4T97rvvOiyBJ3aut956S7JqxM7ODuHh4Vi2bBkefvhhzJ49G7a2tqL9W1pa8M9//tMslShyuVxyiTS1Wi26rJ0+ycnJkj9DsXN9++23kpUJcrkco0aNQmhoKKKiorBgwQKEhYXBx8dHcr+aa9euGRz6dde+ffskA6pBgwbBz88P4eHhWLBgAaKiojBjxgwMGzZMctzo6GiDQhpz0Gg0UCgUCAgI0NtuSEXahQsX9H5nXVxc4OnpadD+NVK++OILpKWlibZbWFhg5syZeOqpp/D8889j1apVmDlzpuj3pbm5Ge+//77Zw8b2pP5u3blzB8eOHev238SeKC4uxt69e7v8m2NtbQ0vLy94eXnBxsZGsq9arcauXbtQX18v2ufKlSs4duyY5Diurq6YOnUq5s2bhwULFmDOnDkYP368ZBB3584dvP/++92uniIiIiIiIiIiIhqI+mzPI61Wi7i4ONH2mTNndvps5MiR8PT01PuvwOvq6pCSkoJp06YZPRepAEGtVuPAgQPCezs7O8yZMwf+/v6wsbFBZWUlzp8/3+WDeo1Gg5MnT0ruzfTjjz9KVqCMGzcO69ev7xQW1dXV4Y033hCtvCksLMS5c+ckw7fuioyMxNdffy36oPjs2bMG73sktWSdlZWV3u+ETqeTDPZmzJiBJ598UrRCSqVS4e9//7toyHXs2DH8z//8D5ycnLqYvfHKyspw6dIl0fZHHnkES5YsEV2eLC8vD7t370ZZWZne9i+++ALBwcEmmasx2qrmpkyZonc5t4sXL6KxsRFWVlaiY4h9F9qWw+tJKJKVlYVvvvlGtH348OFYv349RowY0eHzhQsXorCwENu3b9d7z8vLy/Hll19i5cqVHT5funQpIiMjhfc7d+5EcXGx3nOPGjUKzz//fKfPBw8e3OkzmUwmeg23b9/W+zfJxsYGcrkcd+7cMUugrNVqsXv3bskQbfDgwXjqqacwffp04W+vVqvFpUuXsH//fpSWluo9TqVS4ZNPPsFvf/tbve0//fSTaMDj4eGB5557DqNHj9bb3tjYiH//+9+i34u8vDwkJSVh+vTpotdFRERERERERET0S9JnlUeXLl0S3ZPC0dEREyZM0NtmjqXrpB7CVlRUCFUt/v7+2L17N37zm99gxowZCAwMREREBNavX4/nn39eMoQCIBkUAK2bvEt59tln9VYZ2dvb4/e//73kdZhrTxYXFxdMnjxZtD0lJcWgJcY0Go3k/ZkxYwasra07fV5UVISKigq9xwwePBh/+MMfJJfWc3FxwUsvvQRfX1/ReSUmJnYx++6RqsoKCQnBQw89JLmvzejRo7F161bRqo2CggIUFRX1eJ7dJbbvUWNjIy5evCh6nFqtxuXLl/W2tYVhPakCOXz4sOjxSqUSmzZt6hQctfHw8MDmzZtFfy7Hjh3rFAA7OTnB09NT+E+qymXQoEEd+rb9Z2dn16mv1N+bxMREYR62trZ48sknsX//fnz88cf46KOPcPDgQfztb38Tvc7uio+PR0FBgWi7o6Mjtm/fjpCQkA7zl8vlCAoKwrZt2+Do6Ch6fExMDCorK/W2Sf0+/fGPfxQNjoDWcPqxxx7DkiVLRPsYu98dERERERERERHRQNZn4ZFU0BMaGir6YFQqPEpOTpZc1qgnPDw8sGHDBtEKlFmzZmHx4sWSY+Tm5or+a//y8nLRChKgtRpC6kGvu7s7vL29RdvNte8RAMyfP1+0rbGx0aDl0y5duiRZrRAREaH3c7HgCAA8PT07LX2oj0KhwKJFi2BhYQEXFxeMHTsWM2bMwD333IMVK1bAw8OjyzG6Q+whOADJn2V7Q4YMQVhYGKysrODm5gZ/f3+EhYVh8eLFePzxxyWXNjM3FxcXjBw5Um9bQkKC6HGpqal69/xSKpWd9kEz1s2bNyVDykWLFsHV1VVyDDc3N9Hf9ebmZsmKyt7SttfQ4MGD8Ze//AWLFi2Cvb290G5hYYGRI0fqDWR74rvvvpNsf/rpp+Hs7Cza7ujoiKefflq0XavV4sSJE50+b2pqEq3atLCwMPh3eMmSJbCwsICjoyO8vLwQFBSEyMhILFu2DFOnTjVoDCIiIiIiIiIiol+CPnmyfOfOHSQlJYm2SwVEw4YNw+jRo/Uu0dbc3IyzZ8/innvuMck821u9enWXD1rvv/9+/PDDD6IBkVqtRk1Njd4lqIYMGYKDBw+Kji1VVdTGw8NDdO+f2tpaaLXaLqujumPKlClwdnZGVVWV3vZz587pXXKuPanqnqFDh4pWojU0NIgeV1RUJOy/05WZM2di5syZBt1nU5Ga+7Vr1wwe5+mnn8YzzzxjiimZ3IwZM3Djxo1OnycnJ6O5uVlvuCW2ZF1wcLBBP0sp586dk6xaCg8PN2icuXPn4uuvv9bbFhMTg0WLFnVrfqb2/PPPdxmGmcr169dFl84EWv92G7KE5dSpU6FUKkXD5IsXL+KRRx7p8JnU71JLSwsKCwsNCpBcXFxw8OBBs/ydJCIiIiIiIiIiGkj65AnZuXPn0NTUpLfNxcUFfn5+ksdL7d3T3aXrpIwePRrjx4/vsp+joyPGjh0r2ef27dt6P5fL5VAoFKL/GVJBom9JuzY6nQ61tbVdjtEdcrm8w54ud0tNTZWsKtJqtZLVSXPnzhUNdRwcHESPU6lU2L17t+jyiO3JZLJeDY4A6bknJCTgq6++Ev09aa8/P+gWCwsaGhr0Lk3X3NyMlJQUo8YyRnZ2tmibUqmEu7u7QeMMGzZMbwgMtAZ/Ut/33hIYGCgauppDVlaWZHtwcLBBv2OWlpZ44YUXsGbNGr3/LViwoNMxtra2kr8Hf/vb30SD9bv1598nIiIiIiIiIiKi3tInlUenT58WbTOk+iM0NBSffPKJ3gqCq1evori42KR7eYSEhBjcd+TIkcjJyRFtb1tOyhy6euhpSBDRXVFRUfj666/1Vl01NTUhOTlZtKIsOztbNNiSyWSYM2eO6Hm9vLwgl8tFq72SkpKQkpKCiRMnYuLEifD19YW3t3ePK1hMQWoPFgA4dOgQjh49iuDgYAQEBGDMmDFwd3cfUA+3R40aheHDh6OkpKRTW0JCQqd9kdLS0vRWkQwaNAhBQUE9motWq0Vubq5o++DBg40KEF1dXfUGkzqdDteuXYO/v3+35mkqUhWc5iAVzAEw6n607W1lKEtLS3h5eYkGRIWFhXj55ZcxevRoBAcHw9fXF2PGjJEM3ImIiIiIiIiIiP6b9Xp4VFZWJhmuGPLA08XFBf7+/sjMzNTbHhMTgxUrVnR7jnfr6iF/ey4uLpLtYiGHPgUFBUhJSUF+fj4KCwtRX1+PO3fu6N0Ppq85OztjypQpuHDhgt72c+fOif5spZYwHD9+PNzc3ETb7ezsEBwcLDlGS0sLUlNTkZqaCqB1DxQvLy+MHTsW48ePx4QJEySrgMxl0qRJcHR0RE1NjWif27dvIzY2FrGxsQBaq2PGjBkDX19fTJgwAX5+frCysuqtKXdLSEgIjhw50unzpKSkTkspii1fGBQUBKVS2aN5qFQqyYqgkpISLFu2rEfnaJOfn9/n4VFvn7+goECyffjw4WY9f3h4eJfVRXl5ecLSejKZDMOHD8fYsWMxbtw4TJgwwexzJCIiIiIiIiIiGih6PTySWlaubT8jQ4SFhYmGR7GxsVi+fLnJliGT2uD9bqZ4kJ+amorPP//cqH1v+oP58+eLhkdtS9fpCwCk9juKiIjo8ry//vWvkZaWZvBSYS0tLcJD5GPHjgForRgLDg7GrFmzMHLkSIPG6SmFQoEnnngC7777rsHHqNVqpKenIz09HYcPH4aFhQX8/Pwwffp0zJw5U3Qptb4kFh7V19cjMzMTAQEBAFqDVbEQMDQ0tMfzEFsy0hwqKyt77Vz6WFpaYtiwYb16zq6WxTT3d/Oee+7BiRMnUFhYaFB/nU6H4uJiFBcXC/9fcnFxQVBQEGbOnIkJEyYMqCo/IiIiIiIiIiIiU+rV8Ein00mGR6WlpSb5l/+VlZXIyMgQHkr3lLW1tcF9DdmbSIxWq8XevXsll/XrzyZPnowhQ4bofXCu0WiQlJSE8PDwDp8XFBSgvLxc73hKpdKgfW5GjBiBdevWYefOnd1emu/GjRu4ceMGjhw5An9/fyxfvtygfa56avbs2SgtLcWhQ4e6dXxLSwsyMzORmZmJTz75BGFhYXjkkUckq7V6m4+PD1xdXfX+nC9cuCD8nubm5uqtwlIoFEYvY6ZPfX19j8cwlDmXpzREV3sAmUNX4VxPK8e6olAosGHDBrz66quif1O6olKp8PPPP+Pnn3+Gm5sbHnzwQcyZM4chEhERERERERER/dfp1SdiWVlZ3X6oZyypkMpYvfXg8J133hmwwRHQep8iIyNF28+ePdvps5SUFNH+oaGhBj9wDgoKwhtvvAFvb2+D+kvJysrC1q1bcfDgQaOWGeyuhx9+GOvWrYOjo2OPxtFqtYiLi8OLL76I+Ph4E83ONMT2Dbt48aLwWuy7MGnSJJMED+bc8+tu+vZt6k3mDmruplaru/xdsbCwMPs8XF1dsX37dpNUqpWVlWHPnj3Yvn17rwaPRERERERERERE/UGvVh71ZjCSkJCAp59+ut/vB9PmzJkzesOV9jw8PDBr1ix4eHjA3t4eFhYWHZbmO3r0aJdjmNu8efNw6NAhvQ+SL168iNu3b3fYpL5tHyKxsYzh5eWFHTt2ICEhAT///DPS09O7Hf7odDocOXIEt2/fxurVq7s1hjFCQ0MRFBSEEydO4PTp013uHyNFrVZj165deOGFFwzaQ6w3hISE4Ntvv+30eVFREaqqquDs7NwhSLr7WFPoKlCxt7fHuHHjTHKu3lr6UExvBDXtDRo0CDKZDDqdTrRPU1NTr4Ra9vb2WLduHa5evYpjx44hMTHR4CUt9UlNTcVrr72GN954AwqFwoQzJSIiIiIiIiIi6r96LTxqamrq1WoItVqN8+fPY/bs2b12zp74/PPPJdvnz5+PVatWST4U7uvgCGjdHyo4OFjv3jUtLS1ITk4WfiYNDQ24cuWK3nGGDRvWrQf5MpkMoaGhCA0NRX19PdLT05GWloasrCwUFRUZHSYdP34cEydONGj5vJ5SKpVYvHgxFi9ejIqKCly6dAnp6enIycnp1h46H3zwAXx9fTF06FAzzNY4Y8aMgYuLC1QqVae29PR0BAUF6d3jy8LCAlOnTjXJHOzs7CTb3dzc8H//938mOdd/G7lcDmtra8nl+hobG3u1Imrs2LEYO3YsNBoNsrOzcfnyZWRlZSE/Px8ajcaosa5du4ZPPvkEq1atMtNsiYiIiIiIiIiI+pdeC4/Onz/fo3/93R2nT58eEOGR1L4/QOtSTE8//XSXy+fp2y+mL8yfP19veAQAiYmJws/k8uXLomFOREREj+dhZ2eHkJAQoXJFrVYjNzcX+fn5yM/PR3Z2tt4w427fffddr4RH7Q0dOhRRUVGIiooCAFRXVwtzz83NRXZ2dpdLo6nVakRHR+PRRx/tjSlLkslkCAkJwQ8//NCpLT09HTKZTO93YeLEiR0q1Xqiq/Cor5eaG+js7Owkw6PKysoeL83YHQqFAoGBgQgMDATQGmJfv34deXl5wt+BwsLCLsc5efIkli9fbrLvIxERERERERERUX/Wa+GRKfcgMlRGRgZUKhVcXFx6/dzGyMzMlGyfPn26Qfsudac6xRwmTZqEoUOHoqKiolPbpUuX0NzcDEtLS1y6dEnv8XK5HHPmzDH5vJRKJQICAhAQECB8lp+fj59++gmnT58WDbJycnL6/Hvk5OSEqVOnClU4LS0tuHz5Mr799lukp6eLHhcfH98vwiMAkuFRS0uL6DGmMnjwYNjY2IgGHOXl5dBqtb22x9kvjbu7u2QIXlpaitGjR/fijPSzsLCAj48PfHx8hM9UKhVOnjyJ77//XvT70dTUhJSUFISHh/fWVImIiIiIiIiIiPpMr4RHKpUKaWlpou2TJk3Ciy++2K2x09LS8Je//EVvm1arRVxcHJYuXdqtsXvLrVu3JNsNCS1qampw9epVU02pR+RyOaKiovQuxadWq5GVlYXAwEDR8CggIKDXghofHx88++yzmDJlCnbu3Cnar6/Do7tZWFggKCgIQUFB+Oijj3D06FG9/SorK6HT6TrsjdVX/Pz84OzsjKqqqg6fV1RUoK6urlN/uVyOadOmmez8MpkMY8aMweXLl/W2azQaFBYW9vl+RQPVuHHjJPcwy8jIMHgPrsOHD+Pnn38Wbd+yZQuGDRtm9BzFuLi4YNmyZQgPD8eGDRtQX1+vt5++QJyIiIiIiIiIiOiXqFf+iX1cXJzkXjNhYWFQKpXd+i84OBj29vaiY8fGxprjkkxKaqknQ508edLo/XzMKSIiQrSCIyUlBSUlJaJVCvPmzev2edVqNQoKCvSGEVJmzJgBb29v0fbq6upuz8lQdXV1yMnJgU6nM+q4Rx55RLStubnZJN8vU5DJZJg+fbreNn1LWk6YMEHyd7s7utpHKzEx0eCxzLEMp1gF1kDg7+8v2Z6SkmLw36jk5GRUVFTo/a+urg6urq6Sx7e0tKC4uBhlZWUGzx9o3WtNquqxtrbWqPGIiIiIiIiIiIgGql6pPJIKcCwtLXu0n4xcLkdISAiio6P1tt+8eRN5eXn9YrkkMdbW1pLtJSUlku1lZWX4+uuvuzxPY2OjUfPqicGDB2PatGk4f/58p7ZLly7Bzc1N73E2NjaiAcPdCgsLkZycjJKSEuG/tiquX/3qV1ixYoVRc7axsRFtc3BwMGqsrly+fBnZ2dkoLS1FcXExSktLcfv2bQCtVRVt+7MYQqlUQi6X630wb2Fh0eX3qzfNmDEDx44dM6ivKZesazNz5kwcOnRINKD76aefsGTJEiiVSslxsrOzsXnzZigUCjg6OsLR0REODg5wcnKCg4MD7rvvvm7t73N3VdZA4ufnBzc3N9HARqVSISYmpsv9zAoKCnDlyhXR9qCgoA7BdF1dHc6ePSv8HhUXF6OiogJarRZ+fn7Ytm2bUdch9XfA1GEmERERERERERFRf2X2yqO8vDzcvHlTtH3y5MmSD+sMMXPmTMn2vthvyRiDBw+WbE9ISBCtHikrK8Mbb7xhUDAktR+JOURFRen9/ObNmzh9+rTetrDaWYnJAAAgAElEQVSwMCgUCoPGr62txYEDB3DixAlkZmZ2WP7v6NGjRl3vrVu3JJf9Ewu7uisnJweHDh1CXFwc8vLyhOAIAA4cOACNRmPwWMnJyaIVHW5ubv1qD5/x48cbFKrI5fIehcpi3N3dJYO56upqfPjhh5LVXxqNBgcOHBBeV1ZWIi8vD6mpqTh16hSSk5Mlw0YLCwvJ81+7ds2AK+l/5HI5lixZItnnk08+kawGUqvV2LNnj+QYCxYs6PB+0KBB+Oyzz/Djjz8iNTUVZWVlwu9DTk4OEhISDLyC1qVOk5OTRdtNuVQeERERERERERFRf2b2p8piIUGbWbNm9fgc48ePlwxgzpw506+Xg/Lz85Nsr62txY4dOzo8dK2rq8ORI0ewYcOGDpVJUg/mz5071/PJGmHSpEmiy0vl5eXp/byrqoT2/P39RUMdtVqNrVu34uLFi10uA5eTk4PXXnsNTU1NoufpKuAz1uzZs0VDnfz8fLz55puSoSvQ+qA7NjZW8mF7V8Fqb5PL5QZVlo0bN65blTuGeOCBByTbY2NjsXPnTlRWVnZqKywsxJtvvomcnBzR45cvXy65x5Stra3k+d95551OP/v24WJ/NnfuXAwZMkS0vb6+Hhs3bsTZs2c7/U1OT0/Hxo0bJcOzgIAABAQEdPjMysoKoaGhose8++67+Omnn7oMZMvKyrBr1y7k5+frbbeyskJwcLDkGERERERERERERL8UZl22rqWlBWfPnhVtHzRokEkexsnlcoSGhuLo0aN62+vq6pCSkoJp06b1+Fzm4OPjA2dnZ8klqzIzM/Hcc8/BxcUFTU1Nevf0CQoKgp+fH7744gu9Y8TGxkKtVsPf3x8NDQ0IDw8367+kl8lkiIqKwsGDBw3q7+HhgbFjxxo1/uOPP46dO3fqba+oqMAbb7wBe3t7eHt7w8XFBVZWVgCApqYm3Lp1C9evX+9yqbD777/f4DkZys3NDQsXLhT9zqanp2PdunVwc3ODh4cHnJycMGjQIGi1WqjVaqHaRWrfHRsbG8yfP9/kc+8pqWUm20iFAT0VEBCARYsWid57oHXvo6SkJPj4+MDV1RUajQYVFRW4fv265NghISFdVky5u7vj8uXLou2FhYVYt24dXFxcYG9vj8rKSowZMwZ/+tOfpC+sH1AqlfjDH/6AzZs3i1bD1dbW4q233oKdnR3c3NxgaWmJ0tJS1NTUSI5tY2ODNWvW6G1bvnw54uPj9f4+NDU14R//+Ac++eQTeHt7w9XVFdbW1rC0tIRGo0FNTQ2KiopQVFQkef4FCxZ0uZwhERERERERERHRL4VZw6MLFy7oDTnaBAcHm+xh3MyZMyUfBsfExPTb8Egul+OBBx7AP//5zy77qlQqvZ8PHjwYa9as6fIBaGJiIhITEwG0VmyZexmmefPm4csvvzSo8mvu3LlGjz9jxgxERETg1KlTon3q6uokH9ZLueeee8xWbbBixQpkZGRIBhJlZWWSy3yJkclkeOaZZ+Ds7NyTKZpFQEAA7OzsUF9fr7ddJpMZvO9Vd/36179Gbm6u5N46Op0OeXl5olVyd/P29sazzz7bZb+JEyfixx9/7LKfSqUS/X3vz3x9fbFy5Up89NFHkv3q6+tFvwN3UygUePHFF0UrDZ2dnbFq1Sq8//77omM0NTUhJydHsmpMjLe3t9F7qBEREREREREREQ1kZl22LjY2VrI9LCzMZOfy8/MTXSINaN0XxtAHlX1hwYIFCAoK6tax9vb2WL9+PZydnTF+/Ph+FRg4Ojpi6tSpXfaTy+WYPXt2t86xZs0ak36X2ixevBhPPfWUycdto1QqsXHjRowcOdKk4yoUCjz//PNmuSemIJfLJYPcsWPHmv07rFAosGXLFpPtq+Tn54dNmzYZtH/blClT4O7ubpLz9leLFi3C888/b/D+ZVIcHBywefNmyb2qgNbweeXKlSbf4ysgIABbtmwxybUQERERERERERENFGYLj+rq6iQ3HlcqlZgyZYpJzym11FVzc7PkEnp9TS6XY926dUZXR/n4+OCNN96Aj48PAMDCwgJPPPGEOabYbXdvcK/P5MmTu72vkFwuxwsvvIA1a9bAycmpW2O05+HhgfXr1+M3v/mNyR9E383Z2Rnbt2/HkiVLTPJwOigoCDt27Oi3wVEbqd/V3tqnycrKCuvWrcPKlSvh4ODQrTGUSiUefvhhvPbaawaP0fZ9NSRoGshmzZqFbdu2YcKECd06Xi6XIzw8HLt27YK/v79BxyxZsgSvvvoqvLy8unXO9uzt7bFy5Ups2rQJdnZ2PR6PiIiIiIiIiIhoIDHbsnVnzpyRXKps+vTpJv+X3LNmzcJ//vMf0faYmBjcc889Jj2nKSmVSrz00ks4e/YsvvnmG8nlzEaOHIlFixYhIiKiU8ARFhaGhoYGHDhwALdv39Z7vLe3d7fDGmMFBgbCzc1Ncvm1efPm9fg8kZGRmD17Ns6cOYOkpCSkp6ejoaHBoGPt7e0xZcoUhIaGIigoyOyhUXsKhQIrV67E0qVLcerUKaSkpODKlSsGLfUHtO6fNH36dISFhWH06NFmnq1pBAYGwtbWVu/301TVQIaQy+VYsmQJoqKicPz4cSQmJiI3N7fLez9y5EiEhoZi/vz5cHR0NPq8Xl5e2LFjB/bv34/U1FTJvsOGDcP48eONPkd/4OPjg61btyIjIwMnTpxAWloaqqurJY9xcXHBjBkzEBUVBU9PT6PPOW7cOPz1r3/FxYsXce7cOVy+fNng5f8GDRqECRMmIDQ0FKGhodzjiIiIiIiIiIiI/mvJ8vPzdX09CdJPpVIhJycH1dXVaGhogJWVFYYMGQIfHx/JJfraqNVqZGRkoKSkBI2NjbCyssLQoUPh5+dnkgodY2zZsgVZWVl62+zt7bFv3z5YWpo2y9RqtaioqEBJSQlUKhXUajUaGxsBtAZ11tbWcHZ2hoeHB1xcXEx67p7SaDQoLS1FSUkJqqur0dTUhMbGRlhYWECpVMLGxgaurq7w9PSEra1tX0/3F0WtViM3Nxc1NTWoq6vDnTt3oFAoYG1tDTc3N4waNarblUr6qFQqZGdno6qqChqNBra2trCzs4OdnR28vb1Neq7+oLCwECUlJairq0NtbS20Wi2USiWGDBmCkSNHmmUftlu3bqGkpATl5eVoaGhAY2MjWlpaoFQqoVQqYW9vD09PT7i5ufVqcExERERERERERNRfMTwisyspKcHatWtF2++9916z7i1ERERERERERERERESG4z+xJrP7/vvvRdtkMplBeyIREREREREREREREVHvYHhEZlVeXo6TJ0+KtgcFBcHDw6MXZ0RERERERERERERERFIYHpHZaDQavPPOO2hubhbtc//99/fijIiIiIiIiIiIiIiIqCuWfT0B+mUqKyvDnj17kJOTI9onKCgI48eP78VZERERERERERERERFRVxgeUY+98847aGxshIODA5qamlBSUoLc3FzodDrRY+RyOR5//PFenCURERERERERERERERmC4RH1WF5eHoqLi406ZtmyZfD09DTTjIiIiIiIiIiIiIiIqLu45xH1uoCAAPzqV7/q62kQEREREREREREREZEeDI+oV/n5+eHll1+GXM6vHhERERERERERERFRf8Rl66hXWFpaYvHixVi+fDksLfm1IyIiIiIiIiIiIiLqr/gUn3osMDAQSqUSKpUKjY2NaGpqgoWFBRwcHODh4YGAgADMnTsXTk5OfT1VIiIiIiIiIiIiIiLqgiw/P1/X15MgIiIiIiIiIiIiIiKi/oEbzxAREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQkYHhEREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQkYHhEREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQkYHhEREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQkYHhEREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQkYHhEREREREREREREREZGA4REREREREREREREREREJGB4RERERERERERERERGRgOERERERERERERERERERCRgeERERERERERERERERkYDhEREREREREREREREREQks+3oC/8327duH6OhoAMDChQuxatWqPp4RERERERERERERERH9tzNLePTWW2/h7NmzAABXV1e89957kMlk3R7v97//PUpLSwEAM2fOxB/+8AeTzJP6t+zsbMTExCA7OxtVVVVobGyEjY0N3NzcMG7cOERGRsLDw8Pg8QoKChAbG4vLly+jqqoKarUajo6OGDFiBEJDQzFr1iwolco+m58+jY2N+OMf/4iysjIAQGBgILZs2dKjMcUMxPtjiKysLLz99ttQqVQAgOXLl+PBBx80aoympiZ8/PHHOH78OABALpfjyy+/NPlciYiIiIiIiIiIiPoDs4RHkZGRQnhUXl6OrKwsjB8/vltj5eTkCMERAMybN88kc6T+q6amBnv27EFKSkqntrq6OtTV1SE3Nxc//PADFi5ciCeeeAKWluJf5ebmZhw4cAA//vgjtFpth7bKykpUVlbi8uXLOHLkCNauXQs/P79enZ+Uzz//XAiOzGUg3x8pWq0W//73v/H11193ui5j3LhxA7t370ZhYaEJZ0dERERERERERETUf5klPAoICICrqyvKy8sBAKdPn+52eHTq1Cnh9dChQxEYGGiSOfYHjz32GB566CEAgJWVVR/Ppn+oqanBli1bUFxcLHymVCrh7e0NpVKJqqoq3Lx5E1qtFjqdDj/++CPq6+uxdu1a0TE/+OADxMTEdBjPx8cHtra2qKioQEFBAYDWoHPbtm3Ytm0bRo0a1WvzE5Obm4sff/zR6OOMNVDvj5TKykq89dZbyMnJ6dE4P/30Ez7++GNoNBoTzYyIiIiIiIiIiIio/zNLeCSTyTBv3jx88cUXAID4+Hg89dRTRi15BbQuFXXu3Dnh/dy5cyGXy006175ka2sLW1vbvp5Gv7J3714heLCwsMDy5cuxaNEiDBo0SOhTVlaGPXv2IDMzEwAQFxeH8PBwBAUFdRrv1KlTQjAik8nwwAMP4IEHHujwXbx58yZ27dqFwsJCqNVq7Ny5E2+//bbe75qp5yemubkZ77//PrRaLeRyeY8qZ6QM1PsjJT4+Hn//+99x+/ZtAIC/vz80Gg1yc3MNHqOurg579+5FUlISAEChUCAyMhLHjh0zyRyJiIiIiIiIiIiI+jOzJTHt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BgC8vb0NPl9/curUKRw+fBhA63384x//aFTw0GbixInC64yMjC77l5SUCNVilpaWCAgIMOv8+hrvDxERERERERERERHp06uVRwAQEBAAV1dXlJeXo7a2FllZWbC2tkZFRQWA1uW0AgMDRY+3t7eHp6enEKacO3cOY8eOlTynVqtFfHw8Jk6cKFrRZKimpiZcv34dJSUlokvrtefr64uYmBgAQENDg8HncXZ2hpubG8rKygAAycnJXYZBqampwmsnJycMGzbM4PP1Fzdv3sSHH34ovF+7di2mT5/erbGmTp0qVL/Ex8fjqaeektzX58SJE8LrgIAAWFtbm21++/fvN7hvRkYGtm7dCgAIDAzEli1bjD6fPv35/hARERERERERERFR3+n1yiOZTIZ58+YJ7xMSEjpUHc2dOxdyufS02lcmRUdHd9iHRZ8TJ07grbfewtNPPwlDXdQAACAASURBVI09e/Z0c+atXnzxRWzcuBHvvvuuQdUapaWlwushQ4YYda721RrHjh2TDJ+amppw9OjRDsfKZDKjztfXtFot3nvvPWEfniVLliAsLKzb4/n7+wsVXGq1Gp999plo3+LiYvz444/C+yVLlph9fn2N94eIiIiIiIiIiIiI9On18AjoGBAlJSUJ4ZFcLu8QLImJjIyEm5sbAKCxsRHbtm3Tu6ybVqtFdHQ0/vGPfwjvJ02a1KO5h4eHC6937doluRRdWloajh8/LryfOnWqUee655574OTkBACoqanBX//6V9TX13fqd/v2bezatQuVlZUAWquzFi9ebNS5uuvMmTN45ZVX8Morr+D111/v0Vjx8fHIz88HALi4uODRRx/t8fyWL18uvD527Bg+/fRTqNXqDn2ys7Px6quvoqmpCUBrVY2+74k55tfXeH+IiIiIiIiIiIiI6G69vmwd0PpgedKkSUhNTRX2UAFa92AxpDpHqVRi7dq1eP3116FWq1FSUoKXXnoJkyZNgre3NywsLKBSqZCWltahKmnWrFk9roS47777cPbsWRQVFaG2thavvPIKPD09MWbMGDg5OUGhUKCmpga5ubnIy8sTjgsJCRHdI0aMnZ0dfve732HHjh1obm5GWloa1q5di5CQELi7u6O5uRnFxcVISkpCXV0dAMDCwgK//e1v4ejo2KPrNFRlZaUQoCkUih6N1bZPDgA0NzfjlVdeMer4hQsXdlpKMCgoCEuXLsU333wDAPj2228RHR2N0aNHQ6lUoqysrEPwOGTIELzwwgu9Nr++9ku7Pxs3btT7eXFxsfD6+PHjSE5O7tQnIiIC8+fPx4kTJzos0demfaim1WpFz7Vt27YuqyeJiIiIiIiIiIiI+rM+CY+A1uqh9nv0ADCo6qiNr68vXn31Vbz99tsoLi5GS0sLUlJSkJKS0qmvXC7HvffeiyeeeKLH81YqldiyZQt27dqFnJwcAK37vOirfAJal+mLiorCU0891a3zTZ48GRs2bMCePXugUqlQV1eH6OhovX2dnZ3x3HPPSe4Z1Z+1VU4BrZVWNTU1Rh0vtrfOo48+CqVSia+++gparRYNDQ1IT0/v1M/X1xdr164VDd7MNb++9ku6P1evXu2yT1VVFaqqqjp93vZ7U1VVZdA4hvQhIiIiIiIiIiIiGoj6LDyaOnUqHB0dhQfM9vb2mDZtmlFj+Pj4YPfu3Th37hwuXLiAq1evora2Fk1NTbC1tcXw4cMxfvx4zJs3D8OHDzfZ3J2dnbFt2zakpqYiMTEReXl5qKioQENDA2QyGWxsbDB8+HD4+/tjzpw58PDw6NH5Jk6ciHfeeQenT59GcnIyrl+/jtraWsjlcjg4OMDb2xtBQUGYM2dOj6t/folkMhkefPBBhISE4NSpU7h48SJUKhUaGxsxePBgeHl5YdasWZgxY8Z/ZcUI7w8RERERERER0f+zd99xUpT3H8A/M7N993avF0BApPeuIiJYUEGEWLCgWH5GjcZEY0wzmmYSE2OisSs2VDB2QVRsCCqiIE2l93JcL3vby8zvj5OVvZm923q7h5/36+Urue/OPM8zy90zu893nuchIqIjCbt27VKy3QgiIiIiIiIiIiIiIiLKDZxGQERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBFMHhEREREREREREREREVEEk0dEREREREREREREREQUweQRERERERERERERERERRTB5RERERERERERERERERBG6TBT6zm39MlEsERHlmLPv2Z7tJrSL9yMioh8G3o+IiCgX5Pr9iIiIKBGceUREREREREREREREREQRGZl5dNj0QcxNEREdjZZslrPdhITwfkREdHTi/YiIiHJBV7sfERERxYPfXoiIiIiIiIiIiIiIiCiCySMiIiIiIiIiIiIiIiKKYPKIiIiIiIiIiIiIiIiIIpg8IiIiIiIiIiIiIiIioggmj4iIiIiIiIiIiIiIiCiCySMiIiIiIiIiIiIiIiKKYPKIiIiIiIiIiIiIiIiIIpg8IiIiIiIiIiIiIiIioggmj4iIiIiIiIiIiIiIiCiCySMiIiIiIiIiIiIiIiKKYPKIiIiIiIiIiIiIiIiIIpg8IiIiIiIiIiIiIiIioggmj4iIiIiIiIiIiIiIiCiCySMiIiIiIiIiIiIiIiKKYPKIiIiIiIiIiIiIiIiIIpg8IiIiIiIiIiIiIiIioggmj4iIiIiIiIiIiIiIiCiCySMiIiIiIiIiIiIiIiKKYPKIiIiIiIiIiIiIiIiIIpg8IiIiIiIiIiIiIiIioggmj4iI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KV5eXhg8eDD27NmjeCwtLQ1r1qwxaj8qlQozZsyAg4ODuYtIREREREQ1UH5+PrZs2aL729PTE+3bt6/CEhERERH9c3DmERFV2gsvvIDg4OAKv97e3h7Tp09H165dzVgqIiIiIiKqyb799lvk5OTo/p46daow6wERERERmR9nHhFRpdna2mLu3LnYs2cPNm/ejOzsbKNf2759e7zwwgvw9PS0YAmJiIiIiKimmTNnTlUXgYiIiOgfi8EjIjILGxsbDB06FAMHDkRkZCTOnTuHa9eu4fbt27h37x4ePHgAJycnODs7w9PTE76+vggKCmLQiIiIiIiIiIiIiKiasUlMTCyp6kIQERERERERERERERFR9cBkwURERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkQ6DR0RERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkQ6DR0RERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkQ6DR0RERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkQ6DR0RERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkQ6DR0RERERERERERERERKTD4BERERERERERERERERHpMHhEREREREREREREREREOgweERERERERERERERERkY6dJXa66y1fS+yWiIiqmWEfXa7qIujF+xER0T9Ddb8fERERERER1TSceUREREREREREREREREQ6Fpl5pDUigLEpIqJH0Z9xmqougkl4PyIiejTVtPsRERERERFRTcHeNCIiIiIiIiIiIiIiItJh8IiIiIiIiIiIiIiIiIh0GDwiIiIiIiIiIiIiIiIiHQaPiIiIiIiIiIiIiIiISIfBIyIiIiIiIiIiIiIiItJh8IiIiIiIiIiIiIiIiIh0GDwiIiIiIiIiIiIiIiIiHQaPiIiIiIiIiIiIiIiISIfBIyIiIiIiIiIiIiIiItJh8IiIiIiIiIiIiIiI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2vtnISIiIiIiInKWIjc3lzv3EvkBq9WK++67DwUFBaJjL7zwgstp8IiIiIiIiIiIiIiI3OE/uYuILnLZ2dmSgaPu3bszcEREREREREREREREPsPgEZEfMJvNWLZsmeSxK664wsetISIiIiIiIiIiIqKLmd/teUR0sTGZTHjzzTeRl5cnOpaQkIChQ4f6vlFEREREREREREREdNFi8IjIx9asWYOKigpotVqcO3cOe/fuRUlJieS5N954o23zbSIiIiIiIiIiIiIiX2DwiMjHfv31V+zbt6/V84YMGYLBgwf7oEVERERERERERERERP/DJQ1Efqhz586444472rsZRERERERERERERHQR4sojIj+Tnp6O+++/Hzqdrr2bQkREREREREREREQXIQaPiHwsMTERZ8+eRVVVFYxGI5RKJfR6PVJSUjBq1CgMHDgQCoWivZtJRERERERERERERBcpRW5urrW9G0FERERERERERERERET+gXseERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgweERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgweERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgweERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgweERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgweERERERERERERERERkQ2DR0RERERERERERERERGTD4BERERERERERERERERHZMHhERERERERERERERERENgHeqHTNIyneqJaIiPzMlJd+b+8mOMT+iIjo4sD+iIiI/AH7IyIi8gee6o+48oiIiIiIiIiIiIiIiIhsvLLyqNllaYxNERFdiL4/YmnvJriE/RER0YWJ/REREfkD9kdEROQPPN0fsbcgIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyIbBIyIiIiIiIiIiIiIiIrJh8IiIiIiIiIiIiIiIiIhsGDwiIiIiIiIiIiIiIiIiGwaPiIiIiIiIiIiIiIiIyCagvRtA/kOhVEEV1xeqyB4QtOEQAsNgNRthqa+Apf4cjEWH0HjuD8Bq9WIjFFBF9oAq9hIIgREQAsOhUCia2mCogKnsOExFB2E1m7zXBg9RqIOhSciAUp8IISgCgjoEVlMtLPUVMNeWwHj2V5hritq7mT4REJEMdVxfCEGRf/5NhfP+pr/DVHSoQ/xNiYj8kSoqBaroXlDqu0BQ6wAAloZqNFaegqk4B43nctu5hURE5AsB4d2gjrsEyrAuTd89zEZYDJUwV56GsWA/zDWF7d1Er1MGR0OdkAEhKBLK4CgoVMGwmmrRWHUWppIjMBXnePf7LBGRF/jFeB3+fMd2GgilLrZpbCdAC4uhChZDBcyV+Wg4+yusxhqvtuFCIWj1UCdkQBmaACEw/M8xw7qm32VdKUwF+9FYme/VNvjLc0X+jcGji5wiQIOg9OnQDfwLNIlDoAjQOjzfYqiAIXczavZ8gPrjGwCrxSPt0HYbA13mbQjsMQFCYLjDc62NDTCe2Y2aXz9C7cEvYTXVeaQNniBoQhHcfzZ0A26COr4/ICgdnt9YeRr1R1ai+pd3YCr5zUetbBKg74z4e/ZB0ITalRsLD6DgjUFtrl/TeTB0g+9AYM/JUAZHOzzX2mhAQ/4vqNm7BHWHvoK1saHN9yciupCponshZPAdCEqfDmVIvMNzGytPo+7AZ6je9TYaK0/7qIVEROQLyuAYhGTdgeB+NyIgItnhuabiI6g9sAzVv7wDS325y/eKv2sX1AkD3G2qQ/VHV6N46VVuXasMTUDo0HsQmDIZqpjegEIhe665tgR1h79G9c9vwFRy1N3mEhF5nb+M1wWEdYEu83YE95nZaj8DqwWm4hzUHvgMNXuXwFxb4pE2uCqw12WIufFbr9Vf8PZQGM/sdfk6ZUg8dAPnILjvtVBFpTrsrwDAXFuM+mNrUbPnQzSc2uFuc+34y3NFHQeDRxex4EtmIXzqy1DqYp2+RtCGIaj3VQjqfRVMJb+h7Nvb0XD6Z7fboE7IQOSVb7n0JUQRoIGm6whouo5A+OQXUb7276j59SO32+ARCgGhQ+chbPxTUPw569sZAfpEhAz5G0KG/A11h75G2ap7YKkr9WJD/6RQIPLq90SBI09QRaUg4sq3oE0a5XxzArTQJo2CNmkUzJMX4dyqe1F3+BuPt42IqKNTqHUIn7wIIQPntDpBoVmAPhGhIx9ByNB7ULX1X6jY/BxgafRyS4mIyKsUCoQOuw9h4xY6/f1DFZOGsAnPIHT4/ShfNx81e5e4dEshMMydlnqNoAlB2KX/hC7jL1AEaJy6RhkcjZDBdyJk0G2o3vUWytf/A9ZGg5dbSkTkGn8YrxO0eoRPegG6gX8BFE7ueqIQoIrtg7CJz0I/biGqtixCxebnff7dQ9D6V3+lUAUhbMLTCB0yz+nvcEDTBBHdgJuhG3AzGk7vQtmKu2AqOuR2O/zhuaKOh3seXYQUAVpEX/8FomYtdemF0ZIquhfibtsM/ej5bl2vH/Uo4u/Y3qbZa0JgOCKvfg/RN3zt9BcGTxOCohD31x8RPuVfLgWOWgrqMwMJ92RD3antq35aE5J5O7Tdx3u8Xt3AvyD+b3tdChy1pAyOQfR1nyHyqrdbnYVBRHQxCQjrgvg7dyIk8zaXvnQ0UwRooR+7ALG3roGgCfFCC4mIyBcU6mDE3PANwie/6Nb3DyEwApFXvYOIqf/Pteu0epfv5S0BEd0Rd/s2hAy+073vgYISIUPnIe72La1mSSAi8hV/Ga9TdxqEhHv2QzdorvOBoxYUSjX0Y59A/O1bIARFulWHu/wpeKSKSkHCPdkIHXafW9/hmmkSs5Bw9y8IybrL5Wv95bmijokrjy4yClUQYmZ/A23yOPmTLGY0Vp+Fpb4CgioQQnC0/BcFhYCwCU/DamlE1daXnG5H2MRnoR/1d4fnmKsLmtIpKAQIgeEOX3BBaVcg+trPUPLZLJ/unaPUxSL2L+ua0iPIsJqNTT+LoRKCJhTKkDjZZaFKXSxib16JwvfGwFR6zCttDgjvhvBJL3i83pCsuxFx2eJW00RY6soAqwVCcBSUwTGy5+oGzoHVVI9z3z/g8bYSEXU0Sl0sYudsREB4kvQJVivMtUUwV54BYIVS3xnK4FjJd7K222jE3LQSRUsmwWo2erXdRETkWYoADWJu/Aba5LHSJ1jMaKwugLnyNKAQEBDeFUpdnOSpIUPnwVxThMoti5y6tzeyFrgjICIZ8XduhxAYIXuOueoMzNUFsFoaoQxJQIA+UbJPVMf3R+xf1qPwvdGwNFR5s9lERA75XTQoMQAAIABJREFUy3idpstQxNy8yuE739JQDUtNESymegiB4QgITZANMqk7DULM7OVN3z18tO2EvwSPVFE9ETtng3SacasVDfm/wJi/G41VZ2BtqIZCHQRlcDRU8f2hTRopHjsUAhBx+auAEIDqna851QZ/ea6o42Lw6CITMfVl2RdG3ZGVqPnlXRhObYfVWGt3TBXVE0Hp0xEydJ7kgH/4xGfRkLfVqaWLwX2vkw0cGc/+iqqdr8Pw+zpRblSlLg6BKZcidPgDUMWmi64N7HUZQoc/gMotL7baBo9QCIi+bpl04MhqRe2hr1Cz+z00nN5pt4ePQqmGunMmQgbfgeBLZok6WCEoClGzPkHBW4M9vymdQkDk9PehUAd7tFpt9wmIuPwVyWONFSdRvfM11OUsR2PFKbtjytAEBKVdidDhD0gOiIYM+RsMuT+i7shKj7aXiKhDUSgQdc1Hku9Jc3UBqna+jtp9S2GuLrA71pRT+y8IHToPQlCU3TFN1+EIn/QCzq1+0JstJyIiD4u4/FXJwFFjZT6qd/4bNb9+DEv9ObtjquheCBl6D0IkZpCHTXga9b+vg7Fgn8P7CpoQQBAPH5Sv/4dH9j9oPPeHU+c1rbr6SjJwZDXVoWr7YtRkLxXVF6BPRPCAm6Af+Yjou5AqNh2R099HybJZ7v8ARERt5A/jdUpdHGJu/EYycGRpqEbNnvdRu28pjEWH7d79glYPbfJYhA6/H5ouw0TXahKzED7x/3Bu9UOttsETpAIfhj82Ne3Z4wHmynwnGhGAqGs/lQwc1R3+FuXr/+Gw7xMCwxE67F7oRz0q6n8jJr+IhpPbYTz7a6vN8Ifnijo2RW5urodHp4E1j6QAAC5LY1Y8f6LtPh6xt64RlVvqy1H6xWynXqLK4GhEXbdMMi2Z8cxeFLw9tJXrY5Bw3wHxP/atVpSv/weqti9u/cuHEICIyS8iZOg80SGrsQZnFveGuaaw1Z+lrUKH3YfwKeIou7mmEKWf3whD3tZW69B2n4Do65ZJdmylX/8Ftfs+8Uhbm8m1+XzGwgMoeMP51HmCJhQJ9+6HMrST6FjN3iU49/0Drc4uUaiDEXX1ewjqM1N0zFR6DGdf68/9OfzM90eaPqdTXvq9nVviGPsjuhDoMm5B5NXvicoNJ35C6RezYa4pcnh9QFgXRN/wNdTx/ewPWK0oeGc4jGf2eLK5RD7F/oguJkFpVyD6hq9F5fW/r0Ppl7eIgkYtBaZORfT1X0ChVNuVG078hKIPJzq8NkDfGZ0ezrUrszYacOpp365GCp/8IkKH3y8qN5UeQ/FHl6Gx4qTD6wPCuyHmphVQRfcSHStZNgt1Ocs91la6uLA/orbwh/E6AIi58RsE9rpcVN5wehdKv7hRNCFYSuiIhxA+6XlRudVsxNl/90XjuVyJqzwr8up3ocu41a6sfP3jPl0pIzf+VrnlRVRsWOB0PYGpUxFzw1eiAFJD/m4UvjPc4bX+8lyRb3m6P2JvcRHRj35UVGZtbEDRR1Odjr6ba0tQsnS6ZEo1daeB4oGpFnSDb5ecJXbu+wdQte1l52atWRpxbvWDqD3wueiQQq1DcF/vzxhTBGgQKrF6ytJQhaIlk5wKHAGA4Y+NKPnseskVRiGZt7W5nedTRfVE2IRnWtx/U5vr1Q2aIxM4+hBly+9walmy1ViLki9vhuHET6Jjqqie0HYb3eZ2EhF1RAqlCmHjnxaVm4qPoPi/01oNHAFAY8UpFP1nivhchQLhk57zVFOJiMiLFAFahEvsUWQ4sRnFS69qNXAEAPVHV6N8zSOicm230ZKZHezuL5ECyGKoaPWenqQMjkbI4NtF5ebqAhS9P67VwBEANJafQNGSSWisPC06Fjbxn27v7UFE1Bb+MF6nju8vGTgyFuxD8UdTnQocAUDVtpdR+ZM4eKRQqqHLuMWpOtpKKm2d1cd9lm7QXFGZsWAfKjY+4VI99UdXo3rXW6JyTedMyYkQ5/OH54o6Pv7L6CLRNAA/RlReuWURjGf2ulSXpaEK5esekzwWmCruaGwUQlOqhBYMJzajetebLrUBAMrXPAKrqV6iDZe5XJergtKnS26sWrF+AUzFR1yqy/DHRskZbprOWZ7L0yooETnjQyhUgbYii6ESlZvFHbqrQjLFX+AaK07i3PcupkKyNKJ89YOSgbTAlEvdbR4RUYcWdMksKEMT7AstjSj9crZkHyjHUleKshXizVW13cZAnTCgrc0kIiIv02XcgoCwrnZl5uoClH4+G7CYna6n+pd37AaArKY6GM/+ClVkisPrpL6XWAy+3SNIN/hOKFRBovKyFXfBXFvsdD3m6gKcW3G3qFwVlYKgtCva1EYiIlf5xXgdgJCsOyUqNKP06zmwNFS71I7Kzc/DXHVW3IaUSS7V4y6p7D4WQ6VP7g00/U2lAjvVO19za3uKKpn9jQJ7yfdZ/vJcUcfH4NFFQtt9gqjMajZKRq+dUX/0e1jqykTl6ri+steoYtIkV6hUbX/VrTaYawpR//t6l9rgKYE9p4jKLHVlqNn7oVv11e5fKi4UlFAnZLhVX0v6EQ9D03mwXVnlT8/DXC/+G7oiILIHAiJ7iMqrf37TrY0QjYUHYSw8ICpv2XYioouFbsBNorLaQ1/BWHjQ5brqf/tOMi+2bsDNbrWNiIh8J3TYfaKyys3PuxQ0AQBYLShbfidKPp2BM4t74dT/RaDgrSGtpmsTAqUG4nw7izuwp3jQ0ViwH/VHV7tcV/3v61B/bK2oXDfgVneaRkTkNn8YrwOkx7nqf18LU9Ehl9tgbTSg9tBX4jbED4BCqXK5PldJT3jwXfAoQGZChiF3s1v1NZbnoVFinyVVRLLsNf7yXFHHx+DRRULTWbyHTcPpnyU/+E6xWtFwepeoWKkTb6Jma0MncRusZhMMbdiwruH0TlGZEBjh9c5I0zlTVFZ/bA2sZqNb9TWcEv8uAUCpE69ucpUqNh36cfbLYk3FOU0zHtpI6vcAAHU537pdp9Rme4LE5nxERBc6ISgK2iRx2s6avf9xu86aXz8SlQX1mQEoFG7XSURE3qXpMkw0YctcU4iaX//jVn0NJ7eh7siqpn0nnEkbjvYfiFOoddBITKyryf7Y7Tpr9n4gKtOmTIRCHex2nURErvKH8TplSDyUIfGi8rbsAyc1tgOFAkJQlNt1OksIbN8+S6mLlSxvrC5wu05ztXgllzIkTvZ8f3iu6MIQ0PopdCGo3PIiag9+ASEoEsqgSAhBkTAVHW5TnVL7LEgtDW1W//t6FP1niu3+QlAUYGl0O+ACAObqQnGhQgGFOgRWJ/J+u6vs29v/7FzjIATHQBkSh/ojK92uz1xX2vTFrUWO7bZ2qgqlClEzlthvimtpROk3c2E1m9pUN9C0uW7x0quh1MVCGRIHpS4GgkaPxvI8t+u0SMyeVAZHtqGVREQdkzZ5NCAo7cosDVUw5G1xu876374DLrdf8avUxUEd28et1UxEROR9QenTRWW1+z6FtdHgszZI7x/hu4E4dVxf0WbhANBwaofbddYfXQ1rowGKAK2tTKFUQ9tttFurmYiI3OEP43WWhmoUf3QZhOaxnT/HuQwnt7vdBkttiWS5EBQJcxuCKM6QTlvnu9WykuOcVovTEzYkSYzhWc2Nsqf7w3NFFwYGjy4SppLfYCr5zaN12gUk/mSuL5c931xd4PEOQqoNsFphafDuFxlD3lYv1Cox67sNgTUA0I9+DOr4/nZl7uQ3lWOuOot6iTy2bSKxSW1bAoxERB2VtusIUVnDye2ARf5LQmsaK0+jsTwPAeFJduWapFEMHhER+Smp/T/rf1/n0za098ojuclkpuIct+u0mk0wFh4QpcjWJA5h8IiIfMYfxuusxhrUtyErkHQjZJJd+WB8R9C0755HkmOfCgHKoEiYZYJqrRGCxP2guUZ+jNUfniu6MDBtHbktILyrqMxccard29BYdcalTWP9QUBoJ8mUQY3lJ92uU50wAPrR8+3KjAX7Ubn5Obfr9AVlaGdRWVt+D0REHVXL4D8AGM9mt7leqTqk7kVERO1PCIoSbbptNdY2TSbwZTvaeRa3ECgeNLM2GmA11bepXqlZ2OqEAW2qk4iovfnDeJ3UnuewWtBYedqr9xU0IaLsDYBvg0fG/N2Sq4zUie7t561QB0Mlsd+4VBo5b/KH54p8j8EjcosQGAFN4hBRuXdW5MgLTL1MVNbg4zZ4gqbrMHGhxYyGM7vdqk8RoEHUjCV2qR2sZiPKvpnjkXR13qTpMlRUJpkrl4joAqeKTReVmUqPtrleU6l4Bpo6tk+b6yUiIs+T2ufHVHrU5yvzpfePqPLZ/c9PLdfM2tjQ5notEjOmVVGpba6XiKi9+Mt4nVZinMtYeKDNQf/WSE12sJpNsJrqvHrf81kaqiRXcun63+xWfUGpU0WpW62metQfW+tWfe7wl+eKfI9p68gt+jHzxS8uY22bNtNzVWCvyyVnStfuW+qzNnhKcP/ZojLDic2SX2acETZuIVQxve3KKn981u9TEmk6D4YqqqeovO7wt+3QGiKi9iNo9ZIpghrPnWhz3VJ1tExjR0RE/kEVJw7um0p/F5UFhHdDUJ8Z0CaNgiomDcqgKECphqWuFObaEpiKDqH+9/Wo/32dW5tlS6etk155pAyJb9pjITAcFlP9n20ohdVY4/J9Hd1L0IQ2pUVqwx4SlgZxACxA37lp1noHy2ZBRAT4x3idQhWEoN5Xi8p9MbajkNqjT2ZrC4UqCMrQBCgDwwGlBpb6c7DUlTWllmvL/kQAqrb9PwSmTLIrC+p9FQJ7TnYp6KNQ66Afu1BUXvPrf9zqz93lD88VtQ8Gj8hlwX2vReiQeaLyqp2vwVJ/zidtUMWmI/Kqt0XlDad2ej5Pq5dpk0aJOhQAqN71llv1aRKzEDr8QbuyhvzdqNz6klv1+YxCgbCJ/ycqNhYeaNNGuEREHZFSnyhZ7om9AyU3Og2KhEIdDKuxts31ExGR5wREJIvKGsuO/e94WFeET3kJQWnTJPeXUIbEQxkSD3VcXwT3uwFWUz2qdr6Gqq3/cintnHTauqbBOIUqEMF9ZiIofTo0iVkQgqLEFVitMBXnwJD7A2oPf4uGk9ucvjcgvUIICgWUutg29Y1SK5ogBEAZFA1zTaHb9RIRtQd/GK8DgNARD4n26LE2GlDz63+8fm/pyQ7/myigik2HLuMv0HYb3ZR9QSbFXUPeVtT/sQm1+5a6lfLOkPsjavd9guD+N/6vUKFA9LWfovSbuU4F0pS6OETN+hiqaPsVseaqs6jYKA4oeYu/PFfUPhg8Iqcp1MEIG/sEQofdJ3q5NuTvRuWP4oF/zzdCAV3GrQif9AKEwHC7Q5b6cpR+dYv32+BBgiYEkTM+EJU35O9G3W+rXK5PoQpE5PQP7f4+1kYDyr6Z4/cz50Ky7oY2eayo3JcdIhGRv1AGR0uWmz0wu0xuk1ZlUCQaGTwiIvIrAfouojJzbSmAphnMUTOWQKEOdro+hSoQ+lF/h27ATSheepXTe+lJDcZZjdUIHXYv9GMXSB63v7ECqth0qGLTETL0HhjytqJi45NOB5EaK/IkyzWdB6HuiOvfm5pJZT0AACEogsEjIuow/GK87k9N+28/Jiqv/vkNj0yEa40QKL1HnyqqJyKu+De0yeNar0OrR2CvyxHY63KEjX8K1T+/jsqt/3J5ol3ZyrsREJ4ETdfhtjKFWofo6z6H4cRm1OxdgoaT25v2gbJam+6tCYU6vj8C06ZBl3GzqH+1GCpQ9PHlPtnDyZ+eK2o/DB6RNEEJQRMKZXA01PH9oE0ei6A+10jOOGs4uQ3FS6/2/F46CgUEtQ5CYDhUMenQdBmC4H43ICBMYoO26gIUfXQZGsvzPNsGb1IIiLz6PfHPY2nEuZV/s3Ucrgif+CxUUSl2ZRUbF8JU0vY9MrxJ03kwwi99TlRed/hb1B9d3Q4tIiJqX1J7S8BqgdXU9uCO1Vgtc88IgBueEhH5FanJBFZjLYLSpyP62k8lVxs5VW9IPOLm/oDiT2bAkPtDq+dL9UsR096EUhfr1v21SSMRN3cjKjYuROWWF1s931RyFJa6UtGqJm2PS90PHgkB0CaPkT6kCXWvTiIib/OH8Tq5pgVFIuqapVAoVXbljRWnUPHjs75pg8RkhoCIZMT/bS8UARo36tNDP+ZxBKVdheJPZ6DxXK7T11pN9Sj6aCoipv4/6AbNtTum7TYG2m5j/jzRAktDNRQBWodtNJ79FSVfzEZj2XGXf45W+fFzRe2LwSOyiZj6MkKG3uP0+ZaGalRufg5VO14FLI0eaUNQ2jRE3/CV8xdYzKjJ/hjl6+Z3uKWSEZe/gqD06aLy8g1PwFiwz+X6tEmjENJiGWnDyW2o2vFvt9voC6roVMTctAIKVaBdeWNlPspW3NVOrSIial8KlXgWudVU59bEAlE9MjPmXJm5TkREviEERYjKlKEJiBg9/3+BI6sVdb99h/ojK9CQv6tpZZLVCmVwFNSdBiKo1zQEpV8tCjQp1MGIvu5TFLwxCI2V+Y7bITF45G7g6H8NEBA28VkERPZA2be3t3q6IW87gnpfaVcW3O8GVKz/BywN0hMjHNH1u6Fp4oRU09wYYCQi8hZ/GK9rjUIdjJibVoomNMPSiNIvb/JZemyp4FGrq2OdoIpNR/xdP6Pog/Eu7SduNdWjbMVdqN79LkKH3Y/A1KniPlUhSPazAGA11sBw4ifU/PoR6o6s8Mj3wWYd4bmi9sfgEbnE2tiAhtM7UXd4OWr3/detf6S3vRFWGIsOov7o96jZ/X7T8s6ORKFAxJR/IWTwnaJDtfuXoWrby65XqdYhcvr7gEJhK7Maa1H6zV/bvMmfN6li+yD2lu/FuXCNtSj5ZHqHCwgSEXlKy9l6AGD10D/QrTJpTBVKtUfqJyIiz5EK7IeOfNg28cpU8htKv5gNY+EB0XmW+nMwlR5D7f5lUMddgqhZn0AV3cvuHCEwAlGzlqLwvTEO2yFopAe1mjXk/4K6nBVoOLEZjZX5sNSVQaEOhjI4GpouQxGYevmf+zIpRNfqMm6FqfR3VLWyR2vt/qWi4JGgCUHYxGdx7rv7HF7bUkBYF4RPfkH+BEHcDxMR+bP2HK8TtGGImf0NNJ0zRcfKVt2DhlM7fdoWRywN1ag7+Dnq/9gE49lsWGpLYTU3QAiKhCoyBdrkMdBl3AplaCfJuqNnL0fhW0Nhri12qV2WunMwlR5tSmPXZajz1xmqmiaFKBRNk0Csvt2Swi/GgaldMXhELjEWHoCxYD8shnJAId5UzhcaK07CmP8LzFUFbqdpaC8KpRqRMz5E8CWzRMfqj65G2be3uVVv+ORFCAhPsisrXzffpeW0vqbpOgIxs78RdexWUz3+P3v3HSZVdfcB/Hvv9LazvbF0kN6boCKdCAqoKGJDsWKiiYnGRGOMJTHG5FUTsSv2jhWwgIAgggoiTaT37W12p5d73z+GHXa4M7uzM7MF9vt5Hp5n9tx7zzmz7DNnTvud0jdnx7X7iojodCGIEb6iJevsuiiTUBHLJCKiVhVpYr8upJq36CeUvDgxpoEcb/E2FD8/DrnXrYAmp3/YNV2nMTD0mAzX3uURnxV1logHitflW/X5H+He95XimuzyQnJVwVe+G/YfX4Emuw8yL34Z2vwhinvTJj8I9/5V8B7bGPU9OHd+Cn/lfqjTu4WlW0beDM+RDXBseSvqs/WpTNnIunyxIgReeOXb9nmxREQna63xOpUlDznzliraFgCo/upvsG9UnvPdnKLt4IHkh+2b/6Dmm8ciLlQO1BQiUFMI94GvYVv9MCxjbkPapAeAk/pIamtHZMx6FqVvXBhjfVKRNu3fMA+6Impb2hBVSj7MQ+fBPHQe/LajqFr2ezh//qjJ+cSrLYwDU+viKAE1ia5gRGglgRzwwbXzE1Sv/FuLnqmjTusC8/DrQz97jnwH28oHonZ22gqVOQdZc9+BrtMYxTXXL0tQ9s5cyAFvk/PVd58Ey4jwSSf3/pWo/eHZuOva3MxDr0H6jCcVnWHZ60Dpm7Mjdj6JiNqTiLuM4uhsRBRlkogxq4mI2qAoAzWhnfpNWAEsuSpR9u6VyFvwnSIsW8o5f4janxJ0lojhhuxb3kDVsjsg+90xle8r3Yni589F1tx3YDjjvJMKEZE66X6UvjI9egayhKrlfwme9RT2rIDMixdBndYVNWv/3WCfytBrOjJmPRMKueevPgSVJU/ZL4mjX0ZE1JpaY7xOVzACWZe/D5UlT3GtevlfYjrTLtkEjV7RZgUcpShfPB+eQ+tiykMOeFGz9t/wFm4OHrNwUhth6D0duk6jG91RpcnsiexrPofa2lFxzXNoHRxb34Hn8Lfw1xRCcldD1JogGjOgzR8CQ/dJMA28LGwHstpagKy576J2/f9QuewPMb2XRLWFcWBqXZw8ohDXvpUnvvgLIgStGaIuBeqMHtBm94GgNYfdL6g0MPa/GMa+s1C14q+NhhmIha8iPFyBoDVB0FqgTu0ITXZfqEzZimd0HUche95SOLe/j/IPb2ixOKpNoc0fiuwrFkfc9mrftAgVn9wS14pyUW9FxoXPhaVJnhpUfHBDUuOgJo2oRvp5j8Jy5q8VlyRnOUpendHgakMiovZC9nsUaUKSQugIUSahOFBGRNQGRdktWvv9M42eUxSJr/RnOLa8AfOw+WHp+q7jIOpTIbmrFc8Eagpx+MG0JpcViex3o/zdK5F78wbFuRiGHpOhzR8Kb+GPUZ93bn8f9jPOg3nIVeEXBBGpE/8G87Br4dj6Ntz7v0bAXgQEvFCZc6EtGAFT/0ug7TAs7LGqz+9C1mVvK+vpc8b/JomIkqwtjNedzDT4SmTMfFp5RpwUQMUnv4Z900tJLzMWlZ/ehspPb0tKXu59X6Fyye+QMfMpxTXr2D+i9PXou49UKR2Qc+1yqFLyw9IDtUUof/8auPevUjwjuW2Q3Db4K/fDuX0xqr74M9Kn/x9Mg68Mu88y+lZIXgeqV/w1zncW1Bb/rqjt4eQRhbh2LYVr19LIFwUR+i5jYRpypXKrpahC2pS/Q53aMeEPaF/pTlR9eU/U65qcfjANuBSWUbcotqIa+89GblpXFL84sU192Q82qE9BUOsV16pXPgjbqgfjzjtt2n+gthaEpVUtu6NNngOlMmUh87K3oO8yVnHNX7EXJa/NgL9ibyvUjIio7ZF9yoUQgsYYjHWd4OIAQWeJXKaX8auJiNoaOaBcTAAAjm3vxp1n7Q/PKyaPIIjQdTkLrl+i9AeTSPLUonr53cia+57imqHXtAYnjwCgcsltUKd2gr7ruYpr6tTOsI69C9axdzVaD9uqByMO3gGA5Kxo9HkiopbSFsbrTuSpRvqvHoFl9K2KS7LXjrJ3r4pe11OQfdOLsIy6GdrcgWHp+m4TIKj1kXffCgIyL3pBOXFUU4iiZ8cgUFMYU9mSuxrli+fDX3NM0a5Zx/4Rrt2fw3P426a9oXra1N8VtVmn1oEx1HpkCe4Dq1HxwfUofGoEfOV7FLdYRt4cFk6uOfhKdqB6xX0ofLwvXL8sUVzXdhiGjFltJFybqELaef9G5sUvKSaOZL8H5e9dndDEkaH3dJiHXB2W5tr9Gew/vhx3ns1FmzcYuQs2RJw4ch9cg6Jnz+bEERFRPZKzSpkoCBC1kSd+mqLurIyTBThQRkTU5khu5cS+7HXAW7Ql7jy9hZshe+2KdF0H5UHnzcX588cRd04Zekxu9FnZ60Dpq+fDuePDuMqW/R5ULvkdqlc+GL1NdJTHlTcRUYtrwfE60ZiBnGs+izhxFKg5huLnx51WE0cAAFlG7YaFimRBY4Cu89kRHzH0mg5994mK9LJ3Lo954qi+6uX3wnNkw0kVEJE25aEm5xWzNjIOTK2Pk0fUZL6S7Sh+/lz4K/cprqVNeSj64XRJFHCUofStS+Dc8YHimmngnKgf4C1F0JqRfflipIxRzsAH7MUoeWkyHFuV4RFiJRrSkTHz6fB8HWWo+PCmuPNsLoZe05F7/aqIMV7tm15C6cvTIh5WSETUngUcpRHTRVNWwnnXnfMQRpa5ypqIqA2SnMpJjICjDJCl+DOVJXiLtymSI7YPzci9b4Ui7eRQdtHIfg/K3p6Dsrcvg7/qQGwFyjKcOz9B0VPDUftdMASROrWz4jbJWd6mIlkQEcWqOcfr1Bk9kHfTNxF3fXqOfo+iZ8bAW7w17vzbMneUMwGjtVkpESbXEt0lZFv9sCJN1/lsaLL7xp1nrNrCODC1Hk4eUVwkZzkqPrxRkS4a0mE6Of50s1UigIqPF0Qc7EoZ89uWqUMEKksecq9fBUOvaYpr3sIfUfT0aOWKgSZKv+C/UJlzTyTIMio+uA4Be3FC+SabZdQCZF/+ftgBfwAAyY/Kpbej4qObecYGEVEE/urDEdPVJ4U+iIcqpUCRFrAXRzxniYiIWlekFcrJmNiI1IcSDekJ59sU/grlIJRoSA8PjdMI544PUPhEf5S8fB5q1z8J77GN8NuOQvZ7IPtc8NuOwrX7c1R9eQ+OPd4HZW/ODjvkW5PVS5Gnr3J/fG+IiKgNaI7xOl2nMci7cS3U6d0V1+ybX0PJixMRqC2KK+9TQV27cjJVhIV9gsYYcUG78+ePEqqDe/+qiCHy9N3GJ5RvrNrEODC1Cp55RHFzH1wLX+lOaLL7hKUbek5F7fonW6QOkqsKju3vwTLy5rB0ffcJgKiOesBsc1FbOyJn/pcRG1TH1ndQ8dGNkH2uhMow9rsQpgGXhue95U34SndGXDnXYH0tykFIQaWNvALPa2/SqnTr2LuQOlkZlk9yVaLs7blR44sTEVFwYDBQWwSVJS8sXZ3eHTi4NqG8NRnKNsrH0KFERG2SL8Iq32Ss8JU8ynB4gsaQcL5NEYiwqwqCCFFnbVJkAjngg3vfV3DvitE3AAAgAElEQVTv+6rJdVBnRpg8Ktne5HyIiNqSZI7X6btNQPaVHwTPX61PllD1xZ9Qs+7xRKt7SpBclYq+mWhIU9ynzR8CQaVRpHuP/ZBQ+bLfDX/FPmhy+inKayltYRyYWh4njyghniMbFB8amqw+Ue5upjoc3qCYPBJ1FqhTOsBffajF6qFO64qc+cuhTu2kuFa98gHYViUnFqmh1/mKNNPgK2AafEVS8tdk9UaHPyhjmdo3LULFR7GFxUudeB+s4+5RpPvKd6P0tZkRt7oSEVE4b8k2GE7qoCQjLIEmd4AizZfA2RlERNR8fGU7FWmiIQ0QBECW485X0JoVaZK7Ou784iGeHJ3gONmrnNhqLrqOIxVp3mM/tlj5RETNJRnjdYYzzkPW3HcU53hLnlqUv3cVXLuWJVzPU4Vi8gyA5KlRpKnM2RGfT8ZZegFnOU6ellIZMxPOtynawjgwtSyGraOERDqTQWXMaNE6SI6yiOmiqeU+QFXmHORc+4Vi4kgO+FC+eH7SJo5OBSnn3BFx4shzZEPUGKlERKTkPbpRkaYrGJ5YpqIK2vyhimTPMWVZRETU+rwRPp8FjRGajNjOBopGZVSulm7pc0gjhcmT3DbIAV/LlG/MgK5AOXnkPrimRconImpOiY7X6TqfHXHiKGAvRsmLE9vVxBFENURdiiI5UnQeQRN5YUQiCz5CeYvKPSAtvmu4DYwDU8vizqN2QNfxTJiHXg3RlAOVOTv4z5SNY4/1SfiMnIgfnhFicKtM2bCOvxsqUw5EczZU5hyoTFmo+OTXcG5/P6E6CDpLxPSWOuRU0JqRfdUnUKd1CS/f70bZ25e1qwbVNGgu0ib/XZHu2rscZW/OTjhkHxFRe+I+sAbWcXeHpWkLRkLQmiB7HXHlqeswImLbzVCiRERtk698NwL2EqjMOWHpuo5nwle+O75MBQGa7H6K5EBty56fqs0bpKyDvaTFyjf0nAoI4etp/bYj8JX90mJ1IKL2rS2M10Wiye6L7CsWKyaO/NWHUbJoCvzt7Gw4be7A4I7fk0RqNyVXVcQ8RENq4v+nEcLWSk7lwo+2+ndFpyZOHrUDgsYA8/DrFem6TmcmfGBbxLNxIuwEkjw2mIffoIj7qe98VsKTRydP2tQJ2CPvSEq2rEtfU8QYlf0elL1xMVx7l7dIHdoCXafRyLjwBUWD6tr7JcreuJgHsRMRNZHn8DpInlqI9RZJCCotjL2mwbHtvbjyNPa/WJHmLfrptD7glojolCbLcO35AuYhV4clmwZdBvvmV+PKUpPVO+I5DZ7D6xVpKlMW9N3GQ2XtCLW1ACprJ6itBSh782L4bUfjKh8ABJUGuk5jYqpDc7GMulmRlmjflIioKdrCeN3JREM6sq9eomgn/NWHUfLCePhtRxKqV3PSdT4bmqzeUKd2hNraESprATxHvkf18r8klK++67kR0yO1WdF+x5qsXoktThBVUKd1VSRH2gnUFv+u6NTFyaN2wHtsIyBLilVVpsFXJvShIag00HU5R5HurzqgSJP9HvhKtilC5RgHXIKqz/+YUGgCffcJijTJUwPJpdw+mmyW0b+Bodf08ERZQvl7VzbbxFHFB9eh4oPrkpKXJqcf8n+zOSzNW7wVRQubFhZJ1KUg85JXFZODnsPrUfbmJZw4IiKKg+z3wLXzY5gGXxmWbh5+fVyTR4LGCHOE8/EcW96Ku45ERNT8nFvfUUwe6btNhCazJ3zlyrNKG3NyXgAgB7zwHP1ekS5ozci89HVFumnQ5bCt+VeTy65jHDAn4gSWe99XUZ8RNAZoMnpCnXkGNFm9ocnsBW/xVtSsfbTJ5eu7ngtdxzMV6fFOyBERxaMtjNedLGPWM1BbC8LSJGc5ShZNbdMTRwBgGX6d4jxwbe4g2Fb/I/7oRIIIy8gbFcn+ir0Rfx++8t2A5AdOCjGn63wOnD9/HF8dAGhzBkCIcFagr2S7Iq0t/l3RqYtnHrUDkqcW7gNfK9KNvaZDmzc47nzNw+aHrYau49oTedLEufNTRZrKlA3zyJviroMmpx8M3Scp0t17v0pKPNEGy87ui7Qp/1CkV6/4a0INwqko/YL/KVYfBGqOMVQdEVGCaje+qEjTdxsPQ48pTc4rZcxtEE86UFX2ueD4STkoSEREbYdr31fwVx0MTxQEpJ//RJPzUpmyYR52rSLdvXd5xO/t/qoDESeoUs76XcTwObEQtCaknhSWFQiGHW9oAZ55yDzk/Xojsua8idQJf4Vp4BxYz/59xD5pg0QVUiP041x7voCvZEfT8iIiSkBbGa+r/5yx76yTKulH6ZuXnBLnV7v2fK5IEw1pSBnz27jzNA+bD3V6d0V6tEkYyV0Nz5ENynwGX57Q+USRFn4AwbZLUYc29ndFpzZOHrUTtd8/q0wUVcic/XLEg0obo8nqhdSJf1NekCW4di2N+Ix900sRdxilTXpQEfYtFoLWhIxZzylm0gHA+YtyoupkmqxeMA26XPFPZcmLqfyMmU8r4r+6962ALY6Vb6cyQ4/JMA2aG54oyyh/72oEuHWViCghnkPr4Dn8rSI946LnITbhYFJt3mBYz/2zIt2+8UV+VhMRtXWyBNuaRxTJ+u6TkHLW7bHnIwhIn7EwYv+vZt3jUR+z/7hIkSYaM5Fx0YsR+2IN10FExsxnoM7oobhU+90zEQ8fr+PY/n5wNXdYPTJgHX9vk6qQNulB6ApGhCfKMmwrH2xSPkREydAWxuuA4Odp2nnK8azqVQ/Bc2hdk+uRiHjH65y/LInYt7GOvwe6jqOaXA9t/hCkT/uPIl32OhpsNx07PlSkicZMWM/9U5PrAADqtK4wD7tGke4t/BH+6sMRn2krf1d06uPkUTvh3PlJxK2Mmuy+yJm/HJoc5YGp0ei7jkPONV9EHLSyb34N/upDEZ8L1BZF7HgIWhNyrvkcxj4XxFwHdVoX5MxbpvzSD8BXvgfObe80moeh51Rkzn5Z8U+bO7DxZ3tNg67T6LA0OeBFxce/bvYdT21N6qT7FWn2H1+G++DaVqgNEdHpp+qzPyraFpUlD7nzV0SMe30ybYdhyJ63RLHSTXJWoHr135NaVyIiah72H1+Bt2iLIj1t6j9hGX1ro88LKg0yL3oRxr4zFdc8RzZEXKFcp/a7pyE5yxXpxj4zkHXZOzHvQBL1VmRf/j5MA+corkmeGtR8oxygC7vHWQ7HVmU/L+Ws38EyQhlSSEEQkTr5QaScc4fikv3HRRHD9hERNbe2MF4HANZz7lTsKvGV7YorNGii4h2vizapI6i0yJ63VHnsREN16H0+cuaviLhbqGbDkxHPGqpj/+H5iJM61rF/irj7tyEqcy6yLn8PgtasuFa9/K9Rn2srf1d06uOZR+2F5Ef54muRe9O3inNptLkDkLfgezi3vwfHT2/Cc/R7SO7qsHtUpizoOo+Beeg1MJwxDRAEZRFuG6pXRP/gAoCqz/8EQ48pUKd1CUsXDWnIunwx3AdWw75pEdwH1iBQcyzsHkFrgi5/GEyDLoNp0OUQNMYoZdyZ0BlKjRKEiLPt/oq9TZoAi1Xtxpcge+1JzzcZjH1mQNtBeT6S5K5GypjbklqWt2RHgzHQiYhOV56j36Nm/X8V4RY0Of2Qt2ADar97GvaNLypibmsyz4B5xI2wjFqgaPsBoOLTWxtc4U1ERG2I5EfFh9cj94Y14QNZgoD0af+B4YypqPn6EbgPfRO24EDQGGHodR5SJ94PTeYZymw9NSh/v+GBLNnrQMXHtyBr7ruKa8a+M6HrPAa165+EY/t78FfsVdyjye4LY7+LkDL61ojnHAXPjI0takH1yvthHHAJBJU2LD19xpPQdxsP25pH4C36KfwhUQ1Dj8mwjv9LlMWHu1H12Z2Nlk1E1CzawHidypIHy6gFinRf+e6I6YmQXNXNer5c7bdPwNTvImg7DAtLF3UpyL7yQ7h2LUPtxufh3r8astehuEff7VxYRt0CffeJEfP3HPqm0Z2qst+Nqs/vRNZlJy14EARkzHoW+m4TYPv6YfhKf46ah6DWwTRwLlInPwCVOVdx3fXLErj2fhm9Em3g74pOD5w8ake8RVtQ8eENyLzoBcXBbYJKE9oGCllGwFkO2W0DBBGi3tpoaBzZ50Lp6xciUFvU8H1eO8renI3sa5ZBZcpWXNd3HQd913EAghMQkqsacsALUW+FypgJiKoG86/64k9w7VrW4D2J0uYPixgjVJPdF2nn/Tvp5Tm2L0agjU4emYdfFzG9SeEzYmTftIiTR0TUblV/eTe0eYNCbWQd0ZAG67i7YR13NyRXJfy2o4Dkh8paELGdrWNb8y84t7/fzLUmIqJkCvXnLnlVES7O0GMKDD2mIOAohb/qIGRPLURTFjSZZyhCbYfIEio+vDGmcyycP38E25pHYB17l+KaypSF1En3I3XS/ZDc1QjYjkHyOSDqUqAy50SeMKqn6vO7Yu7D+asOomrZHUi/4L+Ka8b+F8PY/2IE7CXwV+yB5HVA1KdCk90Hoi4lYn4BezHK3rgQkqc2pvKJiJpDa4/XBRdoK3fYGPtckPRF0v7K/c06eSQHvCh7ew5yb1wbMcydodc0GHpNA2QJ/upDkJyVgCBANGZCnZKv+P2fXPfSNy+FHPA2Wg/njg9R9fldSPuVMuysaeAcmAbOga90JzxHNiBQcxSS2waodFAZ0qDJ6Q9dp9FRd/Z6j21C2XuRz0AKu68NjAPTqY+TR+2MY8ubkDw2ZM5+JeoXaAgCVKYswJQVU54BRynK35sHz6FvYrrfW7wVxc+PQ/aVH0OT2TPqfaI+FaI+NaY85YAX1cvvRc26x2K6PxGCWtfsZZwq+LsgImoZcsCH0tcvRNbcd2HoMTniPaIhHdoY4lfb1jyC6uVNOx+CiIjaBse24O6fjIteiDgppDJlN7h4oI7sdaDsvSvh+iX2cwqql98LyVmBtKn/jHrWUVP6cJKnFhUf3Qjn9sUx1wEAar9/Bur0rlEXrKnMOVCZcxrNx1+5D6Wvz4KvfE+Tyiciag6tOV53uo3t+KsPo/jZs5B91SfQ5PSPfJMgBkOAxxAGHABcuz9D+fvXQnJVxlyPmnWPQQ54kTb14Yhttia7DzTZfWLODwietV7+3ryYIxS1hXFgOrXxzKN2yPXLUhQ+3h+OLW8ldj6PLMGx9W0U/ndQk3eE+Cv2omjhUFSvfACyzxV/HQB4jnyH4mdGJ2/iSJaSkw8REVESyV4HSl+bgeqv/hZX2xmoOYayN2dz4oiI6BTn2PYuip89G95jm+J63n1wLYqfP7dJE0d1atY9juLnzoHnyIa4ygYAyDKcOz9B8TNnNnniqE7V53eh4qObIbmq4irfvuklFD19Jnxlu+Iqn4ioObSF8bo2rQnjdX7bURQ9e9bxcUdn3EUGagpRufR2lL4+q0kTR3VqNyxE0VMj4D64Ju46AMHzaiuX3o6SV6bHFOa1Pv5dUSK486idCtiLUf7+PFR/dR9Mg6+Cqd9FwdnuKCvIQqQAfGU74dz58fHzFY7GXQfZ74Ft1UOoXf8kTAMugWnQXGg7DI8eVqEef/VhuPcuR+3GF+E9tjHuOkQitdEQcURERJACsK3+B+w/vgLLqAUwDZoLtbVj9PtlGd6izbBvehn2za8m1HEiIqK2w1u8FUXPjoGx9wUwj7gB+q7jGlw5LrltcO9fBfsPz8O1d3lCZXuO/oDi58ZC33UcTIPmwtjnAojGzIYfkmX4ynfBvX8lar97OimTNvZNL8H580ewjLwJpoFzoMnu2+D9AUcZXDs/Rs2GhfCV7Ei4fCKi5tAWxuvaqqaO18k+F2yrHoL9+2dhHHgZTAPnQJc/rNEjMSRPDTyH18O5/X04trwVU5i6hvjKdqHkxUnQ5g6AecQNwbPg07s1+pzkqYX32A9w/PQGHNveg+x3x10H/l1RvIT9+/cnMOUY2Wd3BkORTe/DjU2nEkFrgjZ3ENRpnSHqrMdja8qQ3DZI7mr4bUfhLfpJcaBcUolqaLP7QpPVC6I+FYIuBYJKC8lTEzwDyV4Gb9HmJs+yN6bgT0dD4R0KnxwKX8n2pOZPdLpZujO44ue8R9t2mA+2R9QeqDN6QJvTHyprR4haMyBLkNw2+Cv3N0ubSdSWsD0iChI0Rmjzh0CT0ROiKROCqIHkqkLAWY5A9SF4Cn8EpECzla+2FkCTOyh4xpE+BYLGGOxHuiohOcrhKdwMyVnebOUDgMqcC23uQKhSO0HUWyGodZB9TgRqCuEr2wlvyQ5GmaBmw/aImlObGK9rJckerxM0Bmhz+kOd0SMYalWXAlmWIDkrgmfIVh2Et2Rbs7aZACAaM6HLHwLRnH2iHgEPJFc1JHcVfOW74Svd2aztVnv+uzqdJbs94s4jCpG9DngOfwvP4W9brxKSH97irfAWb225MkUVVPVWykmO5u3UEBERJZO/Yi/8FXtbuxpERNSKZJ8TnkPr4Dm0rlXK99uOtvpq5IC9GK69xa1aByKi5tAmxutaQzOM18k+FzxHf4Dn6A8J55UIyVme8E7gRLXbvytqEi41oHZP12F4aJtmwFGGgJ0dDiIiIiIiIiIiotbC8Tqi1sfJI2r3DD2nhl57C39sxZoQERERERERERERx+uIWh8nj6hdE1RamIdfF/rZ+fNHrVgbIiIiIiIiIiKi9o3jdURtAyePqF0zDb4CKksegGCccOeOD1q5RkRERERERERERO0Xx+uI2gZOHlG7JRrSkTr5odDPNeufhOSqasUaERERERERERERtV8cryNqO9StXQGi1qLJ6gX798+Efq759n+tWBsiIiIiIiIiIqL2jeN1RG0HJ4+o3fIcXg/P4fWtXQ0iIiIiIiIiIiICx+uI2hKGrSMiIiIiIiIiIiIiIqIQTh4RERERERERERERERFRCCePiIiIiIiIiIiIiIiIKISTR0RERERERERERERERBTCySMiIiIiIiIiIiIiIiIK4eQRERERERERERERERERhXDyiIiIiIiIiIiIiIiIiEI4eUREREREREREREREREQhnDwiIiIiIiIiIiIiIiKiEE4eERERERERERERERERUQgnj4iIiIiIiIiIiIiIiCiEk0dEREREREREREREREQUwskjIiIiIiIiIiIiIiIiCuHkEREREREREREREREREYVw8oiIiIiIiIiIiIiIiIhCOHlEREREREREREREREREIZw8IiIiIiIiIiIiIiIiohBOHhEREREREREREREREVEIJ4/otGcddzc6P+hF5we90GT1ap4yxv6x2ctQp3VF1mVvo+DOA+h8vxMd/1wIlSWvWcoiIiJKlux5S9D5QS8K7joSlq7vem6o7TQPm99KtSMiavtSJ9wb+rxUp3dv7eo0Sc51K4JtwJ0HW7sqLa4l+ohERKe706HP0Om+WnR+0IvMS99o7aoQNZm6tStARI0TDenIu3kdRGPmiTRjJgSVthVrRURERERERERERESnI04etWPp5z8By6gFCeVR8dHNsG96KaE8tHmDYexzAVy7P4fn6A8J5XW6Mva7MDRx5Nz+Pqo+vwuyHIDkKGvlmp2QMua3gEqDmrX/bu2qENFpSFDrYOx3EfTdJkBXMAKiKQuiPhWQfAg4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" width="675"/></p></div>
    </content>
    <updated>2024-02-11T18:02:50Z</updated>
    <published>2024-02-11T18:02:00Z</published>
    <author>
      <name>caolan</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/01095733023264403205</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-1948642343859505027</id>
      <author>
        <name>caolan</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/01095733023264403205</uri>
      </author>
      <link href="http://caolanm.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://caolanm.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Caolán McNamara</title>
      <updated>2024-02-11T18:03:33Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:vmiklos.hu,2024-02-06:/blog/multi-view-programming-challenges.html</id>
    <link href="https://vmiklos.hu/blog/multi-view-programming-challenges.html" rel="alternate" type="text/html"/>
    <title>Fixing multi-view programming challenges in Calc and elsewhere</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This post describes some challenges around having multiple views of one opened document in
LibreOffice core, when those views belong to LOK views, representing different users, with their
own language, locale and other view settings.</p>
<p>This work is primarily for <a href="https://www.collaboraoffice.com/">Collabora Online</a>, but is useful for
all clients of the LOK API.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#motivation" title="Permanent link">¶</a></h2>
<p>LOK views are meant to represent separate users, so we need to make sure that when a user sets their
preferences and trigger an action, then the response to that action goes to the correct view, with
the correct view settings.</p>
<p>This is different from the desktop LibreOffice use-case, where multiple windows are still meant to
share the same user name, language, undo stack and so on.</p>
<h2 id="results-so-far">Results so far<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#results-so-far" title="Permanent link">¶</a></h2>
<p>In this post, I would like to present 4 small improvements that recently happened to the LOK API to
provide this wanted separation of views.</p>
<p>The first was an <a href="https://github.com/CollaboraOnline/online/issues/7853">issue</a> where two users were
editing the same document, one busily typing and the other clicked on a link in Calc. What could
happen sometimes is the link popup appeared for the user who typed, not for the user who clicked on
the link:</p>
<p><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2023-12-18-cool-calc-hyprelink-bad-view.png"/></p><figure><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2023-12-18-cool-calc-hyprelink-bad-view.png"><img src="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2023-12-18-cool-calc-hyprelink-bad-view.png"/><figcaption>Link popup is actually on the left, should be on the right, now fixed</figcaption></a></figure><p/>
<p>This specific problem can be fixed by making sure that link click callbacks are invoked
synchronously (while the clicking view is still active) and not later, when the current view may or
may not be the correct one.</p>
<p>It turns out the same problem (async command dispatch) affects not only hyperlinks, but many other
cases as well, where we want to stay async, for example, when one dialog would invoke another
dialog, like the Calc conditional format -&gt; add dialog:</p>
<p><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-02-cool-calc-condformat-wrong-view.png"/></p><figure><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-02-cool-calc-condformat-wrong-view.png"><img src="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-02-cool-calc-condformat-wrong-view.png"/><figcaption>Calc conditional format add dialog appearing on the left, should be on the right, now fixed</figcaption></a></figure><p/>
<p>There you don't want to change async commands into sync commands, because that may mean spinning the
main loop inside a dialog, resulting in nested main loops. This can be fixed by making sure that
async commands to be dispatched (sfx2 hints in general) are processed in a way that the current view
at dispatch &amp; processing is the same, which is now the case.</p>
<p>The third problem was around wrong language &amp; locale in the status bar:</p>
<p><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-04-cool-calc-statusbar-wrong-lang.png"/></p><figure><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-04-cool-calc-statusbar-wrong-lang.png"><img src="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-04-cool-calc-statusbar-wrong-lang.png"/><figcaption>Unexpected English strings in localized statubar UI, now fixed</figcaption></a></figure><p/>
<p>This is not simply a problem of missing translation, the trouble was that the status bar update is
also async and by the time the update happened, the locale of the view on the left was used, for a
string that appears on the right.</p>
<p>The way to fix this is to perform the update of toolbars/statusbar/etc (in general: SfxBindings) in
a way that the language at job schedule time and at UI string creation time is the same.</p>
<p>The last problem was quite similar, still about bad language on the UI, but this time on the
sidebar:</p>
<p><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-09-cool-calc-sidebar-wrong-lang.png"/></p><figure><a href="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-09-cool-calc-sidebar-wrong-lang.png"><img src="https://share.vmiklos.hu/blog/multi-view-programming-challenges/2024-01-09-cool-calc-sidebar-wrong-lang.png"/><figcaption>Unexpected English strings in localized sidebar UI, now fixed</figcaption></a></figure><p/>
<p>This is similar to the statusbar case, but the sidebar has its own executor for its async jobs, so
that needed a fix similar to what the statusbar already had, now done.</p>
<h2 id="how-is-this-implemented">How is this implemented?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#how-is-this-implemented" title="Permanent link">¶</a></h2>
<p>If you would like to know a bit more about how this works, continue reading... :-)</p>
<p>As usual, the high-level problem was addressed by a series of small changes:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/e83309d97d0bbad131a7fdfd365fb6122d6f415b">cool#7853 sc lok: fix bad view id on hyperlink click</a></li>
<li><a href="https://git.libreoffice.org/core/commit/ee7ca8e4ea8ed93655f99e77a9e77032ac830c46">cool#7865 sfx2 lok: fix bad view id on async command dispatch</a></li>
<li><a href="https://git.libreoffice.org/core/commit/51d8a2ef54751403fa707816e27ddb4e7faa8231">cool#7492 sfx2 lok: fix bad view id / statusbar string on async binding update</a></li>
<li><a href="https://git.libreoffice.org/core/commit/fb7b0b944741e4efae8d92a6e305036aff906c7a">cool#7492 sfx2 lok: just set language/locale on async binding update</a></li>
<li><a href="https://git.libreoffice.org/core/commit/aaf6ce108e91b1504befe19afcee471e3316ae7a">cool#7492 sfx2 lok: set language/locale on async sidebar update</a></li>
</ul>
<h2 id="want-to-start-using-this">Want to start using this?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#want-to-start-using-this" title="Permanent link">¶</a></h2>
<p>You can get the latest Collabora Online Development Edition 23.05 and try it out yourself right now:
<a href="https://www.collaboraoffice.com/code/quick-tryout-nextcloud-docker/">try the development edition</a>.
Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we
expect all of this work will be available in TDF's next release too (24.8).</p></div>
    </summary>
    <updated>2024-02-06T08:49:18Z</updated>
    <published>2024-02-06T08:49:18Z</published>
    <category term="libreoffice"/>
    <category term="en"/>
    <author>
      <name>Miklos Vajna</name>
    </author>
    <source>
      <id>https://vmiklos.hu/blog/</id>
      <link href="https://vmiklos.hu/blog/" rel="alternate" type="text/html"/>
      <link href="https://people.freedesktop.org/~vmiklos/index.rss" rel="self" type="application/rss+xml"/>
      <title>What is Miklos hacking - libreoffice</title>
      <updated>2024-03-01T07:46:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://dev.blog.documentfoundation.org/?p=1089</id>
    <link href="https://dev.blog.documentfoundation.org/2024/02/04/gbuild-for-java-tests-libreoffice-build-system-part-3/" rel="alternate" type="text/html"/>
    <title>gbuild for Java tests – LibreOffice build system part 3</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>In this blog post, I discuss gbuild for Java tests. The goal is to write a Makefile to compile and run a JUnit test for LibreOffice. You can also refer to <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">part 1</a> and <a href="https://dev.blog.documentfoundation.org/2024/01/25/gbuild-libreoffice-build-system-part-2/">part 2</a> for a brif overiew on gbuild, the LibreOffice build system.</p>
<h3>Macro Examples from gbuild for Java Tests</h3>
<p>In the <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first post on gbuild</a>, I have mentioned some macro examples including <code>gb_Output_announce</code> which was used to print nice messages like the ones including “[CXX]”. Now let’s explain some more macros related to Java tests.</p>
<p>Consider that you want to compile and run a JUnitTest. To do that, you need to write the test in a Java file, and create a Makefile to run that.</p>
<p>This is an example for running a test defined in Java file <a href="https://opengrok.libreoffice.org/xref/core/sw/qa/complex/indeterminateState/CheckIndeterminateState.java?r=8d8e6c84">sw/qa/complex/indeterminateState/CheckIndeterminateState.java</a>.</p>
<pre>$(eval $(call gb_JunitTest_JunitTest,sw_complex))

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))

$(eval $(call gb_JunitTest_use_unoapi_jars,sw_complex))

$(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.indeterminateState.CheckIndeterminateState \
))</pre>
<p>The make file for running this Java test consists of calling multiple macros. It starts with <code>gb_JunitTest_JunitTest</code> macro, which defines the test by its name, <code>sw_complex</code>. This macro is defined in <code>solenv/gbuild/JunitTest.mk</code>. If you <code>grep</code> for define in the same file, you will see this result:</p>
<pre>$ grep -w define solenv/gbuild/JunitTest.mk
define gb_JunitTest_JunitTest
define gb_JunitTest_set_defs
define gb_JunitTest_add_classes
define gb_JunitTest_add_class
define gb_JunitTest_add_sourcefile
define gb_JunitTest_add_sourcefiles
define gb_JunitTest_use_jar
define gb_JunitTest_use_jars
define gb_JunitTest_use_jar_classset
define gb_JunitTest_add_classpath
define gb_JunitTest_use_system_jar
define gb_JunitTest_use_system_jars
define gb_JunitTest_use_external
define gb_JunitTest_use_externals
define gb_JunitTest_use_customtarget
define gb_JunitTest_use_customtargets
define gb_JunitTest_use_unoapi_jars
define gb_JunitTest_use_unoapi_test_class
define gb_JunitTest_set_unoapi_test_defaults
define gb_JunitTest_JunitTest</pre>
<p>To stick to the macros used in the above example, I describe these macros:</p>
<p><code>gb_JunitTest_add_sourcefiles</code>: This macro adds a Java source file to the test. It defines the code that adds the <code>sw/qa/complex/indeterminateState/CheckIndeterminateState.java</code> to the test. But please note that you should drop the <code>.java</code> extension:</p>
<pre>$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))</pre>
<p>The other macro <code>gb_JunitTest_use_unoapi_jars</code>, adds the UNO API JAR files to be used with the test.</p>
<p>And in the end, you need to add the test class name using <code>gb_JunitTest_add_classes</code> macro. The class name is visible in the end.</p>
<p>The result can be quite complex, but it works. ðŸ™‚</p>
<pre>java.exe -Xmx64M -classpath "$W/JavaClassSet/JunitTest/sw_complex;C:/cygwin64/home/user/lode/opt/share/java/junit.jar;$I/program;$W/Jar/OOoRunner.jar;$I/program/classes/libreoffice.jar;$W/Jar/test.jar" -Dorg.openoffice.test.arg.soffice="path:$I/program/soffice" -Dorg.openoffice.test.arg.env=PATH="$PATH" -Dorg.openoffice.test.arg.user=file:///$W/JunitTest/sw_complex/user org.junit.runner.JUnitCore complex.indeterminateState.CheckIndeterminateState</pre>
<p>The above is the actual command that runs the test. Please note that if you forget the <code>gb_JunitTest_add_classes</code> macro to define the class name, the test may compile, but it will not run.</p>
<p>As an example, you can see the below patch. This patch fixes the problem of the JUnit test not running:</p>
<ul>
<li><a href="https://gerrit.libreoffice.org/c/core/+/162263">Fix sw_complex JUnitTest not running</a></li>
</ul>
<h3>Final Words</h3>
<p>Many macros are available in gbuild, making easier to create Makefiles to compile and run tests, build libraries and executable applications and many other relevant tasks. The best way to find and understand these macros is to look at the Makefiles written by others to the same task. Look for <code>.mk</code> files, and if you want to see the implementation of the macros, look into <code>solenv/gbuild/</code>.</p>
<p>I will write more about gbuild macros in the next series of blog posts on gbuild. <a class="read-more" href="https://dev.blog.documentfoundation.org/2024/02/04/gbuild-for-java-tests-libreoffice-build-system-part-3/">Read the rest </a></p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>In this blog post, I discuss gbuild for Java tests. The goal is to write a Makefile to compile and run a JUnit test for LibreOffice. You can also refer to <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">part 1</a> and <a href="https://dev.blog.documentfoundation.org/2024/01/25/gbuild-libreoffice-build-system-part-2/">part 2</a> for a brif overiew on gbuild, the LibreOffice build system.</p>
<h3>Macro Examples from gbuild for Java Tests</h3>
<p>In the <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first post on gbuild</a>, I have mentioned some macro examples including <code>gb_Output_announce</code> which was used to print nice messages like the ones including “[CXX]”. Now let’s explain some more macros related to Java tests.</p>
<p>Consider that you want to compile and run a JUnitTest. To do that, you need to write the test in a Java file, and create a Makefile to run that.</p>
<p>This is an example for running a test defined in Java file <a href="https://opengrok.libreoffice.org/xref/core/sw/qa/complex/indeterminateState/CheckIndeterminateState.java?r=8d8e6c84">sw/qa/complex/indeterminateState/CheckIndeterminateState.java</a>.</p>
<pre>$(eval $(call gb_JunitTest_JunitTest,sw_complex))

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))

$(eval $(call gb_JunitTest_use_unoapi_jars,sw_complex))

$(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.indeterminateState.CheckIndeterminateState \
))</pre>
<p>The make file for running this Java test consists of calling multiple macros. It starts with <code>gb_JunitTest_JunitTest</code> macro, which defines the test by its name, <code>sw_complex</code>. This macro is defined in <code>solenv/gbuild/JunitTest.mk</code>. If you <code>grep</code> for define in the same file, you will see this result:</p>
<pre>$ grep -w define solenv/gbuild/JunitTest.mk
define gb_JunitTest_JunitTest
define gb_JunitTest_set_defs
define gb_JunitTest_add_classes
define gb_JunitTest_add_class
define gb_JunitTest_add_sourcefile
define gb_JunitTest_add_sourcefiles
define gb_JunitTest_use_jar
define gb_JunitTest_use_jars
define gb_JunitTest_use_jar_classset
define gb_JunitTest_add_classpath
define gb_JunitTest_use_system_jar
define gb_JunitTest_use_system_jars
define gb_JunitTest_use_external
define gb_JunitTest_use_externals
define gb_JunitTest_use_customtarget
define gb_JunitTest_use_customtargets
define gb_JunitTest_use_unoapi_jars
define gb_JunitTest_use_unoapi_test_class
define gb_JunitTest_set_unoapi_test_defaults
define gb_JunitTest_JunitTest</pre>
<p>To stick to the macros used in the above example, I describe these macros:</p>
<p><code>gb_JunitTest_add_sourcefiles</code>: This macro adds a Java source file to the test. It defines the code that adds the <code>sw/qa/complex/indeterminateState/CheckIndeterminateState.java</code> to the test. But please note that you should drop the <code>.java</code> extension:</p>
<pre>$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))</pre>
<p>The other macro <code>gb_JunitTest_use_unoapi_jars</code>, adds the UNO API JAR files to be used with the test.</p>
<p>And in the end, you need to add the test class name using <code>gb_JunitTest_add_classes</code> macro. The class name is visible in the end.</p>
<p>The result can be quite complex, but it works. <img alt="&#xF0;&#x178;&#x2122;&#x201A;" class="wp-smiley" src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" style="height: 1em;"/></p>
<pre>java.exe -Xmx64M -classpath "$W/JavaClassSet/JunitTest/sw_complex;C:/cygwin64/home/user/lode/opt/share/java/junit.jar;$I/program;$W/Jar/OOoRunner.jar;$I/program/classes/libreoffice.jar;$W/Jar/test.jar" -Dorg.openoffice.test.arg.soffice="path:$I/program/soffice" -Dorg.openoffice.test.arg.env=PATH="$PATH" -Dorg.openoffice.test.arg.user=file:///$W/JunitTest/sw_complex/user org.junit.runner.JUnitCore complex.indeterminateState.CheckIndeterminateState</pre>
<p>The above is the actual command that runs the test. Please note that if you forget the <code>gb_JunitTest_add_classes</code> macro to define the class name, the test may compile, but it will not run.</p>
<p>As an example, you can see the below patch. This patch fixes the problem of the JUnit test not running:</p>
<ul>
<li><a href="https://gerrit.libreoffice.org/c/core/+/162263">Fix sw_complex JUnitTest not running</a></li>
</ul>
<h3>Final Words</h3>
<p>Many macros are available in gbuild, making easier to create Makefiles to compile and run tests, build libraries and executable applications and many other relevant tasks. The best way to find and understand these macros is to look at the Makefiles written by others to the same task. Look for <code>.mk</code> files, and if you want to see the implementation of the macros, look into <code>solenv/gbuild/</code>.</p>
<p>I will write more about gbuild macros in the next series of blog posts on gbuild.</p></div>
    </content>
    <updated>2024-02-04T11:42:37Z</updated>
    <published>2024-02-04T11:42:37Z</published>
    <category term="Tutorial"/>
    <author>
      <name>Hossein Nourikhah</name>
    </author>
    <source>
      <id>https://dev.blog.documentfoundation.org/</id>
      <link href="https://dev.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://dev.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog for the LibreOffice Developers Community; Tutorials, tips and tricks for working with the LibreOffice code</subtitle>
      <title>LibreOffice Development Blog</title>
      <updated>2024-03-21T01:12:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://dev.blog.documentfoundation.org/?p=640</id>
    <link href="https://dev.blog.documentfoundation.org/2024/01/25/gbuild-tips-and-tricks-libreoffice-build-system-part-2/" rel="alternate" type="text/html"/>
    <title>gbuild tips and tricks – LibreOffice build system part 2</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>In the <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first blog post on LibreOffice build system, <code>gbuild</code></a> which uses GNU Make, I discussed some of the features of it. Here I discuss more about some gbuild tips and tricks that you may need.</p>
<h3>Building a Single Module</h3>
<p>In order to build a single module, you need to use its name. For example, to build only “odk”, which contains office development kit, you only have to type:</p>
<pre>make odk</pre>
<p>On the other hand, there are many other build targets associated with odk. By typing make odk, and then pressing tab, you will see this list, which shows possible targets:</p>
<pre>odk odk.buildall odk.perfcheck odk.uicheck odk.all odk.check odk.screenshot odk.unitcheck odk.allbuild odk.checkall odk.showdeliverables odk.allcheck odk.clean odk.slowcheck odk.build odk.coverage odk.subsequentcheck</pre>
<p>Each of the above is related to a specific task, in which many of them are common on different modules. Let’s discuss some of them:</p>
<p><code>make odk</code> -&gt; Builds odk module.</p>
<p><code>make odk.clean</code> -&gt; Cleans the odk module, removing the generated files.</p>
<p><code>make odk.check</code> -&gt; Runs test in odk module</p>
<p><code>make odk.uicheck</code> -&gt; It runs UI tests inside odk module</p>
<p><code>make odk.perfchek</code> -&gt; Runs performance/callgrind tests inside odk module</p>
<p><code>make odk.screenshot</code> -&gt; Creates screenshots inside odk module</p>
<p>To get a complete list and detailed description, run <code>make help</code>.</p>
<h3>Handling Incomplete Builds</h3>
<p>Sometimes because of OS crash or power outage, you may face problems when a build is stopped forcefully. In that case, you may see several zero byte object (*.o) files that exist, and prevent a successful build. In that case, you can find and remove them using this command:</p>
<pre>$ rm `find -name *.o -size 0`</pre>
<p>After that, you can retry your build without the above problem.</p>
<h3>Customizing Build Configuration</h3>
<p>The process of creating Makefile starts from configuring LibreOffice for build. This is done by invoking <code>./autogen.sh</code>. The configuration parameters are read from <code>autogen.input</code>. The build configuration is done via <code>configure.ac</code>, which is an input for GNU autoconf.</p>
<p>There are various steps before the Makefiles are generated. For example, in order to make sure that a library is there when configuring the build, a very small C/C++ file is created, compiled and tested to ensure that the library is ready, and available to use with C/C++ code.</p>
<p>It is also possible to check for some specific version of library, and available functions. As an example, see this patch, which checks for specific version of ZXing library:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/8dbbeadbc7eabe76736d37fe3bcafe3e537f0bc0">tdf#153328 ZXing::ToSVG() Conditional usage</a></li>
</ul>
<p>In the above example, multiple situations are handled:</p>
<p>1) When there is no ZXing library</p>
<p>2) When system ZXing library is used</p>
<p>And also, it is checked that specific version of ZXing is available:</p>
<p>1) When <code>ZXing::ToSVG</code> is not usable</p>
<p>2) When <code>ZXing::ToSVG</code> is usable</p>
<p>Then, the <code>HAVE_ZXING_TOSVG</code> symbolic constant is used in <code>config_host/config_zxing.h.in</code>, which can be used in C++ code.</p>
<h3>Knowing More About gbuild</h3>
<p>If you are interested in knowing more about gbuild, you can start from my <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first post on gbuild</a> in this blog. I plan to write more about gbuild, and describe some of the frequently used macros.</p>
<p>Also, you can take a look at the article devoted to gbuild in the TDF Wiki:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/Gbuild">TDF Wiki – Development/Gbuild</a></li>
</ul> <a class="read-more" href="https://dev.blog.documentfoundation.org/2024/01/25/gbuild-tips-and-tricks-libreoffice-build-system-part-2/">Read the rest </a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>In the <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first blog post on LibreOffice build system, <code>gbuild</code></a> which uses GNU Make, I discussed some of the features of it. Here I discuss more about some gbuild tips and tricks that you may need.</p>
<h3>Building a Single Module</h3>
<p>In order to build a single module, you need to use its name. For example, to build only “odk”, which contains office development kit, you only have to type:</p>
<pre>make odk</pre>
<p>On the other hand, there are many other build targets associated with odk. By typing make odk, and then pressing tab, you will see this list, which shows possible targets:</p>
<pre>odk odk.buildall odk.perfcheck odk.uicheck odk.all odk.check odk.screenshot odk.unitcheck odk.allbuild odk.checkall odk.showdeliverables odk.allcheck odk.clean odk.slowcheck odk.build odk.coverage odk.subsequentcheck</pre>
<p>Each of the above is related to a specific task, in which many of them are common on different modules. Let’s discuss some of them:</p>
<p><code>make odk</code> -&gt; Builds odk module.</p>
<p><code>make odk.clean</code> -&gt; Cleans the odk module, removing the generated files.</p>
<p><code>make odk.check</code> -&gt; Runs test in odk module</p>
<p><code>make odk.uicheck</code> -&gt; It runs UI tests inside odk module</p>
<p><code>make odk.perfchek</code> -&gt; Runs performance/callgrind tests inside odk module</p>
<p><code>make odk.screenshot</code> -&gt; Creates screenshots inside odk module</p>
<p>To get a complete list and detailed description, run <code>make help</code>.</p>
<h3>Handling Incomplete Builds</h3>
<p>Sometimes because of OS crash or power outage, you may face problems when a build is stopped forcefully. In that case, you may see several zero byte object (*.o) files that exist, and prevent a successful build. In that case, you can find and remove them using this command:</p>
<pre>$ rm `find -name *.o -size 0`</pre>
<p>After that, you can retry your build without the above problem.</p>
<h3>Customizing Build Configuration</h3>
<p>The process of creating Makefile starts from configuring LibreOffice for build. This is done by invoking <code>./autogen.sh</code>. The configuration parameters are read from <code>autogen.input</code>. The build configuration is done via <code>configure.ac</code>, which is an input for GNU autoconf.</p>
<p>There are various steps before the Makefiles are generated. For example, in order to make sure that a library is there when configuring the build, a very small C/C++ file is created, compiled and tested to ensure that the library is ready, and available to use with C/C++ code.</p>
<p>It is also possible to check for some specific version of library, and available functions. As an example, see this patch, which checks for specific version of ZXing library:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/8dbbeadbc7eabe76736d37fe3bcafe3e537f0bc0">tdf#153328 ZXing::ToSVG() Conditional usage</a></li>
</ul>
<p>In the above example, multiple situations are handled:</p>
<p>1) When there is no ZXing library</p>
<p>2) When system ZXing library is used</p>
<p>And also, it is checked that specific version of ZXing is available:</p>
<p>1) When <code>ZXing::ToSVG</code> is not usable</p>
<p>2) When <code>ZXing::ToSVG</code> is usable</p>
<p>Then, the <code>HAVE_ZXING_TOSVG</code> symbolic constant is used in <code>config_host/config_zxing.h.in</code>, which can be used in C++ code.</p>
<h3>Knowing More About gbuild</h3>
<p>If you are interested in knowing more about gbuild, you can start from my <a href="https://dev.blog.documentfoundation.org/2022/12/03/gbuild-libreoffice-build-system-part-1/">first post on gbuild</a> in this blog. I plan to write more about gbuild, and describe some of the frequently used macros.</p>
<p>Also, you can take a look at the article devoted to gbuild in the TDF Wiki:</p>
<ul>
<li><a href="https://wiki.documentfoundation.org/Development/Gbuild">TDF Wiki – Development/Gbuild</a></li>
</ul></div>
    </content>
    <updated>2024-01-25T15:04:05Z</updated>
    <published>2024-01-25T15:04:05Z</published>
    <category term="Tutorial"/>
    <author>
      <name>Hossein Nourikhah</name>
    </author>
    <source>
      <id>https://dev.blog.documentfoundation.org/</id>
      <link href="https://dev.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://dev.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog for the LibreOffice Developers Community; Tutorials, tips and tricks for working with the LibreOffice code</subtitle>
      <title>LibreOffice Development Blog</title>
      <updated>2024-03-21T01:12:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-5054960.post-6043032333707374224</id>
    <link href="https://mapopa.blogspot.com/feeds/6043032333707374224/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=5054960&amp;postID=6043032333707374224" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/6043032333707374224" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/6043032333707374224" rel="self" type="application/atom+xml"/>
    <link href="https://mapopa.blogspot.com/2024/01/firebird-50-is-released.html" rel="alternate" title="Firebird 5.0 Is Released" type="text/html"/>
    <title>Firebird 5.0 Is Released</title>
    <summary>Firebird Project is happy to announce general availability of Firebird 5.0 — the latest major release of the Firebird relational database for Windows, Linux, MacOS and Android platforms.This release introduces improvements in areas of performance, multithreaded processing (including backup, restore, sweep), SQL queries profiling, with better scalability and numerous enhancements in SQL</summary>
    <updated>2024-01-25T10:29:47Z</updated>
    <published>2024-01-25T10:28:00Z</published>
    <author>
      <name>Popa Adrian Marius</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/09862886782232467681</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-5054960</id>
      <category term="ubuntu"/>
      <category term="firebird"/>
      <category term="debian"/>
      <category term="ubuntu hardy heron"/>
      <category term="ubuntu intrepid ibex"/>
      <category term="webkit"/>
      <category term="ubuntu jaunty"/>
      <category term="linux"/>
      <category term="nginx"/>
      <category term="firefox 3.0"/>
      <category term="free pascal"/>
      <category term="android"/>
      <category term="arora"/>
      <category term="cake php"/>
      <category term="ffmpeg"/>
      <category term="git"/>
      <category term="lazarus"/>
      <category term="cloudbook"/>
      <category term="everex"/>
      <category term="kernel vanilla"/>
      <category term="kvm"/>
      <category term="QEMU"/>
      <category term="kernel"/>
      <category term="php"/>
      <category term="qt4.5"/>
      <category term="vlc"/>
      <category term="firebird 2.1"/>
      <category term="firebird 2.5"/>
      <category term="flamerobin"/>
      <category term="kernel 2.6.27"/>
      <category term="mysql"/>
      <category term="netbooks"/>
      <category term="php 5"/>
      <category term="php5"/>
      <category term="python"/>
      <category term="ubuntu gutsy"/>
      <category term="vlc nightly"/>
      <category term="vlc streaming"/>
      <category term="vmware"/>
      <category term="windows"/>
      <category term="goodbye-microsoft"/>
      <category term="linux 0.0.1"/>
      <category term="microsoft"/>
      <category term="mplayer"/>
      <category term="qmail"/>
      <category term="qt"/>
      <category term="ubuntu server"/>
      <category term="virtualbox"/>
      <category term="youtube"/>
      <category term="3gp"/>
      <category term="Haikuos"/>
      <category term="MOTU"/>
      <category term="blog tutorial"/>
      <category term="c#"/>
      <category term="compiz"/>
      <category term="gutsy"/>
      <category term="ie6"/>
      <category term="jeos"/>
      <category term="mercurial"/>
      <category term="mozilla"/>
      <category term="ogg"/>
      <category term="oo pascal"/>
      <category term="pdo"/>
      <category term="perl"/>
      <category term="ror"/>
      <category term="ruby"/>
      <category term="upgrade"/>
      <category term="vanilla"/>
      <category term="Romania"/>
      <category term="Xc3028"/>
      <category term="acpi"/>
      <category term="amd"/>
      <category term="amd64"/>
      <category term="amr"/>
      <category term="android-x86"/>
      <category term="apc"/>
      <category term="apt"/>
      <category term="asus"/>
      <category term="c++"/>
      <category term="cakephp"/>
      <category term="chrome"/>
      <category term="clang++"/>
      <category term="delphi"/>
      <category term="delphi programming"/>
      <category term="dosemu"/>
      <category term="eclipse"/>
      <category term="eliberatica"/>
      <category term="error"/>
      <category term="ext4"/>
      <category term="feisty"/>
      <category term="firebird build"/>
      <category term="firebug"/>
      <category term="firefox"/>
      <category term="firefox 2.0"/>
      <category term="flash"/>
      <category term="flv live streaming"/>
      <category term="google"/>
      <category term="google app"/>
      <category term="gsoc2015"/>
      <category term="hardy"/>
      <category term="ie7"/>
      <category term="ie8"/>
      <category term="inbox"/>
      <category term="jabber"/>
      <category term="java"/>
      <category term="jaws"/>
      <category term="kde4.2"/>
      <category term="kernel 2.6.28"/>
      <category term="kubuntu"/>
      <category term="lamp"/>
      <category term="libreoffice"/>
      <category term="llvm"/>
      <category term="mingw"/>
      <category term="mysql2firebird"/>
      <category term="nvidia drivers 180"/>
      <category term="opengl rocks"/>
      <category term="oracle"/>
      <category term="pascal"/>
      <category term="php6"/>
      <category term="postgresql"/>
      <category term="qemu manager"/>
      <category term="qt4"/>
      <category term="quake"/>
      <category term="reea.net"/>
      <category term="samba"/>
      <category term="sid"/>
      <category term="skype"/>
      <category term="svn"/>
      <category term="theora"/>
      <category term="thunderbird"/>
      <category term="turboc 2.0"/>
      <category term="ubuntu 6.10 live cd"/>
      <category term="v4l"/>
      <category term="via"/>
      <category term="webgl"/>
      <category term="webkitgtk"/>
      <category term="wine"/>
      <category term="wordpress"/>
      <category term="wubi"/>
      <category term="x264"/>
      <category term="xmms"/>
      <category term="xul"/>
      <category term="#LazarusBook #chapter1"/>
      <category term="#LazarusBook #chapter2"/>
      <category term="#firebird"/>
      <category term="#gsoc2015"/>
      <category term="#libreoffice"/>
      <category term="-fPIC"/>
      <category term=".forward"/>
      <category term="/etc"/>
      <category term="2g2"/>
      <category term="3d rage pro"/>
      <category term="AppVeyor"/>
      <category term="BSD"/>
      <category term="Beer facts"/>
      <category term="Chris Rock"/>
      <category term="Ganymede"/>
      <category term="HowTo"/>
      <category term="LISP"/>
      <category term="LinkedIn"/>
      <category term="Lubuntu"/>
      <category term="Master Of The Universe"/>
      <category term="Parangelion 2009"/>
      <category term="RMS. GNU"/>
      <category term="SQL:2003"/>
      <category term="Stallman"/>
      <category term="Transport Tycoon Deluxe"/>
      <category term="WebPositive"/>
      <category term="X Forward"/>
      <category term="abrowser"/>
      <category term="activerecord"/>
      <category term="adodb"/>
      <category term="aircrack-ng"/>
      <category term="ansi c"/>
      <category term="apache"/>
      <category term="apache 2.2"/>
      <category term="apparmor"/>
      <category term="appliance"/>
      <category term="atheros"/>
      <category term="ati"/>
      <category term="audacious"/>
      <category term="avant-window-navigator"/>
      <category term="batman"/>
      <category term="bazaar"/>
      <category term="benchmarks"/>
      <category term="bind9"/>
      <category term="bochs"/>
      <category term="bonie++"/>
      <category term="bookmarks"/>
      <category term="borkstation"/>
      <category term="borland"/>
      <category term="boston"/>
      <category term="boxlinks"/>
      <category term="bug"/>
      <category term="bugzilla"/>
      <category term="bush"/>
      <category term="buttons"/>
      <category term="c api"/>
      <category term="cache control"/>
      <category term="cacti"/>
      <category term="cast"/>
      <category term="cbq"/>
      <category term="centos"/>
      <category term="cfq"/>
      <category term="cgi"/>
      <category term="chromium"/>
      <category term="claud book"/>
      <category term="claws"/>
      <category term="clipse"/>
      <category term="cms"/>
      <category term="composite"/>
      <category term="coreutils"/>
      <category term="cpp"/>
      <category term="cpus"/>
      <category term="crashkernel"/>
      <category term="crosscompiling"/>
      <category term="csplit"/>
      <category term="css"/>
      <category term="customize"/>
      <category term="cvs"/>
      <category term="cx23885"/>
      <category term="dark"/>
      <category term="dark silhouettes"/>
      <category term="date"/>
      <category term="dbd-interbase"/>
      <category term="debian arm"/>
      <category term="debian experimental"/>
      <category term="debian stable"/>
      <category term="dell vostro"/>
      <category term="designos"/>
      <category term="devuan"/>
      <category term="distcc"/>
      <category term="distributedssh"/>
      <category term="disturbed monkeys"/>
      <category term="django"/>
      <category term="dmesg"/>
      <category term="dns"/>
      <category term="doom"/>
      <category term="dosbox"/>
      <category term="dot-forward"/>
      <category term="dovecot"/>
      <category term="dream htc"/>
      <category term="drm"/>
      <category term="dstat"/>
      <category term="du"/>
      <category term="dual display"/>
      <category term="dyndns"/>
      <category term="ecli"/>
      <category term="eeexubuntu"/>
      <category term="egit"/>
      <category term="eog"/>
      <category term="epiphany"/>
      <category term="evolution"/>
      <category term="example"/>
      <category term="ext3"/>
      <category term="extract"/>
      <category term="fail"/>
      <category term="fastcgi"/>
      <category term="fbcon 2010"/>
      <category term="fbexport"/>
      <category term="festy fawn"/>
      <category term="final"/>
      <category term="firebird 2.0"/>
      <category term="firebird 3.0"/>
      <category term="firebird conference"/>
      <category term="firebirdsql"/>
      <category term="fireruby"/>
      <category term="flamerobin 0.8.5"/>
      <category term="flamerobin 0.9.0"/>
      <category term="flaps"/>
      <category term="flash 64"/>
      <category term="flash10"/>
      <category term="flash64"/>
      <category term="fleps"/>
      <category term="fpc"/>
      <category term="fpc 2.2.x"/>
      <category term="fpm"/>
      <category term="frames"/>
      <category term="free time"/>
      <category term="freebsd"/>
      <category term="freemind"/>
      <category term="fuse"/>
      <category term="g++"/>
      <category term="gbox"/>
      <category term="geek pr0n"/>
      <category term="gems"/>
      <category term="gigabyte"/>
      <category term="gingerbread"/>
      <category term="glibc"/>
      <category term="gmail.com"/>
      <category term="gnome"/>
      <category term="gnome-gegl2"/>
      <category term="gnu"/>
      <category term="good pr"/>
      <category term="gp3"/>
      <category term="gpc3"/>
      <category term="grub"/>
      <category term="grub2"/>
      <category term="gsl"/>
      <category term="gtk"/>
      <category term="gwibber"/>
      <category term="gzip"/>
      <category term="happy birthday"/>
      <category term="haxors"/>
      <category term="hosting"/>
      <category term="hp 4000"/>
      <category term="htb"/>
      <category term="htbtools"/>
      <category term="html5"/>
      <category term="i386"/>
      <category term="ibase"/>
      <category term="iceweasel"/>
      <category term="icq"/>
      <category term="icu"/>
      <category term="inet"/>
      <category term="inmures.ro"/>
      <category term="innodb"/>
      <category term="intel"/>
      <category term="interbase"/>
      <category term="ipython"/>
      <category term="isc"/>
      <category term="itrepid"/>
      <category term="jaun"/>
      <category term="java script"/>
      <category term="jdbc"/>
      <category term="joins"/>
      <category term="jquery"/>
      <category term="jre6"/>
      <category term="json"/>
      <category term="kFreeBSD"/>
      <category term="kde4"/>
      <category term="kernel 2.5.x"/>
      <category term="kernel 2.6.26"/>
      <category term="kernel 2.6.30"/>
      <category term="kernel 2.6.x"/>
      <category term="kexec"/>
      <category term="killie"/>
      <category term="komodo"/>
      <category term="komposer"/>
      <category term="konqueror"/>
      <category term="kvm-linux"/>
      <category term="lazarus 0.9.26"/>
      <category term="leadtek pvr2200"/>
      <category term="lemp"/>
      <category term="lenny"/>
      <category term="libdbi"/>
      <category term="libdbi-drivers"/>
      <category term="libvirt"/>
      <category term="libvirt-manager"/>
      <category term="lighttpd"/>
      <category term="linus"/>
      <category term="linus torvalds"/>
      <category term="linux 3.x.x"/>
      <category term="linuz"/>
      <category term="load balancer"/>
      <category term="locales"/>
      <category term="locked"/>
      <category term="lug mures"/>
      <category term="lulu.com"/>
      <category term="lwn"/>
      <category term="lxde"/>
      <category term="mach64"/>
      <category term="madwifi"/>
      <category term="man"/>
      <category term="matrix"/>
      <category term="mcrypt"/>
      <category term="mdb2"/>
      <category term="memcache"/>
      <category term="mencode"/>
      <category term="mencoder"/>
      <category term="merge"/>
      <category term="migrate ext3 to ext4"/>
      <category term="mod_expires"/>
      <category term="modules"/>
      <category term="monitor"/>
      <category term="mono"/>
      <category term="mono 2.0"/>
      <category term="mono 2.6"/>
      <category term="moonlight"/>
      <category term="movable type"/>
      <category term="mp3"/>
      <category term="mp4"/>
      <category term="mta"/>
      <category term="music tracker"/>
      <category term="my$QL"/>
      <category term="nat"/>
      <category term="net"/>
      <category term="nginix"/>
      <category term="nmap"/>
      <category term="nokia"/>
      <category term="nokia 810"/>
      <category term="non3d"/>
      <category term="noop"/>
      <category term="nouveau"/>
      <category term="nsfw"/>
      <category term="openchrome"/>
      <category term="opengl"/>
      <category term="openoffice 3.0"/>
      <category term="openorrifice"/>
      <category term="openssh"/>
      <category term="openssl"/>
      <category term="openttd"/>
      <category term="oracle sux"/>
      <category term="oszoo"/>
      <category term="oxygen"/>
      <category term="pacpl"/>
      <category term="panoramic view"/>
      <category term="parrot 0.6.3"/>
      <category term="patents"/>
      <category term="pda"/>
      <category term="perl6"/>
      <category term="phenom x3"/>
      <category term="php 4"/>
      <category term="php 5.3"/>
      <category term="php ide"/>
      <category term="php.net"/>
      <category term="php5.3"/>
      <category term="phpbb3"/>
      <category term="phpmyfaq"/>
      <category term="pidgin"/>
      <category term="plaboy"/>
      <category term="playogg"/>
      <category term="plumbers"/>
      <category term="pop3"/>
      <category term="postfix"/>
      <category term="powertop"/>
      <category term="prince of persia"/>
      <category term="privoxy"/>
      <category term="pulse"/>
      <category term="pvm"/>
      <category term="pxe"/>
      <category term="pyroom"/>
      <category term="qmailanalog"/>
      <category term="qml"/>
      <category term="qt 4.7"/>
      <category term="qtcreator"/>
      <category term="quake 1"/>
      <category term="raid"/>
      <category term="rails"/>
      <category term="rants"/>
      <category term="reactos"/>
      <category term="recordmydesktop"/>
      <category term="release party"/>
      <category term="reverse"/>
      <category term="rip nokia"/>
      <category term="ripping"/>
      <category term="rtfm"/>
      <category term="rubyforge"/>
      <category term="rubyonfire"/>
      <category term="schedulers"/>
      <category term="scroolkeeper"/>
      <category term="search applicance"/>
      <category term="sed"/>
      <category term="sekrity"/>
      <category term="selinux"/>
      <category term="sendmail"/>
      <category term="sharp"/>
      <category term="shorewall"/>
      <category term="silverlight"/>
      <category term="sis"/>
      <category term="sixcore"/>
      <category term="slackware"/>
      <category term="smbfs"/>
      <category term="snaps"/>
      <category term="snmp"/>
      <category term="snow"/>
      <category term="soap"/>
      <category term="softpedia"/>
      <category term="songbird"/>
      <category term="sourceforge"/>
      <category term="sponsor"/>
      <category term="sql server 2008"/>
      <category term="sqlite"/>
      <category term="ssh"/>
      <category term="ssh tunnel"/>
      <category term="sshfs"/>
      <category term="stable"/>
      <category term="stats"/>
      <category term="streaming"/>
      <category term="subclipse"/>
      <category term="suhosin-patch"/>
      <category term="super classic"/>
      <category term="super server"/>
      <category term="svk"/>
      <category term="sylpheed"/>
      <category term="targu mures"/>
      <category term="tc"/>
      <category term="tcc"/>
      <category term="tccboot"/>
      <category term="tentakel"/>
      <category term="terminal"/>
      <category term="testing"/>
      <category term="tests"/>
      <category term="themes"/>
      <category term="timestamp"/>
      <category term="timstamp"/>
      <category term="tiobe"/>
      <category term="todo reading"/>
      <category term="tor"/>
      <category term="tpch"/>
      <category term="tube"/>
      <category term="turboc"/>
      <category term="tutorial"/>
      <category term="tux sacrifice"/>
      <category term="tuxguitar"/>
      <category term="typo3"/>
      <category term="ubufox"/>
      <category term="ubuntu lite"/>
      <category term="ubuntu live cd"/>
      <category term="ubuntustudio"/>
      <category term="ue4"/>
      <category term="unetbootin"/>
      <category term="unicode"/>
      <category term="unicode art"/>
      <category term="unrealengine"/>
      <category term="use firebird"/>
      <category term="usesql"/>
      <category term="utf art"/>
      <category term="uuid"/>
      <category term="v4l-dvb-experimental"/>
      <category term="v4lctl"/>
      <category term="v8"/>
      <category term="vai"/>
      <category term="vcl4php"/>
      <category term="vederi"/>
      <category term="veto files"/>
      <category term="vista"/>
      <category term="vmstat"/>
      <category term="voodoo"/>
      <category term="vorbis"/>
      <category term="vsftp"/>
      <category term="vulcanians"/>
      <category term="web20"/>
      <category term="webcam"/>
      <category term="why git"/>
      <category term="wibrain"/>
      <category term="windmill"/>
      <category term="winfast 2000 xp global"/>
      <category term="wireless"/>
      <category term="wma"/>
      <category term="worm"/>
      <category term="x4"/>
      <category term="x64"/>
      <category term="x86"/>
      <category term="xawtv"/>
      <category term="xen"/>
      <category term="xfce"/>
      <category term="xfce4"/>
      <category term="xmpp"/>
      <category term="xulrunner"/>
      <category term="zaurus"/>
      <category term="zul"/>
      <author>
        <name>Popa Adrian Marius</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/09862886782232467681</uri>
      </author>
      <link href="https://mapopa.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://mapopa.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Programmer 4 life</subtitle>
      <title>Mariuz's Blog</title>
      <updated>2024-03-13T10:05:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://qa.blog.documentfoundation.org/?p=2146</id>
    <link href="https://qa.blog.documentfoundation.org/2024/01/16/libreoffice-24-2-rc2-is-available-for-testing/" rel="alternate" type="text/html"/>
    <title>LibreOffice 24.2 RC2 is available for testing</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the <a href="https://wiki.documentfoundation.org/ReleasePlan/24.2">Release Plan</a> ) being LibreOffice 24.2 Release Candidate 2 (RC2) the forth pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 RC1, 113 commits have been submitted to the code repository and <a href="https://wiki.documentfoundation.org/Releases/24.2.0/RC2#List_of_fixed_bugs">61 issues</a> got fixed. Check the <a href="https://wiki.documentfoundation.org/ReleaseNotes/24.2">release notes</a> to find the new features included in this version of LibreOffice.</p>
<p><strong>LibreOffice 24.2 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.</strong></p>
<p>In case you find any problem in this pre-release, please report it in <a href="https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice&amp;format=guided">Bugzilla</a> ( You just need a legit email account in order to create a new account ).</p>
<p>For help, you can contact the QA Team directly in the <a href="https://web.libera.chat/?settings=#libreoffice-qa">QA IRC channel</a> or via <a href="https://matrix.to/#/#libreoffice-qa:documentfoundation.org">Matrix</a>.</p>
<p>LibreOffice is a volunteer-driven community project, so please help us to test â€“ we appreciate it!</p>
<p>Happy testing!!</p>
<p><a href="https://www.libreoffice.org/download/download-libreoffice/?version=24.2.0"><img alt="Download it now!" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/available242RC2.png"/></a>…</p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the <a href="https://wiki.documentfoundation.org/ReleasePlan/24.2">Release Plan</a> ) being LibreOffice 24.2 Release Candidate 2 (RC2) the forth pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 RC1, 113 commits have been submitted to the code repository and <a href="https://wiki.documentfoundation.org/Releases/24.2.0/RC2#List_of_fixed_bugs">61 issues</a> got fixed. Check the <a href="https://wiki.documentfoundation.org/ReleaseNotes/24.2">release notes</a> to find the new features included in this version of LibreOffice.</p>
<p><strong>LibreOffice 24.2 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.</strong></p>
<p>In case you find any problem in this pre-release, please report it in <a href="https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice&amp;format=guided">Bugzilla</a> ( You just need a legit email account in order to create a new account ).</p>
<p>For help, you can contact the QA Team directly in the <a href="https://web.libera.chat/?settings=#libreoffice-qa">QA IRC channel</a> or via <a href="https://matrix.to/#/#libreoffice-qa:documentfoundation.org">Matrix</a>.</p>
<p>LibreOffice is a volunteer-driven community project, so please help us to test â€“ we appreciate it!</p>
<p>Happy testing!!</p>
<p><a href="https://www.libreoffice.org/download/download-libreoffice/?version=24.2.0"><img alt="Download it now!" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/available242RC2.png"/></a>…</p></div>
    </content>
    <updated>2024-01-16T15:59:59Z</updated>
    <published>2024-01-16T15:59:59Z</published>
    <category term="releases"/>
    <author>
      <name>x1sc0</name>
    </author>
    <source>
      <id>https://qa.blog.documentfoundation.org/</id>
      <link href="https://qa.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://qa.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Updates from the Quality Assurance community</subtitle>
      <title>LibreOffice QA Blog</title>
      <updated>2024-03-11T12:21:29Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://design.blog.documentfoundation.org/?p=1808</id>
    <link href="https://design.blog.documentfoundation.org/2024/01/12/comments-in-sidebar/" rel="alternate" type="text/html"/>
    <title>Comments in Sidebar</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Using comments is a key feature in text processing. A typical workflow might be to review a document where notes are made by different colleagues. LibreOffice Writer currently shows these comments in the document margin, which is limited to the page height, ending up in the need to scroll long text (even while editing [<a href="https://design.blog.documentfoundation.org/feed/#1">1</a>]) and eventually in paging-like interactions if the number of comments exceed the total size.…</p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Using comments is a key feature in text processing. A typical workflow might be to review a document where notes are made by different colleagues. LibreOffice Writer currently shows these comments in the document margin, which is limited to the page height, ending up in the need to scroll long text (even while editing [<a href="https://design.blog.documentfoundation.org/feed/#1">1</a>]) and eventually in paging-like interactions if the number of comments exceed the total size.…</p></div>
    </content>
    <updated>2024-01-12T13:22:10Z</updated>
    <published>2024-01-12T13:22:10Z</published>
    <category term="GSoC"/>
    <category term="User Interface"/>
    <author>
      <name>Heiko Tietze</name>
    </author>
    <source>
      <id>https://design.blog.documentfoundation.org/</id>
      <link href="https://design.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://design.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Blog site from the design and UX teams working on LibreOffice</subtitle>
      <title>LibreOffice Design Team</title>
      <updated>2024-01-12T13:22:10Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://qa.blog.documentfoundation.org/?p=2126</id>
    <link href="https://qa.blog.documentfoundation.org/2024/01/12/qa-dev-report-december-2023/" rel="alternate" type="text/html"/>
    <title>QA/Dev Report: December 2023</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 7.5.9 and 7.6.4 were <a href="https://blog.documentfoundation.org/blog/2023/12/07/libreoffice-764-and-759/">announced</a> on December 7</li>
<li>Olivier Hallot (TDF) updated menu item paths in Help pages and updated and restructured dozens of help pages</li>
<li>Rafael Lima fixed line count width in Writer file properties dialog, added a button leading to Download page in the dialog showing up if trying to access Help without offline files available and made it possible to enter edit mode for comments in Calc via Navigator. He also updated ScriptForge help and added a Help page about installing offline Help</li>
<li>Stanislav Horacek did many fixes and cleanups in Help pages</li>
<li>Ilmari Lauhakangas (TDF) made it so multi-selection is no longer possible in Start Center as it is not actionable. He also streamlined the navigation layout of Help</li>
<li>Stéphane Guillou (TDF) linked Sidebar decks to Help and did other Help updates</li>
<li>Alain Romedenne updated ScriptForge help pages</li>
<li>Dione Maddern updated Help for Draw’s Consolidate Text functionality</li>
<li>Sophia Schröder did many cleanups in Help</li>
<li>Gábor Kelemen (allotropia) added support for XF86Forward / XF86Back key events for use in Impress slideshows and did code cleanups in the area of unused config keys and includes</li>
<li>Laurent Balland did many fixes in Impress templates, collaborating with Jérôme Bouat</li>
<li>Miklós Vajna (Collabora) worked on <a href="https://vmiklos.hu/blog/sw-floattable11.html">multi-page floating tables</a> in Writer. He also updated pdfium and did fixes to automated tests</li>
<li>Jean-Pierre Ledure worked on the ScriptForge library</li>
<li>Michael Meeks (Collabora) fixed a deadlock</li>
<li>Szymon Kłos, Áron Budea and Gökay Şatır (Collabora) worked on LOKit used by Collabora Online</li>
<li>Nick Wingate (Collabora) added an option to define ranges when exporting Calc sheets to PDF</li>
<li>Henry Castro (Collabora) made it so an error dialog pops up in Calc, if trying to insert a row after the maximum one</li>
<li>Eike Rathke (Red Hat) fixed an issue with unwanted deletion of data ranges in Calc</li>
<li>Tomaž Vajngerl (Collabora) streamlined the OOXML import of headers/footers in page styles, made handling of embedded SVGs in FODT files more robust and added support for writing SVG images into OOXML using the MS OOXML extension. He also did lots of refactoring in the EditEngine text editing code</li>
<li>Julien Nabet fixed an issue with changing field options in Firebird databases, implemented more user management functionality for MySQL and MariaDB databases, made colour handling more robust in sparklines, fixed an issue with stepped line types in XY scatter charts and fixed StepTime being ignored with AnimatedImages in Basic Dialog (together with bug reporter Jurassic Pork). He also fixed crashes and many issues found by static analysers and did many code cleanups</li>
<li>Andreas Heinisch made Mail Merge more robust with regards to database names</li>
<li>László Németh continued polishing support for smart justify found in DOCX files and fixed an issue with soft hyphens not being displayed in text boxes and shapes</li>
<li>Xisco Faulí (TDF) did many improvements and additions to automated tests and fixed regressions</li>
<li>Michael Stahl (allotropia) revamped ODF encryption resulting in much faster saving and loading, better resistance to tampering, better hiding of metadata and higher resistance to brute forcing. He also fixed a Writer crash related to text formatting of group shapes anchored as character</li>
<li>Mike Kaganski (Collabora) continued polishing the handling and detection of broken ZIP packages (document containers), improved the load time of DOCX files with hundreds of images, fixed issues with incorrect Math formula font size and Escape key not closing formula editor (not in any released version), fixed undoing the first applied cell formatting in Calc, fixed an issue with unwanted extra empty paragraphs appearing after a table before a section break in DOCX files, made line breaking in Writer behave according to Unicode Line Breaking Algorithm rules, fixed an issue with line breaks in justified right aligned text and fixed an issue with applying Calc cell styles. He also fixed many crashes and did many code cleanups and improvements to automated tests</li>
<li>Caolán McNamara (Collabora) optimised Calc’s performance and fixed many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on the online update feature. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) continued polishing the renovation of bitmap alpha handling. He also did many code cleanups and optimisations</li>
<li>Justin Luth (Collabora) made it so the Select Outline Format split button in the Properties Sidebar deck in Writer now opens Bullets and Numbering dialog and its Outline tab, if you click on the button part, fixed handling of legacy dropdown fields direct bold and char settings in DOCX and RTF files, fixed a page break issues in RTF import, made it so there is no longer a possibility to get into a restart/reinstall loop after installing an extension and fixed an issue with losing selection in Writer after right-clicking the last half character</li>
<li>Michael Weghorn (TDF) made it so listboxes don’t take mouse wheel input, if mouse is not positioned over them and fixed accessibility issues in areas such as heading levels and checkable items. He also did many updates and cleanups to the LibreOffice Android Viewer code</li>
<li>Balázs Varga (allotropia) fixed an issue causing a huge number of unwanted master slides appearing in PPTX import and continued working on proper indications for locked down items in Options</li>
<li>Patrick Luby (NeoOffice) continued improving the scrolling performance on macOS, fixed an issue causing unwanted horizontal scrolling in Calc on macOS, eliminated flickering upon window resizing in macOS with Skia/Metal and fixed clipboard contents causing trouble with clipboard recorders on macOS. He also fixed some macOS crashes</li>
<li>Jim Raykowski made comment threads appear grouped in the Navigator, made images with broken links easier to find in the Navigator and implemented a feature to identify the objects in a layer by hovering with the mouse over layer tabs</li>
<li>Sarper Akdemir (allotropia) added an option to disable active content such as DDE commands and OLE objects</li>
<li>Christian Lohmaier (TDF) fixed a Windows AARCH64 build issue</li>
<li>Chris Sherlock refactored text rendering code</li>
<li>Regina Henschel implemented curved connector routing method used in OOXML files</li>
<li>Sahil Gautam continued polishing the feature for highlighting the current row and column in spreadsheets</li>
<li>Irgaliev Amin improved math formula compatibility with Microsoft Office</li>
<li>Samuel Mehrbrodt (allotropia) did many improvements to the Expert Configuration and macro signature confirmation dialogs and made it so dialog button accelerators work without Alt key on Windows</li>
<li>Thorsten Behrens (allotropia) did code and build cleanups, for example improving build reproducibility</li>
<li>Armin Le Grand (allotropia) continued with the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) fixed issues with numbering losing its text colour in DOCX import, handling toggled text formatting properties in DOCX files, paragraphs imported without numbering from RTF files, list of Calc comments not updating automatically and checkbox sizes being imported wrong from RTF files</li>
<li>Matt K fixed displaying dialogs in Calc’s full screen mode</li>
<li>Martin Gube added an automated test</li>
<li>Taichi Haradaguchi updated some dependencies</li>
<li>René Engelhard did some build fixes</li>
<li>David Gilbert did code cleanups</li>
<li>Adam Seskunas added an automated test</li>
<li>Andras Timar (Collabora) fixed shape colour not being imported in Visio files</li>
<li>Ricardo Donino ported a Draw Java SDK example to Python</li>
<li>Theppitak Karoonboonyanan added Thai AutoCorrect data</li>
<li>Jonathan Clark made it so BASIC CCur function obeys locale setting</li>
<li>Li Yang improved menu highlight text colour in high contrast mode on Windows</li>
<li>Arnaud Versini did some code cleanups</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>453</strong> bugs, <strong>71</strong> of which are enhancements, have been reported by <strong>283</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 33 )</li>
<li>Telesto ( 17 )</li>
<li>Jérôme ( 16 )</li>
<li>Eyal Rozenberg ( 11 )</li>
<li>Rafael Lima ( 11 )</li>
<li>Xisco Faulí ( 9 )</li>
<li>Stéphane Guillou (stragu) ( 8 )</li>
<li>Tracey ( 6 )</li>
<li>Regina Henschel ( 6 )</li>
<li>William Friedman ( 6 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>412</strong> bugs have been triaged by <strong>64</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 79 )</li>
<li>m.a.riosv ( 58 )</li>
<li>Heiko Tietze ( 27 )</li>
<li>Buovjaga ( 26 )</li>
<li>Julien Nabet ( 23 )</li>
<li>raal ( 21 )</li>
<li>Xisco Faulí ( 19 )</li>
<li>Dieter ( 18 )</li>
<li>ady ( 18 )</li>
<li>V Stuart Foote ( 14 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>438</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>153</strong> bugs have been fixed by <strong>32</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 14 )</li>
<li>Balazs Varga ( 11 )</li>
<li>Patrick Luby ( 8 )</li>
<li>Julien Nabet ( 8 )</li>
<li>Laurent Balland ( 8 )</li>
<li>Caolán McNamara ( 7 )</li>
<li>Justin Luth ( 6 )</li>
<li>Noel Grandin ( 6 )</li>
<li>Samuel Mehrbrodt ( 6 )</li>
<li>Rafael Lima ( 3 )</li>
</ol>
<p><strong>List of critical bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=154339">tdf#154339</a> Plain text copied to clipboard and pasted to CSV is not saved. ( Thanks to Xisco Fauli )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123396">tdf#123396</a> LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123864">tdf#123864</a> No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=154044">tdf#154044</a> Undoing the first applied cell formatting only works for column A ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155266">tdf#155266</a> VIEWING / SCROLLING: very laggy jerky scrolling on macOS Intel Writer: scroll lag ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=157915">tdf#157915</a> Error UNO type of C++ when running a Basic macro with instruction commitChanges for org.openoffice.Office.Commands/Execute/Disabled ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158223">tdf#158223</a> Charts: Data range will be deleted when deleting following sheet ( Thanks to Eike Rathke )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158379">tdf#158379</a> Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158551">tdf#158551</a> Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=33201">tdf#33201</a> UI: Highlight (not select) current row and column in spreadsheet ( Thanks to Sahil )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=60558">tdf#60558</a> FILEOPEN DOCX: floating table w/parallel wrap followed by an inline table doesn’t wrap beside in empty space on right ( Thanks to Miklos Vajna )</li>
</ol>
<p><strong>List of crashes fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=140401">tdf#140401</a> LibreOffice crashed due to custom installed fonts ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=156820">tdf#156820</a> Crash when changing color with custom colour picker accessed from overflowing toolbar ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158379">tdf#158379</a> Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158450">tdf#158450</a> Crash when picking custom colour for column separator line ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158505">tdf#158505</a> Crash exporting Writer file with bibliography to PDF ( Thanks to Vojtěch Doležal )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158551">tdf#158551</a> Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158593">tdf#158593</a> Expert dialog crashes when editing locked down “set” configuration ( Thanks to Stephan Bergmann )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158686">tdf#158686</a> FILEOPEN RTF Crash when changing to print preview ( Thanks to Miklos Vajna )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158703">tdf#158703</a> Crash if I use the space bar several times and then punctuation (French Locale) ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158720">tdf#158720</a> Crash for attribute string search (“oo”, “uno”, “ooname”) in the Expert Configuration dialog ( Thanks to Samuel Mehrbrodt )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158794">tdf#158794</a> Pasting a DDE link into a footnote / endnote crashes ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158837">tdf#158837</a> Crash in: int rtl::str::indexOfStr_WithLength(char16_t const*, int, char16_t const*, int) ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158862">tdf#158862</a> LibreOffice crashes when attempting to inspect a UNO object in the Watch Window during debugging after successful initial inspection. ( Thanks to Mike Kaganski )</li>
</ol>
<p><strong>List of old bugs ( more than 4 years old ) fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=111969">tdf#111969</a> right-click on right half of last character in selection loses the selection (Writer) ( Thanks to Justin Luth )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=117651">tdf#117651</a> AutoCorrect does not change preexisting text inside /slashes/ to italics, nor change -strikethrough- ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123396">tdf#123396</a> LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123864">tdf#123864</a> No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )</li></ol>…</div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><h2>General Activities</h2>
<ol>
<li>LibreOffice 7.5.9 and 7.6.4 were <a href="https://blog.documentfoundation.org/blog/2023/12/07/libreoffice-764-and-759/">announced</a> on December 7</li>
<li>Olivier Hallot (TDF) updated menu item paths in Help pages and updated and restructured dozens of help pages</li>
<li>Rafael Lima fixed line count width in Writer file properties dialog, added a button leading to Download page in the dialog showing up if trying to access Help without offline files available and made it possible to enter edit mode for comments in Calc via Navigator. He also updated ScriptForge help and added a Help page about installing offline Help</li>
<li>Stanislav Horacek did many fixes and cleanups in Help pages</li>
<li>Ilmari Lauhakangas (TDF) made it so multi-selection is no longer possible in Start Center as it is not actionable. He also streamlined the navigation layout of Help</li>
<li>Stéphane Guillou (TDF) linked Sidebar decks to Help and did other Help updates</li>
<li>Alain Romedenne updated ScriptForge help pages</li>
<li>Dione Maddern updated Help for Draw’s Consolidate Text functionality</li>
<li>Sophia Schröder did many cleanups in Help</li>
<li>Gábor Kelemen (allotropia) added support for XF86Forward / XF86Back key events for use in Impress slideshows and did code cleanups in the area of unused config keys and includes</li>
<li>Laurent Balland did many fixes in Impress templates, collaborating with Jérôme Bouat</li>
<li>Miklós Vajna (Collabora) worked on <a href="https://vmiklos.hu/blog/sw-floattable11.html">multi-page floating tables</a> in Writer. He also updated pdfium and did fixes to automated tests</li>
<li>Jean-Pierre Ledure worked on the ScriptForge library</li>
<li>Michael Meeks (Collabora) fixed a deadlock</li>
<li>Szymon Kłos, Áron Budea and Gökay Şatır (Collabora) worked on LOKit used by Collabora Online</li>
<li>Nick Wingate (Collabora) added an option to define ranges when exporting Calc sheets to PDF</li>
<li>Henry Castro (Collabora) made it so an error dialog pops up in Calc, if trying to insert a row after the maximum one</li>
<li>Eike Rathke (Red Hat) fixed an issue with unwanted deletion of data ranges in Calc</li>
<li>Tomaž Vajngerl (Collabora) streamlined the OOXML import of headers/footers in page styles, made handling of embedded SVGs in FODT files more robust and added support for writing SVG images into OOXML using the MS OOXML extension. He also did lots of refactoring in the EditEngine text editing code</li>
<li>Julien Nabet fixed an issue with changing field options in Firebird databases, implemented more user management functionality for MySQL and MariaDB databases, made colour handling more robust in sparklines, fixed an issue with stepped line types in XY scatter charts and fixed StepTime being ignored with AnimatedImages in Basic Dialog (together with bug reporter Jurassic Pork). He also fixed crashes and many issues found by static analysers and did many code cleanups</li>
<li>Andreas Heinisch made Mail Merge more robust with regards to database names</li>
<li>László Németh continued polishing support for smart justify found in DOCX files and fixed an issue with soft hyphens not being displayed in text boxes and shapes</li>
<li>Xisco Faulí (TDF) did many improvements and additions to automated tests and fixed regressions</li>
<li>Michael Stahl (allotropia) revamped ODF encryption resulting in much faster saving and loading, better resistance to tampering, better hiding of metadata and higher resistance to brute forcing. He also fixed a Writer crash related to text formatting of group shapes anchored as character</li>
<li>Mike Kaganski (Collabora) continued polishing the handling and detection of broken ZIP packages (document containers), improved the load time of DOCX files with hundreds of images, fixed issues with incorrect Math formula font size and Escape key not closing formula editor (not in any released version), fixed undoing the first applied cell formatting in Calc, fixed an issue with unwanted extra empty paragraphs appearing after a table before a section break in DOCX files, made line breaking in Writer behave according to Unicode Line Breaking Algorithm rules, fixed an issue with line breaks in justified right aligned text and fixed an issue with applying Calc cell styles. He also fixed many crashes and did many code cleanups and improvements to automated tests</li>
<li>Caolán McNamara (Collabora) optimised Calc’s performance and fixed many issues found by static analysers and fuzzers</li>
<li>Stephan Bergmann (allotropia) worked on the online update feature. He also did many code cleanups and adapted the code to compiler changes</li>
<li>Noel Grandin (Collabora) continued polishing the renovation of bitmap alpha handling. He also did many code cleanups and optimisations</li>
<li>Justin Luth (Collabora) made it so the Select Outline Format split button in the Properties Sidebar deck in Writer now opens Bullets and Numbering dialog and its Outline tab, if you click on the button part, fixed handling of legacy dropdown fields direct bold and char settings in DOCX and RTF files, fixed a page break issues in RTF import, made it so there is no longer a possibility to get into a restart/reinstall loop after installing an extension and fixed an issue with losing selection in Writer after right-clicking the last half character</li>
<li>Michael Weghorn (TDF) made it so listboxes don’t take mouse wheel input, if mouse is not positioned over them and fixed accessibility issues in areas such as heading levels and checkable items. He also did many updates and cleanups to the LibreOffice Android Viewer code</li>
<li>Balázs Varga (allotropia) fixed an issue causing a huge number of unwanted master slides appearing in PPTX import and continued working on proper indications for locked down items in Options</li>
<li>Patrick Luby (NeoOffice) continued improving the scrolling performance on macOS, fixed an issue causing unwanted horizontal scrolling in Calc on macOS, eliminated flickering upon window resizing in macOS with Skia/Metal and fixed clipboard contents causing trouble with clipboard recorders on macOS. He also fixed some macOS crashes</li>
<li>Jim Raykowski made comment threads appear grouped in the Navigator, made images with broken links easier to find in the Navigator and implemented a feature to identify the objects in a layer by hovering with the mouse over layer tabs</li>
<li>Sarper Akdemir (allotropia) added an option to disable active content such as DDE commands and OLE objects</li>
<li>Christian Lohmaier (TDF) fixed a Windows AARCH64 build issue</li>
<li>Chris Sherlock refactored text rendering code</li>
<li>Regina Henschel implemented curved connector routing method used in OOXML files</li>
<li>Sahil Gautam continued polishing the feature for highlighting the current row and column in spreadsheets</li>
<li>Irgaliev Amin improved math formula compatibility with Microsoft Office</li>
<li>Samuel Mehrbrodt (allotropia) did many improvements to the Expert Configuration and macro signature confirmation dialogs and made it so dialog button accelerators work without Alt key on Windows</li>
<li>Thorsten Behrens (allotropia) did code and build cleanups, for example improving build reproducibility</li>
<li>Armin Le Grand (allotropia) continued with the rework of handling attributes and properties</li>
<li>Oliver Specht (CIB) fixed issues with numbering losing its text colour in DOCX import, handling toggled text formatting properties in DOCX files, paragraphs imported without numbering from RTF files, list of Calc comments not updating automatically and checkbox sizes being imported wrong from RTF files</li>
<li>Matt K fixed displaying dialogs in Calc’s full screen mode</li>
<li>Martin Gube added an automated test</li>
<li>Taichi Haradaguchi updated some dependencies</li>
<li>René Engelhard did some build fixes</li>
<li>David Gilbert did code cleanups</li>
<li>Adam Seskunas added an automated test</li>
<li>Andras Timar (Collabora) fixed shape colour not being imported in Visio files</li>
<li>Ricardo Donino ported a Draw Java SDK example to Python</li>
<li>Theppitak Karoonboonyanan added Thai AutoCorrect data</li>
<li>Jonathan Clark made it so BASIC CCur function obeys locale setting</li>
<li>Li Yang improved menu highlight text colour in high contrast mode on Windows</li>
<li>Arnaud Versini did some code cleanups</li>
</ol>
<p>Kudos to <strong>Ilmari Lauhakangas</strong> for helping to elaborate this list.</p>
<h2>Reported Bugs</h2>
<p><strong>453</strong> bugs, <strong>71</strong> of which are enhancements, have been reported by <strong>283</strong> people.</p>
<p><strong>Top 10 Reporters</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Reported_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Reported_Bugs.png" width="300"/></a></p>
<ol>
<li>Gabor Kelemen (allotropia) ( 33 )</li>
<li>Telesto ( 17 )</li>
<li>Jérôme ( 16 )</li>
<li>Eyal Rozenberg ( 11 )</li>
<li>Rafael Lima ( 11 )</li>
<li>Xisco Faulí ( 9 )</li>
<li>Stéphane Guillou (stragu) ( 8 )</li>
<li>Tracey ( 6 )</li>
<li>Regina Henschel ( 6 )</li>
<li>William Friedman ( 6 )</li>
</ol>
<h2>Triaged Bugs</h2>
<p><strong>412</strong> bugs have been triaged by <strong>64</strong> people.</p>
<p><strong>Top 10 Triagers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Triaged_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Triaged_Bugs.png" width="300"/></a></p>
<ol>
<li>Stéphane Guillou (stragu) ( 79 )</li>
<li>m.a.riosv ( 58 )</li>
<li>Heiko Tietze ( 27 )</li>
<li>Buovjaga ( 26 )</li>
<li>Julien Nabet ( 23 )</li>
<li>raal ( 21 )</li>
<li>Xisco Faulí ( 19 )</li>
<li>Dieter ( 18 )</li>
<li>ady ( 18 )</li>
<li>V Stuart Foote ( 14 )</li>
</ol>
<h2>Resolution of resolved bugs</h2>
<p><strong>438</strong> bugs have been set to RESOLVED.<br/>
<img alt="" class="alignnone size-full" height="480" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Resolution_of_resolved_bugs.png" width="640"/><br/>
Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.</p>
<h2>Fixed Bugs</h2>
<p><strong>153</strong> bugs have been fixed by <strong>32</strong> people.</p>
<p><strong>Top 10 Fixers</strong><br/>
<a href="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Fixed_Bugs.png" rel="noopener"><img alt="" class="alignright" height="225" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/Fixed_Bugs.png" width="300"/></a></p>
<ol>
<li>Mike Kaganski ( 14 )</li>
<li>Balazs Varga ( 11 )</li>
<li>Patrick Luby ( 8 )</li>
<li>Julien Nabet ( 8 )</li>
<li>Laurent Balland ( 8 )</li>
<li>Caolán McNamara ( 7 )</li>
<li>Justin Luth ( 6 )</li>
<li>Noel Grandin ( 6 )</li>
<li>Samuel Mehrbrodt ( 6 )</li>
<li>Rafael Lima ( 3 )</li>
</ol>
<p><strong>List of critical bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=154339">tdf#154339</a> Plain text copied to clipboard and pasted to CSV is not saved. ( Thanks to Xisco Fauli )</li>
</ol>
<p><strong>List of high severity bugs fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123396">tdf#123396</a> LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123864">tdf#123864</a> No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=154044">tdf#154044</a> Undoing the first applied cell formatting only works for column A ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=155266">tdf#155266</a> VIEWING / SCROLLING: very laggy jerky scrolling on macOS Intel Writer: scroll lag ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=157915">tdf#157915</a> Error UNO type of C++ when running a Basic macro with instruction commitChanges for org.openoffice.Office.Commands/Execute/Disabled ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158223">tdf#158223</a> Charts: Data range will be deleted when deleting following sheet ( Thanks to Eike Rathke )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158379">tdf#158379</a> Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158551">tdf#158551</a> Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=33201">tdf#33201</a> UI: Highlight (not select) current row and column in spreadsheet ( Thanks to Sahil )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=60558">tdf#60558</a> FILEOPEN DOCX: floating table w/parallel wrap followed by an inline table doesn’t wrap beside in empty space on right ( Thanks to Miklos Vajna )</li>
</ol>
<p><strong>List of crashes fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=140401">tdf#140401</a> LibreOffice crashed due to custom installed fonts ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=156820">tdf#156820</a> Crash when changing color with custom colour picker accessed from overflowing toolbar ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158379">tdf#158379</a> Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158450">tdf#158450</a> Crash when picking custom colour for column separator line ( Thanks to Caolán McNamara )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158505">tdf#158505</a> Crash exporting Writer file with bibliography to PDF ( Thanks to Vojtěch Doležal )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158551">tdf#158551</a> Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158593">tdf#158593</a> Expert dialog crashes when editing locked down “set” configuration ( Thanks to Stephan Bergmann )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158686">tdf#158686</a> FILEOPEN RTF Crash when changing to print preview ( Thanks to Miklos Vajna )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158703">tdf#158703</a> Crash if I use the space bar several times and then punctuation (French Locale) ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158720">tdf#158720</a> Crash for attribute string search (“oo”, “uno”, “ooname”) in the Expert Configuration dialog ( Thanks to Samuel Mehrbrodt )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158794">tdf#158794</a> Pasting a DDE link into a footnote / endnote crashes ( Thanks to Mike Kaganski )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158837">tdf#158837</a> Crash in: int rtl::str::indexOfStr_WithLength(char16_t const*, int, char16_t const*, int) ( Thanks to Noel Grandin )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=158862">tdf#158862</a> LibreOffice crashes when attempting to inspect a UNO object in the Watch Window during debugging after successful initial inspection. ( Thanks to Mike Kaganski )</li>
</ol>
<p><strong>List of old bugs ( more than 4 years old ) fixed</strong></p>
<ol>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=111969">tdf#111969</a> right-click on right half of last character in selection loses the selection (Writer) ( Thanks to Justin Luth )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=117651">tdf#117651</a> AutoCorrect does not change preexisting text inside /slashes/ to italics, nor change -strikethrough- ( Thanks to Matt K )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123396">tdf#123396</a> LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )</li>
<li><a href="https://bugs.documentfoundation.org/show_bug.cgi?id=123864">tdf#123864</a> No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )</li></ol>…</div>
    </content>
    <updated>2024-01-12T12:14:51Z</updated>
    <published>2024-01-12T12:14:51Z</published>
    <category term="reports"/>
    <author>
      <name>x1sc0</name>
    </author>
    <source>
      <id>https://qa.blog.documentfoundation.org/</id>
      <link href="https://qa.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://qa.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Updates from the Quality Assurance community</subtitle>
      <title>LibreOffice QA Blog</title>
      <updated>2024-03-11T12:21:29Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-GB">
    <id>https://qa.blog.documentfoundation.org/?p=2117</id>
    <link href="https://qa.blog.documentfoundation.org/2024/01/09/libreoffice-24-2-rc1-is-available-for-testing/" rel="alternate" type="text/html"/>
    <title>LibreOffice 24.2 RC1 is available for testing</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the <a href="https://wiki.documentfoundation.org/ReleasePlan/24.2">Release Plan</a> ) being LibreOffice 24.2 Release Candidate 1 (RC1) the third pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 Beta1, 158 commits have been submitted to the code repository and <a href="https://wiki.documentfoundation.org/Releases/24.2.0/RC1#List_of_fixed_bugs">59 issues</a> got fixed. Check the <a href="https://wiki.documentfoundation.org/ReleaseNotes/24.2">release notes</a> to find the new features included in this version of LibreOffice.</p>
<p><strong>LibreOffice 24.2 RC1 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.</strong></p>
<p>In case you find any problem in this pre-release, please report it in <a href="https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice&amp;format=guided">Bugzilla</a> ( You just need a legit email account in order to create a new account ).</p>
<p>For help, you can contact the QA Team directly in the <a href="https://web.libera.chat/?settings=#libreoffice-qa">QA IRC channel</a> or via <a href="https://matrix.to/#/#libreoffice-qa:documentfoundation.org">Matrix</a>.</p>
<p>LibreOffice is a volunteer-driven community project, so please help us to test â€“ we appreciate it!</p>
<p>Happy testing!!</p>
<p><a href="https://www.libreoffice.org/download/download-libreoffice/?version=24.2.0"><img alt="Download it now!" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/available242RC1.png"/></a>…</p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="shariff"/><p>LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the <a href="https://wiki.documentfoundation.org/ReleasePlan/24.2">Release Plan</a> ) being LibreOffice 24.2 Release Candidate 1 (RC1) the third pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 Beta1, 158 commits have been submitted to the code repository and <a href="https://wiki.documentfoundation.org/Releases/24.2.0/RC1#List_of_fixed_bugs">59 issues</a> got fixed. Check the <a href="https://wiki.documentfoundation.org/ReleaseNotes/24.2">release notes</a> to find the new features included in this version of LibreOffice.</p>
<p><strong>LibreOffice 24.2 RC1 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.</strong></p>
<p>In case you find any problem in this pre-release, please report it in <a href="https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice&amp;format=guided">Bugzilla</a> ( You just need a legit email account in order to create a new account ).</p>
<p>For help, you can contact the QA Team directly in the <a href="https://web.libera.chat/?settings=#libreoffice-qa">QA IRC channel</a> or via <a href="https://matrix.to/#/#libreoffice-qa:documentfoundation.org">Matrix</a>.</p>
<p>LibreOffice is a volunteer-driven community project, so please help us to test â€“ we appreciate it!</p>
<p>Happy testing!!</p>
<p><a href="https://www.libreoffice.org/download/download-libreoffice/?version=24.2.0"><img alt="Download it now!" src="https://qa.blog.documentfoundation.org/wp-content/uploads/sites/8/2024/01/available242RC1.png"/></a>…</p></div>
    </content>
    <updated>2024-01-09T09:29:16Z</updated>
    <published>2024-01-09T09:29:16Z</published>
    <category term="releases"/>
    <author>
      <name>x1sc0</name>
    </author>
    <source>
      <id>https://qa.blog.documentfoundation.org/</id>
      <link href="https://qa.blog.documentfoundation.org/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://qa.blog.documentfoundation.org/" rel="alternate" type="text/html"/>
      <subtitle>Updates from the Quality Assurance community</subtitle>
      <title>LibreOffice QA Blog</title>
      <updated>2024-03-11T12:21:29Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:vmiklos.hu,2024-01-03:/blog/sw-floattable11.html</id>
    <link href="https://vmiklos.hu/blog/sw-floattable11.html" rel="alternate" type="text/html"/>
    <title>Multi-page floating tables in Writer: tables wrapping tables</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This post is part of a series to describe how Writer now gets a feature to handle tables that are
both floating and span over multiple pages.</p>
<p>This work is primarily for <a href="https://www.collaboraoffice.com/">Collabora Online</a>, but is useful on
the desktop as well. See the <a href="https://vmiklos.hu/blog/sw-floattable10.html">10th post</a> for the previous part.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#motivation" title="Permanent link">¶</a></h2>
<p>Previous posts described the hardest part of multi-page floating tables: making sure that text can
wrap around them and they can split across pages. In this part, we'll look at a case where that
content is not just text, but the wrapping content itself is also a table.</p>
<h2 id="results-so-far">Results so far<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#results-so-far" title="Permanent link">¶</a></h2>
<p>Regarding testing of the floating table feature in general, the core.git repository has 92 files now
which are focusing on correct handling of floating tables (filenames matching
<code>floattable-|floating-table-</code>). This doesn't count cases where the document model is built using C++
code in the memory and then we assert the result of some operation.</p>
<p>Here are some screenshots from the improvements this month:</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-01-floattable-click-correct.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-01-floattable-click-correct.png"><img src="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-01-floattable-click-correct.png"/><figcaption>Improved click handling near the first page of a floating table</figcaption></a></figure><p/>
<p>The first screenshot shows a situation where the mouse cursor is near the right edge of the first
page of a floating table. What used to happen is we found this position close to the invisible
anchor of the floating table on that page, then corrected this position to be at the real anchor on
the last page. In short, the user clicked on one page and we jumped to the last page. This is now
fixed, we notice that part of the floating table is close to the click position and we correct the
cursor to be at the closest position inside the table's content.</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-05-floattable-tablewrap.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-05-floattable-tablewrap.png"><img src="https://share.vmiklos.hu/blog/sw-floattable11/2023-12-05-floattable-tablewrap.png"/><figcaption>A floating table, wrapped by an inline table: old, new and reference rendering</figcaption></a></figure><p/>
<p>The next screenshot shows a floating table where the content wrapping around the table happens to be
an inline table. You can see how such wrapping didn't happen in the past, and the new rendering is
close to the reference now.</p>
<h2 id="how-is-this-implemented">How is this implemented?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#how-is-this-implemented" title="Permanent link">¶</a></h2>
<p>If you would like to know a bit more about how this works, continue reading... :-)</p>
<p>As usual, the high-level problem was addressed by a series of small changes:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/f461853b11439c4e485a79174d34735395e5bf52">sw floattable: fix finding the nearest text in split flys on mouse click</a></li>
<li><a href="https://git.libreoffice.org/core/commit/868140fcc1311259b9d5f666637b33d226511a53">tdf#60558 sw floattable: allow wrap of table on the right of a floattable</a></li>
<li><a href="https://git.libreoffice.org/core/commit/0746d13365139c356eb9d297a358c486bf47d6fb">sw floattable: fix split of anchor text in 2nd half of the paragraph</a></li>
<li><a href="https://git.libreoffice.org/core/commit/d852e27ed205c1a60de0979b80f3861bf93c44ae">sw floattable: fix split of anchor text at para start</a></li>
<li><a href="https://git.libreoffice.org/core/commit/5fec60b4732bdbdb681be08e43a9be47c3bfb320">sw floattable: fix outdated text frame portions after split</a></li>
<li><a href="https://git.libreoffice.org/core/commit/4e8895d3d86db3776c56070c395cd727fd4b9101">sw floattable: disable UI to enable this when anchored inside TextBox</a></li>
<li><a href="https://git.libreoffice.org/core/commit/164fb25f7b2db7d833d6d0f28e49c5cac68426b3">tdf#158686 sw floattable: fix print preview crash</a></li>
</ul>
<h2 id="want-to-start-using-this">Want to start using this?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#want-to-start-using-this" title="Permanent link">¶</a></h2>
<p>You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: <a href="https://www.collaboraoffice.com/collabora-office-latest-snapshot/">try the
unstable snapshot</a>.  Collabora
intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all
of this work will be available in TDF's next release too (24.8).</p></div>
    </summary>
    <updated>2024-01-03T14:15:21Z</updated>
    <published>2024-01-03T14:15:21Z</published>
    <category term="libreoffice"/>
    <category term="en"/>
    <author>
      <name>Miklos Vajna</name>
    </author>
    <source>
      <id>https://vmiklos.hu/blog/</id>
      <link href="https://vmiklos.hu/blog/" rel="alternate" type="text/html"/>
      <link href="https://people.freedesktop.org/~vmiklos/index.rss" rel="self" type="application/rss+xml"/>
      <title>What is Miklos hacking - libreoffice</title>
      <updated>2024-03-01T07:46:39Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-5054960.post-7403307509426331615</id>
    <link href="https://mapopa.blogspot.com/feeds/7403307509426331615/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=5054960&amp;postID=7403307509426331615" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/7403307509426331615" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/7403307509426331615" rel="self" type="application/atom+xml"/>
    <link href="https://mapopa.blogspot.com/2023/12/call-for-testing-firebird-odbc-driver.html" rel="alternate" title="Call For Testing Firebird ODBC Driver for Firebird 3.x" type="text/html"/>
    <title>Call For Testing Firebird ODBC Driver for Firebird 3.x</title>
    <summary>The new version of Firebird ODBC driver is in Beta stage now. Version 3.0.0 Beta is available for testing on Windows. It works only with Firebird 3+ , and requires fbclient.dll from Firebird 3 or above.https://github.com/FirebirdSQL/firebird-odbc-driver/wikiPlease download, test, and report any issues!Issues can be reported here: https://github.com/FirebirdSQL/firebird-odbc-driver/issuesOriginal</summary>
    <updated>2023-12-18T19:20:22Z</updated>
    <published>2023-12-18T19:17:00Z</published>
    <author>
      <name>Popa Adrian Marius</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/09862886782232467681</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-5054960</id>
      <category term="ubuntu"/>
      <category term="firebird"/>
      <category term="debian"/>
      <category term="ubuntu hardy heron"/>
      <category term="ubuntu intrepid ibex"/>
      <category term="webkit"/>
      <category term="ubuntu jaunty"/>
      <category term="linux"/>
      <category term="nginx"/>
      <category term="firefox 3.0"/>
      <category term="free pascal"/>
      <category term="android"/>
      <category term="arora"/>
      <category term="cake php"/>
      <category term="ffmpeg"/>
      <category term="git"/>
      <category term="lazarus"/>
      <category term="cloudbook"/>
      <category term="everex"/>
      <category term="kernel vanilla"/>
      <category term="kvm"/>
      <category term="QEMU"/>
      <category term="kernel"/>
      <category term="php"/>
      <category term="qt4.5"/>
      <category term="vlc"/>
      <category term="firebird 2.1"/>
      <category term="firebird 2.5"/>
      <category term="flamerobin"/>
      <category term="kernel 2.6.27"/>
      <category term="mysql"/>
      <category term="netbooks"/>
      <category term="php 5"/>
      <category term="php5"/>
      <category term="python"/>
      <category term="ubuntu gutsy"/>
      <category term="vlc nightly"/>
      <category term="vlc streaming"/>
      <category term="vmware"/>
      <category term="windows"/>
      <category term="goodbye-microsoft"/>
      <category term="linux 0.0.1"/>
      <category term="microsoft"/>
      <category term="mplayer"/>
      <category term="qmail"/>
      <category term="qt"/>
      <category term="ubuntu server"/>
      <category term="virtualbox"/>
      <category term="youtube"/>
      <category term="3gp"/>
      <category term="Haikuos"/>
      <category term="MOTU"/>
      <category term="blog tutorial"/>
      <category term="c#"/>
      <category term="compiz"/>
      <category term="gutsy"/>
      <category term="ie6"/>
      <category term="jeos"/>
      <category term="mercurial"/>
      <category term="mozilla"/>
      <category term="ogg"/>
      <category term="oo pascal"/>
      <category term="pdo"/>
      <category term="perl"/>
      <category term="ror"/>
      <category term="ruby"/>
      <category term="upgrade"/>
      <category term="vanilla"/>
      <category term="Romania"/>
      <category term="Xc3028"/>
      <category term="acpi"/>
      <category term="amd"/>
      <category term="amd64"/>
      <category term="amr"/>
      <category term="android-x86"/>
      <category term="apc"/>
      <category term="apt"/>
      <category term="asus"/>
      <category term="c++"/>
      <category term="cakephp"/>
      <category term="chrome"/>
      <category term="clang++"/>
      <category term="delphi"/>
      <category term="delphi programming"/>
      <category term="dosemu"/>
      <category term="eclipse"/>
      <category term="eliberatica"/>
      <category term="error"/>
      <category term="ext4"/>
      <category term="feisty"/>
      <category term="firebird build"/>
      <category term="firebug"/>
      <category term="firefox"/>
      <category term="firefox 2.0"/>
      <category term="flash"/>
      <category term="flv live streaming"/>
      <category term="google"/>
      <category term="google app"/>
      <category term="gsoc2015"/>
      <category term="hardy"/>
      <category term="ie7"/>
      <category term="ie8"/>
      <category term="inbox"/>
      <category term="jabber"/>
      <category term="java"/>
      <category term="jaws"/>
      <category term="kde4.2"/>
      <category term="kernel 2.6.28"/>
      <category term="kubuntu"/>
      <category term="lamp"/>
      <category term="libreoffice"/>
      <category term="llvm"/>
      <category term="mingw"/>
      <category term="mysql2firebird"/>
      <category term="nvidia drivers 180"/>
      <category term="opengl rocks"/>
      <category term="oracle"/>
      <category term="pascal"/>
      <category term="php6"/>
      <category term="postgresql"/>
      <category term="qemu manager"/>
      <category term="qt4"/>
      <category term="quake"/>
      <category term="reea.net"/>
      <category term="samba"/>
      <category term="sid"/>
      <category term="skype"/>
      <category term="svn"/>
      <category term="theora"/>
      <category term="thunderbird"/>
      <category term="turboc 2.0"/>
      <category term="ubuntu 6.10 live cd"/>
      <category term="v4l"/>
      <category term="via"/>
      <category term="webgl"/>
      <category term="webkitgtk"/>
      <category term="wine"/>
      <category term="wordpress"/>
      <category term="wubi"/>
      <category term="x264"/>
      <category term="xmms"/>
      <category term="xul"/>
      <category term="#LazarusBook #chapter1"/>
      <category term="#LazarusBook #chapter2"/>
      <category term="#firebird"/>
      <category term="#gsoc2015"/>
      <category term="#libreoffice"/>
      <category term="-fPIC"/>
      <category term=".forward"/>
      <category term="/etc"/>
      <category term="2g2"/>
      <category term="3d rage pro"/>
      <category term="AppVeyor"/>
      <category term="BSD"/>
      <category term="Beer facts"/>
      <category term="Chris Rock"/>
      <category term="Ganymede"/>
      <category term="HowTo"/>
      <category term="LISP"/>
      <category term="LinkedIn"/>
      <category term="Lubuntu"/>
      <category term="Master Of The Universe"/>
      <category term="Parangelion 2009"/>
      <category term="RMS. GNU"/>
      <category term="SQL:2003"/>
      <category term="Stallman"/>
      <category term="Transport Tycoon Deluxe"/>
      <category term="WebPositive"/>
      <category term="X Forward"/>
      <category term="abrowser"/>
      <category term="activerecord"/>
      <category term="adodb"/>
      <category term="aircrack-ng"/>
      <category term="ansi c"/>
      <category term="apache"/>
      <category term="apache 2.2"/>
      <category term="apparmor"/>
      <category term="appliance"/>
      <category term="atheros"/>
      <category term="ati"/>
      <category term="audacious"/>
      <category term="avant-window-navigator"/>
      <category term="batman"/>
      <category term="bazaar"/>
      <category term="benchmarks"/>
      <category term="bind9"/>
      <category term="bochs"/>
      <category term="bonie++"/>
      <category term="bookmarks"/>
      <category term="borkstation"/>
      <category term="borland"/>
      <category term="boston"/>
      <category term="boxlinks"/>
      <category term="bug"/>
      <category term="bugzilla"/>
      <category term="bush"/>
      <category term="buttons"/>
      <category term="c api"/>
      <category term="cache control"/>
      <category term="cacti"/>
      <category term="cast"/>
      <category term="cbq"/>
      <category term="centos"/>
      <category term="cfq"/>
      <category term="cgi"/>
      <category term="chromium"/>
      <category term="claud book"/>
      <category term="claws"/>
      <category term="clipse"/>
      <category term="cms"/>
      <category term="composite"/>
      <category term="coreutils"/>
      <category term="cpp"/>
      <category term="cpus"/>
      <category term="crashkernel"/>
      <category term="crosscompiling"/>
      <category term="csplit"/>
      <category term="css"/>
      <category term="customize"/>
      <category term="cvs"/>
      <category term="cx23885"/>
      <category term="dark"/>
      <category term="dark silhouettes"/>
      <category term="date"/>
      <category term="dbd-interbase"/>
      <category term="debian arm"/>
      <category term="debian experimental"/>
      <category term="debian stable"/>
      <category term="dell vostro"/>
      <category term="designos"/>
      <category term="devuan"/>
      <category term="distcc"/>
      <category term="distributedssh"/>
      <category term="disturbed monkeys"/>
      <category term="django"/>
      <category term="dmesg"/>
      <category term="dns"/>
      <category term="doom"/>
      <category term="dosbox"/>
      <category term="dot-forward"/>
      <category term="dovecot"/>
      <category term="dream htc"/>
      <category term="drm"/>
      <category term="dstat"/>
      <category term="du"/>
      <category term="dual display"/>
      <category term="dyndns"/>
      <category term="ecli"/>
      <category term="eeexubuntu"/>
      <category term="egit"/>
      <category term="eog"/>
      <category term="epiphany"/>
      <category term="evolution"/>
      <category term="example"/>
      <category term="ext3"/>
      <category term="extract"/>
      <category term="fail"/>
      <category term="fastcgi"/>
      <category term="fbcon 2010"/>
      <category term="fbexport"/>
      <category term="festy fawn"/>
      <category term="final"/>
      <category term="firebird 2.0"/>
      <category term="firebird 3.0"/>
      <category term="firebird conference"/>
      <category term="firebirdsql"/>
      <category term="fireruby"/>
      <category term="flamerobin 0.8.5"/>
      <category term="flamerobin 0.9.0"/>
      <category term="flaps"/>
      <category term="flash 64"/>
      <category term="flash10"/>
      <category term="flash64"/>
      <category term="fleps"/>
      <category term="fpc"/>
      <category term="fpc 2.2.x"/>
      <category term="fpm"/>
      <category term="frames"/>
      <category term="free time"/>
      <category term="freebsd"/>
      <category term="freemind"/>
      <category term="fuse"/>
      <category term="g++"/>
      <category term="gbox"/>
      <category term="geek pr0n"/>
      <category term="gems"/>
      <category term="gigabyte"/>
      <category term="gingerbread"/>
      <category term="glibc"/>
      <category term="gmail.com"/>
      <category term="gnome"/>
      <category term="gnome-gegl2"/>
      <category term="gnu"/>
      <category term="good pr"/>
      <category term="gp3"/>
      <category term="gpc3"/>
      <category term="grub"/>
      <category term="grub2"/>
      <category term="gsl"/>
      <category term="gtk"/>
      <category term="gwibber"/>
      <category term="gzip"/>
      <category term="happy birthday"/>
      <category term="haxors"/>
      <category term="hosting"/>
      <category term="hp 4000"/>
      <category term="htb"/>
      <category term="htbtools"/>
      <category term="html5"/>
      <category term="i386"/>
      <category term="ibase"/>
      <category term="iceweasel"/>
      <category term="icq"/>
      <category term="icu"/>
      <category term="inet"/>
      <category term="inmures.ro"/>
      <category term="innodb"/>
      <category term="intel"/>
      <category term="interbase"/>
      <category term="ipython"/>
      <category term="isc"/>
      <category term="itrepid"/>
      <category term="jaun"/>
      <category term="java script"/>
      <category term="jdbc"/>
      <category term="joins"/>
      <category term="jquery"/>
      <category term="jre6"/>
      <category term="json"/>
      <category term="kFreeBSD"/>
      <category term="kde4"/>
      <category term="kernel 2.5.x"/>
      <category term="kernel 2.6.26"/>
      <category term="kernel 2.6.30"/>
      <category term="kernel 2.6.x"/>
      <category term="kexec"/>
      <category term="killie"/>
      <category term="komodo"/>
      <category term="komposer"/>
      <category term="konqueror"/>
      <category term="kvm-linux"/>
      <category term="lazarus 0.9.26"/>
      <category term="leadtek pvr2200"/>
      <category term="lemp"/>
      <category term="lenny"/>
      <category term="libdbi"/>
      <category term="libdbi-drivers"/>
      <category term="libvirt"/>
      <category term="libvirt-manager"/>
      <category term="lighttpd"/>
      <category term="linus"/>
      <category term="linus torvalds"/>
      <category term="linux 3.x.x"/>
      <category term="linuz"/>
      <category term="load balancer"/>
      <category term="locales"/>
      <category term="locked"/>
      <category term="lug mures"/>
      <category term="lulu.com"/>
      <category term="lwn"/>
      <category term="lxde"/>
      <category term="mach64"/>
      <category term="madwifi"/>
      <category term="man"/>
      <category term="matrix"/>
      <category term="mcrypt"/>
      <category term="mdb2"/>
      <category term="memcache"/>
      <category term="mencode"/>
      <category term="mencoder"/>
      <category term="merge"/>
      <category term="migrate ext3 to ext4"/>
      <category term="mod_expires"/>
      <category term="modules"/>
      <category term="monitor"/>
      <category term="mono"/>
      <category term="mono 2.0"/>
      <category term="mono 2.6"/>
      <category term="moonlight"/>
      <category term="movable type"/>
      <category term="mp3"/>
      <category term="mp4"/>
      <category term="mta"/>
      <category term="music tracker"/>
      <category term="my$QL"/>
      <category term="nat"/>
      <category term="net"/>
      <category term="nginix"/>
      <category term="nmap"/>
      <category term="nokia"/>
      <category term="nokia 810"/>
      <category term="non3d"/>
      <category term="noop"/>
      <category term="nouveau"/>
      <category term="nsfw"/>
      <category term="openchrome"/>
      <category term="opengl"/>
      <category term="openoffice 3.0"/>
      <category term="openorrifice"/>
      <category term="openssh"/>
      <category term="openssl"/>
      <category term="openttd"/>
      <category term="oracle sux"/>
      <category term="oszoo"/>
      <category term="oxygen"/>
      <category term="pacpl"/>
      <category term="panoramic view"/>
      <category term="parrot 0.6.3"/>
      <category term="patents"/>
      <category term="pda"/>
      <category term="perl6"/>
      <category term="phenom x3"/>
      <category term="php 4"/>
      <category term="php 5.3"/>
      <category term="php ide"/>
      <category term="php.net"/>
      <category term="php5.3"/>
      <category term="phpbb3"/>
      <category term="phpmyfaq"/>
      <category term="pidgin"/>
      <category term="plaboy"/>
      <category term="playogg"/>
      <category term="plumbers"/>
      <category term="pop3"/>
      <category term="postfix"/>
      <category term="powertop"/>
      <category term="prince of persia"/>
      <category term="privoxy"/>
      <category term="pulse"/>
      <category term="pvm"/>
      <category term="pxe"/>
      <category term="pyroom"/>
      <category term="qmailanalog"/>
      <category term="qml"/>
      <category term="qt 4.7"/>
      <category term="qtcreator"/>
      <category term="quake 1"/>
      <category term="raid"/>
      <category term="rails"/>
      <category term="rants"/>
      <category term="reactos"/>
      <category term="recordmydesktop"/>
      <category term="release party"/>
      <category term="reverse"/>
      <category term="rip nokia"/>
      <category term="ripping"/>
      <category term="rtfm"/>
      <category term="rubyforge"/>
      <category term="rubyonfire"/>
      <category term="schedulers"/>
      <category term="scroolkeeper"/>
      <category term="search applicance"/>
      <category term="sed"/>
      <category term="sekrity"/>
      <category term="selinux"/>
      <category term="sendmail"/>
      <category term="sharp"/>
      <category term="shorewall"/>
      <category term="silverlight"/>
      <category term="sis"/>
      <category term="sixcore"/>
      <category term="slackware"/>
      <category term="smbfs"/>
      <category term="snaps"/>
      <category term="snmp"/>
      <category term="snow"/>
      <category term="soap"/>
      <category term="softpedia"/>
      <category term="songbird"/>
      <category term="sourceforge"/>
      <category term="sponsor"/>
      <category term="sql server 2008"/>
      <category term="sqlite"/>
      <category term="ssh"/>
      <category term="ssh tunnel"/>
      <category term="sshfs"/>
      <category term="stable"/>
      <category term="stats"/>
      <category term="streaming"/>
      <category term="subclipse"/>
      <category term="suhosin-patch"/>
      <category term="super classic"/>
      <category term="super server"/>
      <category term="svk"/>
      <category term="sylpheed"/>
      <category term="targu mures"/>
      <category term="tc"/>
      <category term="tcc"/>
      <category term="tccboot"/>
      <category term="tentakel"/>
      <category term="terminal"/>
      <category term="testing"/>
      <category term="tests"/>
      <category term="themes"/>
      <category term="timestamp"/>
      <category term="timstamp"/>
      <category term="tiobe"/>
      <category term="todo reading"/>
      <category term="tor"/>
      <category term="tpch"/>
      <category term="tube"/>
      <category term="turboc"/>
      <category term="tutorial"/>
      <category term="tux sacrifice"/>
      <category term="tuxguitar"/>
      <category term="typo3"/>
      <category term="ubufox"/>
      <category term="ubuntu lite"/>
      <category term="ubuntu live cd"/>
      <category term="ubuntustudio"/>
      <category term="ue4"/>
      <category term="unetbootin"/>
      <category term="unicode"/>
      <category term="unicode art"/>
      <category term="unrealengine"/>
      <category term="use firebird"/>
      <category term="usesql"/>
      <category term="utf art"/>
      <category term="uuid"/>
      <category term="v4l-dvb-experimental"/>
      <category term="v4lctl"/>
      <category term="v8"/>
      <category term="vai"/>
      <category term="vcl4php"/>
      <category term="vederi"/>
      <category term="veto files"/>
      <category term="vista"/>
      <category term="vmstat"/>
      <category term="voodoo"/>
      <category term="vorbis"/>
      <category term="vsftp"/>
      <category term="vulcanians"/>
      <category term="web20"/>
      <category term="webcam"/>
      <category term="why git"/>
      <category term="wibrain"/>
      <category term="windmill"/>
      <category term="winfast 2000 xp global"/>
      <category term="wireless"/>
      <category term="wma"/>
      <category term="worm"/>
      <category term="x4"/>
      <category term="x64"/>
      <category term="x86"/>
      <category term="xawtv"/>
      <category term="xen"/>
      <category term="xfce"/>
      <category term="xfce4"/>
      <category term="xmpp"/>
      <category term="xulrunner"/>
      <category term="zaurus"/>
      <category term="zul"/>
      <author>
        <name>Popa Adrian Marius</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/09862886782232467681</uri>
      </author>
      <link href="https://mapopa.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://mapopa.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Programmer 4 life</subtitle>
      <title>Mariuz's Blog</title>
      <updated>2024-03-13T10:05:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:vmiklos.hu,2023-12-04:/blog/sw-floattable10.html</id>
    <link href="https://vmiklos.hu/blog/sw-floattable10.html" rel="alternate" type="text/html"/>
    <title>Multi-page floating tables in Writer: UI improvements</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This post is part of a series to describe how Writer now gets a feature to handle tables that are
both floating and span over multiple pages.</p>
<p>This work is primarily for <a href="https://www.collaboraoffice.com/">Collabora Online</a>, but is useful on
the desktop as well. See the <a href="https://vmiklos.hu/blog/sw-floattable9.html">9th post</a> for the previous part.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#motivation" title="Permanent link">¶</a></h2>
<p>Previous posts described the hardest part of multi-page floating tables: reading them from
documents, so we layout and render them. In this part, you can read about UI improvements when it
comes to creating, updating and deleting them in Writer.</p>
<h2 id="results-so-far">Results so far<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#results-so-far" title="Permanent link">¶</a></h2>
<p>Regarding testing of the floating table feature in general, the core.git repository has 89 files now which are focusing on correct
handling of floating tables (filenames matching <code>floattable-|floating-table-</code>). This doesn't count
cases where the document model is built using C++ code in the memory and then we assert the result
of some operation.</p>
<p>Here are some screenshots from the improvements this month:</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-13-floattable-lok-insert-ui.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-13-floattable-lok-insert-ui.png"><img src="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-13-floattable-lok-insert-ui.png"/><figcaption>Improved insertion of floating tables</figcaption></a></figure><p/>
<p>The first screenshot shows that the underlying LibreOffice Insert Frame dialog is now async
(compatible with collaborative editing) and is now exposed in the Collabora Online notebookbar.</p>
<p>There were other improvements as well, so in case you select a whole table and insert a new frame,
the result is close to what the DOCX import creates to floating tables. This includes a default
frame width that matches the table width, and also disabling frame borders, since the table can
already have one.</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-21-floattable-lok-edit-delete-ui.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-21-floattable-lok-edit-delete-ui.png"><img src="https://share.vmiklos.hu/blog/sw-floattable10/2023-11-21-floattable-lok-edit-delete-ui.png"/><figcaption>Unfloating a floating table</figcaption></a></figure><p/>
<p>The next screenshot shows an inserted floating table, where the context menu allows updating the
properties of an already inserted floating table, and also allows to delete ("unfloat") it.</p>
<p>Several of these changes are shared improvements between LibreOffice and Collabora Online, so
everyone benefits. For example, inserting a frame when a whole table was selected also cleared the
undo stack, which is now fixed. Or unfloating table was only possible if some part of the table was
clipped, but now this is always possible to do.</p>
<h2 id="how-is-this-implemented">How is this implemented?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#how-is-this-implemented" title="Permanent link">¶</a></h2>
<p>If you would like to know a bit more about how this works, continue reading... :-)</p>
<p>As usual, the high-level problem was addressed by a series of small changes:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/35925357f86e01612df28a092d71b6e216195636">sw floattable: make Insert Frame dialog async and mark it as a jsdialog</a></li>
<li><a href="https://git.libreoffice.org/core/commit/0bf60e32c0ac2bf79fad6c29c39c6f6a3f9ce8e8">tdf#99822 sw floattable: testcase for objects from different cells</a></li>
<li><a href="https://git.libreoffice.org/core/commit/4f1121255ebac035a439d242b47c2f81124418c3">sw floattable, insert UI: fix default frame width when inserting a new one</a></li>
<li><a href="https://git.libreoffice.org/core/commit/0ecb69d53864b582eb59533729ada01d85d383e6">sw floattable, insert UI: inherit fly width from selected table width</a></li>
<li><a href="https://git.libreoffice.org/core/commit/e306352b9ddd8bddfc37f0cfaac078d9260650d6">sw floattable, insert UI: allow direct creation of floating tables</a></li>
<li><a href="https://git.libreoffice.org/core/commit/8d973c5b9405bfa6964d3dfebd0017fd60ec3eca">sw floattable, insert UI: default to at-char for non-split flys</a></li>
<li><a href="https://git.libreoffice.org/core/commit/6c761fa3b40d296444681d8d2f991e5a6b7e5b71">sw floattable, insert UI: fix missing undo/redo</a></li>
<li><a href="https://git.libreoffice.org/core/commit/c1a535ee2db757b2e40683dc918cbad8b7429cfa">sw floattable, insert UI: fix unexpected border and spacing</a></li>
<li><a href="https://git.libreoffice.org/core/commit/bda066a77f4167bf83c0167afb6998c2890e60e0">sw floattable: link ODF proposal</a></li>
<li><a href="https://git.libreoffice.org/core/commit/47d824dd167eb34b08e5aec7141d2d9e6e996b34">tdf#157911 sw floattable: fix inconsistent inferred bottom border on split</a></li>
<li><a href="https://git.libreoffice.org/core/commit/2f42d8acd2d06f848c9e680c42a0f7834a9a641f">sw floattable, delete UI: fix unfloat button for cant-split frames</a></li>
<li><a href="https://git.libreoffice.org/core/commit/871ca5dd73b34086fad1e57d4697f43a6739a11d">sw floattable, delete UI: add an uno command to unfloat frame from context menu</a></li>
<li><a href="https://git.libreoffice.org/core/commit/45a4ed02281a7a8ca52fccf626c792e417c8ef1c">sw floattable, delete UI: fix undo/redo</a></li>
<li><a href="https://git.libreoffice.org/core/commit/223d2fac61e061478721a7a4a89b1362f5037d8f">sw floattable: fix crash by trying harder to split tables</a></li>
<li><a href="https://git.libreoffice.org/core/commit/b1b0cc1b0bb473155b5b089199ca99bb1dc40e42">sw floattable: add per-frame wrap-on-all-pages mode</a></li>
<li><a href="https://git.libreoffice.org/core/commit/a596070f8ac11ed0cd22baf55704037a6b8d9c4d">sw floattable, per-frame wrap-on-all-pages mode: add UNO API</a></li>
<li><a href="https://git.libreoffice.org/core/commit/272c3548c4d2362eb737947c8cbb017e2d55aae1">sw floattable, per-frame wrap-on-all-pages mode: add layout</a></li>
<li><a href="https://git.libreoffice.org/core/commit/7f58b57b47e6642cb9a7aeac48915b30148042d2">sw floattable, per-frame wrap-on-all-pages mode: add ODT filter</a></li>
<li><a href="https://git.libreoffice.org/core/commit/ce2fc5eb29b4e252993b549dee002fa8948c8386">tdf#158341 sw floattable: fix layout loop when fly is below the body frame</a></li>
</ul>
<h2 id="want-to-start-using-this">Want to start using this?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#want-to-start-using-this" title="Permanent link">¶</a></h2>
<p>You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: <a href="https://www.collaboraoffice.com/collabora-office-latest-snapshot/">try the
unstable snapshot</a>.  Collabora
intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all
of this work will be available in TDF's next release too (24.2).</p></div>
    </summary>
    <updated>2023-12-04T15:26:07Z</updated>
    <published>2023-12-04T15:26:07Z</published>
    <category term="libreoffice"/>
    <category term="en"/>
    <author>
      <name>Miklos Vajna</name>
    </author>
    <source>
      <id>https://vmiklos.hu/blog/</id>
      <link href="https://vmiklos.hu/blog/" rel="alternate" type="text/html"/>
      <link href="https://people.freedesktop.org/~vmiklos/index.rss" rel="self" type="application/rss+xml"/>
      <title>What is Miklos hacking - libreoffice</title>
      <updated>2024-03-01T07:46:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://whatofhow.wordpress.com/?p=638</id>
    <link href="https://whatofhow.wordpress.com/2023/11/19/i-like-it-here-can-i-stay/" rel="alternate" type="text/html"/>
    <title>I like it here. Can I stay?</title>
    <summary>(And do you have a vacancy for a back-scrubber?) Thank you, Red Hat, for generously letting me work for so long on stuff that is near and dear to my heart. At the intersection of theory and practice, of compiler technology and the LibreOffice code base. But, to keep doing what I love, I need […]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>(And do you have a vacancy for a back-scrubber?)</p>



<p>Thank you, Red Hat, for generously letting me work for so long on stuff that is near and dear to my heart. At the intersection of theory and practice, of compiler technology and the LibreOffice code base. But, to keep doing what I love, I need to move on.</p>



<p>So, thank you, <a href="https://www.allotropia.de/">allotropia</a>, for having me. I’m excited.</p>



<p>And, above all, thank you, LibreOffice, family of friends. Lets make sure to keep this a happy family, one that Tolstoy would have nothing to write home about. With quarrels and arguments, for sure; feud even. But happy at heart. I wish to keep meeting you all for years to come, virtually, and for a feast at FOSDEM or LOCon. And booze.</p>



<p>To paraphrase <a href="https://hamburger-tafel.de/">Hamburger Tafel</a> (donations needed, btw), “Wir haben LibreOffice noch lange nicht satt.”</p>



<p>Have fun, stay safe, peace,<br/>sberg</p></div>
    </content>
    <updated>2023-11-19T10:58:00Z</updated>
    <published>2023-11-19T10:58:00Z</published>
    <category term="Uncategorized"/>
    <author>
      <name>stbergmann</name>
    </author>
    <source>
      <id>https://whatofhow.wordpress.com</id>
      <logo>https://s0.wp.com/i/buttonw-com.png</logo>
      <link href="https://whatofhow.wordpress.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="https://whatofhow.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://whatofhow.wordpress.com/osd.xml" rel="search" title="The What of How" type="application/opensearchdescription+xml"/>
      <link href="https://whatofhow.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>The What of How</title>
      <updated>2023-11-19T10:58:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-gb">
    <id>https://blog.riemann.cc/digitalisation/2023/11/12/is-developing-word-processing-software-hard</id>
    <link href="https://blog.riemann.cc/digitalisation/2023/11/12/is-developing-word-processing-software-hard/" rel="alternate" title="Is developing word processing software hard?" type="text/html"/>
    <title xml:lang="en-gb">Is developing word processing software hard?</title>
    <content type="xhtml" xml:lang="en-gb"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Hello LibreOffice Planet!</strong></p>

<p>This is my first blog post on the topic of LibreOffice. Let me quickly explain my link to LibreOffice. I work for a data protection authority in the EU and help navigate the digital transformation of our office with about 100 staff members. While many of our partner organisations adopt MicrosoftÂ 365, our <a href="https://edps.europa.eu/press-publications/press-news/press-releases/2023/edps-pilot-use-open-source-software_en">office decided to pilot Nextcloud with Collabora Office Online</a>.</p>

<p>In the future, I want to blog (in my personal capacity) about my thoughts related to the use of alternative word processing software in the public sector in general and in our specific case.</p>

<p>As there are no dedicated resources for training, preparation of templates etc., during the pilot of LibreOffice, the experience so far covers a large spectrum of user satisfaction. Generally, our staff has been spent years of their life using MicrosoftÂ Office and has the expectation that any other software works the same way. If it does not, they send an email to me (best case) or switch back to MicrosoftÂ Office.</p>

<p>During the week, I discussed again some smaller LibreOffice bugs. Then, I showed this weekend some FOSS Blender animated short videos to family members. It seems that Blender is more successful in its domain than LibreOffice. Is that possible? Or are animated short videos just more capturing due to their special effects? ğŸ˜…</p>

<!--more-->

<p>You can watch the 1min Blender animated short movie â€œCRESTâ€� <a href="https://www.youtube.com/watch?v=cBg_rj9eFN8&amp;pp=ygUNYmxlbmRlciBjcmVzdA%3D%3D">on Youtube</a> or the <a href="https://www.youtube.com/watch?v=cBg_rj9eFN8&amp;pp=ygUNYmxlbmRlciBjcmVzdA%3D%3D">making-off</a>. The latter you find here below.</p>



<p>I find it very inspiring to see what talented artists can do with Blender. For my part, I have once installed Blender and deinstalled it. Back then it was not easy to use for people not familiar with video animation software. Blender competes with proprietary software such as <a href="https://www.autodesk.com/products/maya/overview">Maya</a> or <a href="https://www.autodesk.com/products/maya/overview">Cinema 4D</a>. The latter is about 60Â USD per month in the annual subscription plan. Not exactly cheap.</p>

<p>Then, I read in the fediverse about people working with LibreOffice:</p>

<blockquote>
  <p>I just tried to use #LibreOffice #Draw to draw some arrows and boxes onto JPEG images for emphasizing stuff.</p>

  <p>The UX is <em>really</em> bad for somebody not working with Draw all the time.</p>

  <p>Whatever I do, instead of drawing onto the image, the image gets selected instead.</p>

  <p>Could not find any layer-sidebar.</p>

  <p>Could not scale text without starting the â€œCharacter â€¦â€� menu, modifying font size blindly + confirming &gt; just to see its effect and then start all over.</p>

  <p>Dear #FOSS, we really should do better.</p>
</blockquote>

<p>â€” Author <a href="https://graz.social/@publicvoit/111397901465154681">Karl Voit</a> (12 November 2023 at 14:51)</p>

<p>In my past, I have worked on online voting systems. They are not very good yet despite years of efforts. xkcd dedicated <a href="https://xkcd.com/2030/">a comic to voting software</a></p>

<blockquote>
  <p>Elections seem simpleâ€”arenâ€™t they just counting? But they have
a unique, challenging combination of security and privacy requirements.
The stakes are high; the context is adversarial; the electorate
needs to be convinced that the results are correct; and the secrecy of
the ballot must be ensured. And they have practical constraints: time
is of the essence, and voting systems need to be affordable and maintainable,
and usable by voters, election officials, and pollworkers.</p>
</blockquote>

<p>â€” Author <a href="https://mbernhard.com/papers/voting-sok.pdf">Matthew Bernhard</a> et al. in their paper <a href="https://mbernhard.com/papers/voting-sok.pdf">Public Evidence from Secret Ballots</a> from 2017</p>

<p><strong>What is the unique challenge of developing word processing software?</strong> Happy to hear back from you in the blog comments or on the companion <a href="https://chaos.social/@rriemann/111400391938326802">fediverse post</a>!</p></div>
    </content>
    <updated>2023-11-12T22:20:00Z</updated>
    <published>2023-11-12T22:20:00Z</published>
    <category term="digitalisation"/>
    <category term="libreoffice"/>
    <author>
      <name>Robert Riemann</name>
      <email>robert@riemann.cc</email>
    </author>
    <source>
      <id>https://blog.riemann.cc/feed/by_tag/libreoffice.xml</id>
      <author>
        <name>Robert Riemann</name>
        <email>robert@riemann.cc</email>
      </author>
      <link href="https://blog.riemann.cc/feed/by_tag/libreoffice.xml" rel="self" type="application/atom+xml"/>
      <link href="https://blog.riemann.cc/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en-gb">Personal Blog of Robert Riemann, PhD.</subtitle>
      <title xml:lang="en-gb">~rriemann</title>
      <updated>2024-02-27T17:42:59Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:vmiklos.hu,2023-11-07:/blog/sw-floattable9.html</id>
    <link href="https://vmiklos.hu/blog/sw-floattable9.html" rel="alternate" type="text/html"/>
    <title>Multi-page floating tables in Writer: wrap on all pages</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This post is part of a series to describe how Writer now gets a feature to handle tables that are
both floating and span over multiple pages.</p>
<p>This work is primarily for <a href="https://www.collaboraoffice.com/">Collabora Online</a>, but is useful on
the desktop as well. See the <a href="https://vmiklos.hu/blog/sw-floattable8.html">8th post</a> for the previous part.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#motivation" title="Permanent link">¶</a></h2>
<p>Multi-page floating tables always wrapped their anchor text only on the last page, to be compatible
with Word's default behavior. There is a special flag in DOCX files to wrap on all pages, though. In
this part, you can read about handling of this flag in Writer.</p>
<h2 id="results-so-far">Results so far<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#results-so-far" title="Permanent link">¶</a></h2>
<p>Regarding testing of the floating table feature in general, the core.git repository has 84 files now which are focusing on correct
handling of floating tables (filenames matching <code>floattable-|floating-table-</code>). This doesn't count
cases where the document model is built using C++ code in the memory and then we assert the result
of some operation.</p>
<p>Here are some screenshots from the fixes this month:</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-03-floattable-nested3.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-03-floattable-nested3.png"><img src="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-03-floattable-nested3.png"/><figcaption>Old, new and reference rendering of a 3 nested, multi-page floating tables</figcaption></a></figure><p/>
<p>The first screenshot shows a case where multi-page floating tables are nested. For this document, we
not only have an inner and an out table, but we also have a middle one, giving us 3 nesting tables.
Some of the inner table frames had a bad position, leading to overlapping text, now fixed.</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-16-floattable-wraponallpages.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-16-floattable-wraponallpages.png"><img src="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-16-floattable-wraponallpages.png"/><figcaption>Old, new and reference rendering of wrapping on all pages</figcaption></a></figure><p/>
<p>The next screenshot shows the case where the magic <code>allowTextAfterFloatingTableBreak</code> flag is set.
We used to wrap content of the anchor only on the last page, unconditionally. Now we either wrap on
the last page (default) or on all pages (when this flag is present).</p>
<p><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-24-floattable-overlap.png"/></p><figure><a href="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-24-floattable-overlap.png"><img src="https://share.vmiklos.hu/blog/sw-floattable9/2023-10-24-floattable-overlap.png"/><figcaption>Old, new and reference rendering of overlapping floating tables.</figcaption></a></figure><p/>
<p>The last screenshot shows a document full of floating tables. These used to be inline ones, and then
they could not overlap by definition, but now extra effort was needed to position them in a way that
no overlap happens between the tables. Now our render result matches Word.</p>
<h2 id="how-is-this-implemented">How is this implemented?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#how-is-this-implemented" title="Permanent link">¶</a></h2>
<p>If you would like to know a bit more about how this works, continue reading... :-)</p>
<p>As usual, the high-level problem was addressed by a series of small changes:</p>
<ul>
<li><a href="https://git.libreoffice.org/core/commit/695390b08799af34b393c81c834d615bea330d89">tdf#126449 sw floattable: fix too small height of non-last anchors</a></li>
<li><a href="https://git.libreoffice.org/core/commit/89a75cd194371002247d0138e759835bc673f7b0">tdf#126449 sw floattable: DOC import: handle inner floating table</a></li>
<li><a href="https://git.libreoffice.org/core/commit/2d6f48d53674ee85179ec8cee8648830207200a2">sw floattable, crashtesting: fix PDF export of fdo56210-3.docx</a></li>
<li><a href="https://git.libreoffice.org/core/commit/d530651e4e70febb1046727e85a8edcda610d722">crashtesting: fix PDF export of fdo45193-1.docx</a></li>
<li><a href="https://git.libreoffice.org/core/commit/4a5fb05d5e2448453477ce14862a8cf9846ecb49">tdf#157571 sw floattable: fix incorrect blank space after table-in-shape</a></li>
<li><a href="https://git.libreoffice.org/core/commit/6b9378154f9b504b9e924fe4565df444786e7d73">sw floattable, crashtesting: fix PDF export of ooo91654-1.doc</a></li>
<li><a href="https://git.libreoffice.org/core/commit/5b9249e950165015ba57cc2c0503381df9751bf6">sw floattable: add an AllowTextAfterFloatingTableBreak compat flag</a></li>
<li><a href="https://git.libreoffice.org/core/commit/7d7ca347fafa7a06094b00e8fb0d0452c4c81366">sw floattable, wrap on all pages: add layout</a></li>
<li><a href="https://git.libreoffice.org/core/commit/33ade4171a1a443fd24e6463a9eaa279f7d778bb">sw floattable, wrap on all pages: add DOCX filter</a></li>
<li><a href="https://git.libreoffice.org/core/commit/626fe9ab5ebebc4ef36e35f4aa597c03a3564d22">tdf#157573 sw floattable: fix incorrect lack of left margin after table</a></li>
<li><a href="https://git.libreoffice.org/core/commit/65f508b44ecbc20c8bd5172d1656639f686730ff">tdf#157573 sw floattable: add missing testcase</a></li>
<li><a href="https://git.libreoffice.org/core/commit/8e03dfd6a4bff4eabf779ace9b758b49cf80f8ba">tdf#157590 sw floattable: avoid hang in the nested + row span case</a></li>
<li><a href="https://git.libreoffice.org/core/commit/5e7f7917fd589f661982d481a45bf84337e4c03c">sw floattable: remove now unused FloattableNomargins compat flag</a></li>
<li><a href="https://git.libreoffice.org/core/commit/612629f4a81acd7b851b7eccc97aba9a5915d13c">tdf#155040 sw floattable, RTF: fix table is overlapped by subsequent inline one</a></li>
<li><a href="https://git.libreoffice.org/core/commit/9704f61982360ce35983a61cca3fd00bbdf51ab6">tdf#155682 sw floattable: fix DOCX with big pictures causes endless loop</a></li>
<li><a href="https://git.libreoffice.org/core/commit/d6527f127622f23ac529ce667fac5ff69ea33ea4">Related: tdf#157590 sw floattable: avoid a bit of not needed work</a></li>
<li><a href="https://git.libreoffice.org/core/commit/8ad82fc115a337604c064d37adfffcc81440248e">sw floattable: fix nullptr deref in TableManager::endLevel()</a></li>
<li><a href="https://git.libreoffice.org/core/commit/435f1aadf7dd8087a8997924bedfccff0f496ba2">tdf#99822 sw floattable: allow nomimal overlap of objects from different cells</a></li>
</ul>
<h2 id="want-to-start-using-this">Want to start using this?<a class="headerlink" href="https://people.freedesktop.org/~vmiklos/index.rss#want-to-start-using-this" title="Permanent link">¶</a></h2>
<p>You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: <a href="https://www.collaboraoffice.com/collabora-office-latest-snapshot/">try the
unstable snapshot</a>.  Collabora
intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all
of this work will be available in TDF's next release too (24.2).</p></div>
    </summary>
    <updated>2023-11-07T13:35:34Z</updated>
    <published>2023-11-07T13:35:34Z</published>
    <category term="libreoffice"/>
    <category term="en"/>
    <author>
      <name>Miklos Vajna</name>
    </author>
    <source>
      <id>https://vmiklos.hu/blog/</id>
      <link href="https://vmiklos.hu/blog/" rel="alternate" type="text/html"/>
      <link href="https://people.freedesktop.org/~vmiklos/index.rss" rel="self" type="application/rss+xml"/>
      <title>What is Miklos hacking - libreoffice</title>
      <updated>2024-03-01T07:46:39Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-5054960.post-4700163189754416965</id>
    <link href="https://mapopa.blogspot.com/feeds/4700163189754416965/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=5054960&amp;postID=4700163189754416965" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/4700163189754416965" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/4700163189754416965" rel="self" type="application/atom+xml"/>
    <link href="https://mapopa.blogspot.com/2023/11/valgrind-322-is-available.html" rel="alternate" title="Valgrind 3.22 is available" type="text/html"/>
    <title>Valgrind 3.22 is available</title>
    <summary>News via reddit : "We are pleased to announce a new release of Valgrind, version 3.22.0,available from https://valgrind.org/downloads/current.html.See the release notes below for details of changes.Our thanks to all those who contribute to Valgrind's development. Thisrelease represents a great deal of time, energy and effort on the partof many people.Happy and productive debugging and</summary>
    <updated>2023-11-01T14:01:29Z</updated>
    <published>2023-11-01T14:01:00Z</published>
    <author>
      <name>Popa Adrian Marius</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/09862886782232467681</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-5054960</id>
      <category term="ubuntu"/>
      <category term="firebird"/>
      <category term="debian"/>
      <category term="ubuntu hardy heron"/>
      <category term="ubuntu intrepid ibex"/>
      <category term="webkit"/>
      <category term="ubuntu jaunty"/>
      <category term="linux"/>
      <category term="nginx"/>
      <category term="firefox 3.0"/>
      <category term="free pascal"/>
      <category term="android"/>
      <category term="arora"/>
      <category term="cake php"/>
      <category term="ffmpeg"/>
      <category term="git"/>
      <category term="lazarus"/>
      <category term="cloudbook"/>
      <category term="everex"/>
      <category term="kernel vanilla"/>
      <category term="kvm"/>
      <category term="QEMU"/>
      <category term="kernel"/>
      <category term="php"/>
      <category term="qt4.5"/>
      <category term="vlc"/>
      <category term="firebird 2.1"/>
      <category term="firebird 2.5"/>
      <category term="flamerobin"/>
      <category term="kernel 2.6.27"/>
      <category term="mysql"/>
      <category term="netbooks"/>
      <category term="php 5"/>
      <category term="php5"/>
      <category term="python"/>
      <category term="ubuntu gutsy"/>
      <category term="vlc nightly"/>
      <category term="vlc streaming"/>
      <category term="vmware"/>
      <category term="windows"/>
      <category term="goodbye-microsoft"/>
      <category term="linux 0.0.1"/>
      <category term="microsoft"/>
      <category term="mplayer"/>
      <category term="qmail"/>
      <category term="qt"/>
      <category term="ubuntu server"/>
      <category term="virtualbox"/>
      <category term="youtube"/>
      <category term="3gp"/>
      <category term="Haikuos"/>
      <category term="MOTU"/>
      <category term="blog tutorial"/>
      <category term="c#"/>
      <category term="compiz"/>
      <category term="gutsy"/>
      <category term="ie6"/>
      <category term="jeos"/>
      <category term="mercurial"/>
      <category term="mozilla"/>
      <category term="ogg"/>
      <category term="oo pascal"/>
      <category term="pdo"/>
      <category term="perl"/>
      <category term="ror"/>
      <category term="ruby"/>
      <category term="upgrade"/>
      <category term="vanilla"/>
      <category term="Romania"/>
      <category term="Xc3028"/>
      <category term="acpi"/>
      <category term="amd"/>
      <category term="amd64"/>
      <category term="amr"/>
      <category term="android-x86"/>
      <category term="apc"/>
      <category term="apt"/>
      <category term="asus"/>
      <category term="c++"/>
      <category term="cakephp"/>
      <category term="chrome"/>
      <category term="clang++"/>
      <category term="delphi"/>
      <category term="delphi programming"/>
      <category term="dosemu"/>
      <category term="eclipse"/>
      <category term="eliberatica"/>
      <category term="error"/>
      <category term="ext4"/>
      <category term="feisty"/>
      <category term="firebird build"/>
      <category term="firebug"/>
      <category term="firefox"/>
      <category term="firefox 2.0"/>
      <category term="flash"/>
      <category term="flv live streaming"/>
      <category term="google"/>
      <category term="google app"/>
      <category term="gsoc2015"/>
      <category term="hardy"/>
      <category term="ie7"/>
      <category term="ie8"/>
      <category term="inbox"/>
      <category term="jabber"/>
      <category term="java"/>
      <category term="jaws"/>
      <category term="kde4.2"/>
      <category term="kernel 2.6.28"/>
      <category term="kubuntu"/>
      <category term="lamp"/>
      <category term="libreoffice"/>
      <category term="llvm"/>
      <category term="mingw"/>
      <category term="mysql2firebird"/>
      <category term="nvidia drivers 180"/>
      <category term="opengl rocks"/>
      <category term="oracle"/>
      <category term="pascal"/>
      <category term="php6"/>
      <category term="postgresql"/>
      <category term="qemu manager"/>
      <category term="qt4"/>
      <category term="quake"/>
      <category term="reea.net"/>
      <category term="samba"/>
      <category term="sid"/>
      <category term="skype"/>
      <category term="svn"/>
      <category term="theora"/>
      <category term="thunderbird"/>
      <category term="turboc 2.0"/>
      <category term="ubuntu 6.10 live cd"/>
      <category term="v4l"/>
      <category term="via"/>
      <category term="webgl"/>
      <category term="webkitgtk"/>
      <category term="wine"/>
      <category term="wordpress"/>
      <category term="wubi"/>
      <category term="x264"/>
      <category term="xmms"/>
      <category term="xul"/>
      <category term="#LazarusBook #chapter1"/>
      <category term="#LazarusBook #chapter2"/>
      <category term="#firebird"/>
      <category term="#gsoc2015"/>
      <category term="#libreoffice"/>
      <category term="-fPIC"/>
      <category term=".forward"/>
      <category term="/etc"/>
      <category term="2g2"/>
      <category term="3d rage pro"/>
      <category term="AppVeyor"/>
      <category term="BSD"/>
      <category term="Beer facts"/>
      <category term="Chris Rock"/>
      <category term="Ganymede"/>
      <category term="HowTo"/>
      <category term="LISP"/>
      <category term="LinkedIn"/>
      <category term="Lubuntu"/>
      <category term="Master Of The Universe"/>
      <category term="Parangelion 2009"/>
      <category term="RMS. GNU"/>
      <category term="SQL:2003"/>
      <category term="Stallman"/>
      <category term="Transport Tycoon Deluxe"/>
      <category term="WebPositive"/>
      <category term="X Forward"/>
      <category term="abrowser"/>
      <category term="activerecord"/>
      <category term="adodb"/>
      <category term="aircrack-ng"/>
      <category term="ansi c"/>
      <category term="apache"/>
      <category term="apache 2.2"/>
      <category term="apparmor"/>
      <category term="appliance"/>
      <category term="atheros"/>
      <category term="ati"/>
      <category term="audacious"/>
      <category term="avant-window-navigator"/>
      <category term="batman"/>
      <category term="bazaar"/>
      <category term="benchmarks"/>
      <category term="bind9"/>
      <category term="bochs"/>
      <category term="bonie++"/>
      <category term="bookmarks"/>
      <category term="borkstation"/>
      <category term="borland"/>
      <category term="boston"/>
      <category term="boxlinks"/>
      <category term="bug"/>
      <category term="bugzilla"/>
      <category term="bush"/>
      <category term="buttons"/>
      <category term="c api"/>
      <category term="cache control"/>
      <category term="cacti"/>
      <category term="cast"/>
      <category term="cbq"/>
      <category term="centos"/>
      <category term="cfq"/>
      <category term="cgi"/>
      <category term="chromium"/>
      <category term="claud book"/>
      <category term="claws"/>
      <category term="clipse"/>
      <category term="cms"/>
      <category term="composite"/>
      <category term="coreutils"/>
      <category term="cpp"/>
      <category term="cpus"/>
      <category term="crashkernel"/>
      <category term="crosscompiling"/>
      <category term="csplit"/>
      <category term="css"/>
      <category term="customize"/>
      <category term="cvs"/>
      <category term="cx23885"/>
      <category term="dark"/>
      <category term="dark silhouettes"/>
      <category term="date"/>
      <category term="dbd-interbase"/>
      <category term="debian arm"/>
      <category term="debian experimental"/>
      <category term="debian stable"/>
      <category term="dell vostro"/>
      <category term="designos"/>
      <category term="devuan"/>
      <category term="distcc"/>
      <category term="distributedssh"/>
      <category term="disturbed monkeys"/>
      <category term="django"/>
      <category term="dmesg"/>
      <category term="dns"/>
      <category term="doom"/>
      <category term="dosbox"/>
      <category term="dot-forward"/>
      <category term="dovecot"/>
      <category term="dream htc"/>
      <category term="drm"/>
      <category term="dstat"/>
      <category term="du"/>
      <category term="dual display"/>
      <category term="dyndns"/>
      <category term="ecli"/>
      <category term="eeexubuntu"/>
      <category term="egit"/>
      <category term="eog"/>
      <category term="epiphany"/>
      <category term="evolution"/>
      <category term="example"/>
      <category term="ext3"/>
      <category term="extract"/>
      <category term="fail"/>
      <category term="fastcgi"/>
      <category term="fbcon 2010"/>
      <category term="fbexport"/>
      <category term="festy fawn"/>
      <category term="final"/>
      <category term="firebird 2.0"/>
      <category term="firebird 3.0"/>
      <category term="firebird conference"/>
      <category term="firebirdsql"/>
      <category term="fireruby"/>
      <category term="flamerobin 0.8.5"/>
      <category term="flamerobin 0.9.0"/>
      <category term="flaps"/>
      <category term="flash 64"/>
      <category term="flash10"/>
      <category term="flash64"/>
      <category term="fleps"/>
      <category term="fpc"/>
      <category term="fpc 2.2.x"/>
      <category term="fpm"/>
      <category term="frames"/>
      <category term="free time"/>
      <category term="freebsd"/>
      <category term="freemind"/>
      <category term="fuse"/>
      <category term="g++"/>
      <category term="gbox"/>
      <category term="geek pr0n"/>
      <category term="gems"/>
      <category term="gigabyte"/>
      <category term="gingerbread"/>
      <category term="glibc"/>
      <category term="gmail.com"/>
      <category term="gnome"/>
      <category term="gnome-gegl2"/>
      <category term="gnu"/>
      <category term="good pr"/>
      <category term="gp3"/>
      <category term="gpc3"/>
      <category term="grub"/>
      <category term="grub2"/>
      <category term="gsl"/>
      <category term="gtk"/>
      <category term="gwibber"/>
      <category term="gzip"/>
      <category term="happy birthday"/>
      <category term="haxors"/>
      <category term="hosting"/>
      <category term="hp 4000"/>
      <category term="htb"/>
      <category term="htbtools"/>
      <category term="html5"/>
      <category term="i386"/>
      <category term="ibase"/>
      <category term="iceweasel"/>
      <category term="icq"/>
      <category term="icu"/>
      <category term="inet"/>
      <category term="inmures.ro"/>
      <category term="innodb"/>
      <category term="intel"/>
      <category term="interbase"/>
      <category term="ipython"/>
      <category term="isc"/>
      <category term="itrepid"/>
      <category term="jaun"/>
      <category term="java script"/>
      <category term="jdbc"/>
      <category term="joins"/>
      <category term="jquery"/>
      <category term="jre6"/>
      <category term="json"/>
      <category term="kFreeBSD"/>
      <category term="kde4"/>
      <category term="kernel 2.5.x"/>
      <category term="kernel 2.6.26"/>
      <category term="kernel 2.6.30"/>
      <category term="kernel 2.6.x"/>
      <category term="kexec"/>
      <category term="killie"/>
      <category term="komodo"/>
      <category term="komposer"/>
      <category term="konqueror"/>
      <category term="kvm-linux"/>
      <category term="lazarus 0.9.26"/>
      <category term="leadtek pvr2200"/>
      <category term="lemp"/>
      <category term="lenny"/>
      <category term="libdbi"/>
      <category term="libdbi-drivers"/>
      <category term="libvirt"/>
      <category term="libvirt-manager"/>
      <category term="lighttpd"/>
      <category term="linus"/>
      <category term="linus torvalds"/>
      <category term="linux 3.x.x"/>
      <category term="linuz"/>
      <category term="load balancer"/>
      <category term="locales"/>
      <category term="locked"/>
      <category term="lug mures"/>
      <category term="lulu.com"/>
      <category term="lwn"/>
      <category term="lxde"/>
      <category term="mach64"/>
      <category term="madwifi"/>
      <category term="man"/>
      <category term="matrix"/>
      <category term="mcrypt"/>
      <category term="mdb2"/>
      <category term="memcache"/>
      <category term="mencode"/>
      <category term="mencoder"/>
      <category term="merge"/>
      <category term="migrate ext3 to ext4"/>
      <category term="mod_expires"/>
      <category term="modules"/>
      <category term="monitor"/>
      <category term="mono"/>
      <category term="mono 2.0"/>
      <category term="mono 2.6"/>
      <category term="moonlight"/>
      <category term="movable type"/>
      <category term="mp3"/>
      <category term="mp4"/>
      <category term="mta"/>
      <category term="music tracker"/>
      <category term="my$QL"/>
      <category term="nat"/>
      <category term="net"/>
      <category term="nginix"/>
      <category term="nmap"/>
      <category term="nokia"/>
      <category term="nokia 810"/>
      <category term="non3d"/>
      <category term="noop"/>
      <category term="nouveau"/>
      <category term="nsfw"/>
      <category term="openchrome"/>
      <category term="opengl"/>
      <category term="openoffice 3.0"/>
      <category term="openorrifice"/>
      <category term="openssh"/>
      <category term="openssl"/>
      <category term="openttd"/>
      <category term="oracle sux"/>
      <category term="oszoo"/>
      <category term="oxygen"/>
      <category term="pacpl"/>
      <category term="panoramic view"/>
      <category term="parrot 0.6.3"/>
      <category term="patents"/>
      <category term="pda"/>
      <category term="perl6"/>
      <category term="phenom x3"/>
      <category term="php 4"/>
      <category term="php 5.3"/>
      <category term="php ide"/>
      <category term="php.net"/>
      <category term="php5.3"/>
      <category term="phpbb3"/>
      <category term="phpmyfaq"/>
      <category term="pidgin"/>
      <category term="plaboy"/>
      <category term="playogg"/>
      <category term="plumbers"/>
      <category term="pop3"/>
      <category term="postfix"/>
      <category term="powertop"/>
      <category term="prince of persia"/>
      <category term="privoxy"/>
      <category term="pulse"/>
      <category term="pvm"/>
      <category term="pxe"/>
      <category term="pyroom"/>
      <category term="qmailanalog"/>
      <category term="qml"/>
      <category term="qt 4.7"/>
      <category term="qtcreator"/>
      <category term="quake 1"/>
      <category term="raid"/>
      <category term="rails"/>
      <category term="rants"/>
      <category term="reactos"/>
      <category term="recordmydesktop"/>
      <category term="release party"/>
      <category term="reverse"/>
      <category term="rip nokia"/>
      <category term="ripping"/>
      <category term="rtfm"/>
      <category term="rubyforge"/>
      <category term="rubyonfire"/>
      <category term="schedulers"/>
      <category term="scroolkeeper"/>
      <category term="search applicance"/>
      <category term="sed"/>
      <category term="sekrity"/>
      <category term="selinux"/>
      <category term="sendmail"/>
      <category term="sharp"/>
      <category term="shorewall"/>
      <category term="silverlight"/>
      <category term="sis"/>
      <category term="sixcore"/>
      <category term="slackware"/>
      <category term="smbfs"/>
      <category term="snaps"/>
      <category term="snmp"/>
      <category term="snow"/>
      <category term="soap"/>
      <category term="softpedia"/>
      <category term="songbird"/>
      <category term="sourceforge"/>
      <category term="sponsor"/>
      <category term="sql server 2008"/>
      <category term="sqlite"/>
      <category term="ssh"/>
      <category term="ssh tunnel"/>
      <category term="sshfs"/>
      <category term="stable"/>
      <category term="stats"/>
      <category term="streaming"/>
      <category term="subclipse"/>
      <category term="suhosin-patch"/>
      <category term="super classic"/>
      <category term="super server"/>
      <category term="svk"/>
      <category term="sylpheed"/>
      <category term="targu mures"/>
      <category term="tc"/>
      <category term="tcc"/>
      <category term="tccboot"/>
      <category term="tentakel"/>
      <category term="terminal"/>
      <category term="testing"/>
      <category term="tests"/>
      <category term="themes"/>
      <category term="timestamp"/>
      <category term="timstamp"/>
      <category term="tiobe"/>
      <category term="todo reading"/>
      <category term="tor"/>
      <category term="tpch"/>
      <category term="tube"/>
      <category term="turboc"/>
      <category term="tutorial"/>
      <category term="tux sacrifice"/>
      <category term="tuxguitar"/>
      <category term="typo3"/>
      <category term="ubufox"/>
      <category term="ubuntu lite"/>
      <category term="ubuntu live cd"/>
      <category term="ubuntustudio"/>
      <category term="ue4"/>
      <category term="unetbootin"/>
      <category term="unicode"/>
      <category term="unicode art"/>
      <category term="unrealengine"/>
      <category term="use firebird"/>
      <category term="usesql"/>
      <category term="utf art"/>
      <category term="uuid"/>
      <category term="v4l-dvb-experimental"/>
      <category term="v4lctl"/>
      <category term="v8"/>
      <category term="vai"/>
      <category term="vcl4php"/>
      <category term="vederi"/>
      <category term="veto files"/>
      <category term="vista"/>
      <category term="vmstat"/>
      <category term="voodoo"/>
      <category term="vorbis"/>
      <category term="vsftp"/>
      <category term="vulcanians"/>
      <category term="web20"/>
      <category term="webcam"/>
      <category term="why git"/>
      <category term="wibrain"/>
      <category term="windmill"/>
      <category term="winfast 2000 xp global"/>
      <category term="wireless"/>
      <category term="wma"/>
      <category term="worm"/>
      <category term="x4"/>
      <category term="x64"/>
      <category term="x86"/>
      <category term="xawtv"/>
      <category term="xen"/>
      <category term="xfce"/>
      <category term="xfce4"/>
      <category term="xmpp"/>
      <category term="xulrunner"/>
      <category term="zaurus"/>
      <category term="zul"/>
      <author>
        <name>Popa Adrian Marius</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/09862886782232467681</uri>
      </author>
      <link href="https://mapopa.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://mapopa.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Programmer 4 life</subtitle>
      <title>Mariuz's Blog</title>
      <updated>2024-03-13T10:05:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-699822530207035800.post-814291423019020934</id>
    <link href="https://naruoga-en.blogspot.com/feeds/814291423019020934/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://naruoga-en.blogspot.com/2023/10/louca23-libreoffice-conference-asia-x.html#comment-form" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/699822530207035800/posts/default/814291423019020934" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/699822530207035800/posts/default/814291423019020934" rel="self" type="application/atom+xml"/>
    <link href="https://naruoga-en.blogspot.com/2023/10/louca23-libreoffice-conference-asia-x.html" rel="alternate" title="LOUCA23 (LibreOffice Conference Asia x UbuCon Asia 2023)" type="text/html"/>
    <title>LOUCA23 (LibreOffice Conference Asia x UbuCon Asia 2023)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: left;">Long time no see, readers!  Very sorry for my laziness.</div><div class="separator" style="clear: both; text-align: left;"><br/></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvG-zlVArvU6VCnPaTizYHrpmP7tMfU_oKsFsICwz8QXrcP9LtvYKsyNj_YIxg8-cvuRfVoPjdkimN42y-IJeiesPnfpThyO-AS0n6lgJ6s-eT3S1-vFU5oUfC9omPJtO-ExR8-h2cL_kaFHJzCQTlyWfavnf-xePLu0nGj8Ln1QYBz2D9WRl28bwuWLtr/s5059/all.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvG-zlVArvU6VCnPaTizYHrpmP7tMfU_oKsFsICwz8QXrcP9LtvYKsyNj_YIxg8-cvuRfVoPjdkimN42y-IJeiesPnfpThyO-AS0n6lgJ6s-eT3S1-vFU5oUfC9omPJtO-ExR8-h2cL_kaFHJzCQTlyWfavnf-xePLu0nGj8Ln1QYBz2D9WRl28bwuWLtr/w640-h220/all.jpg" width="640"/></a></div><br/><p>I attended <a href="https://louca.id/">LibreOffice Conference Asia x UbuCon Asia 2023 (LOUCA23)</a> in Surakarta, Indonesia, on October 7~8.</p><p>This was the second time LibreOffice Conference Asia has been held in Tokyo in 2019, as it could not occur due to the COVID-19 pandemic.  UbuCon Asia was first held online in 2021, and the first in-person event was held in Seoul, Korea in 2022, and this still was the second in-person event.</p><p>I was burnt out by the pandemic and had stopped most of my OSS activities, but I still had many friends in the OSS world, so I went to Indonesia to meet with them.  </p><p>Therefore, I had initially intended to be a general participant.  Still, a friend of the speaker was suddenly unable to attend due to illness, so I gave a presentation in his place.  Here is my slide:</p>

<p>As mentioned, I am halfway out of OSS activities, but I know what my friends are doing, so it was not so difficult to talk about this subject.</p><p>Although I cannot say that the presentation itself was a great success (due to my English language skills), I was pleased because the audience was very responsive and easy to talk to, and many people approached me after the presentation was over.</p><p>Other than my presentation, I was naturally interested in the two keynote speeches by The Document Foundation and was surprised and grateful when Franklin Weng mentioned my name as an "Asian activist to be featured at the LibreOffice Latin America Conference. "</p><p>I listened to Muhammad Syazwan Md Khusaini's "Hands-On on Translating in Ubuntu" with great interest; however, I was a bit surprised to hear from a friend that many Indonesians use English for desktop environments and applications like LibreOffice.  I recognized that this was quite different from Japan.</p><p>The event itself was just as enthusiastic. Unlike OSS events in Japan (laugh), the participants were young, and there were many women. I was also surprised to see junior high school students among the speakers.</p><p>Both lunch and dinner were complimentary, and the one-day Surakaruta city tour the day after the event was delightful.  I appreciated the hospitality of the local staff.</p><p>This was my first time in Indonesia, and although short, I enjoyed many things, including the train trip. In Yogyakarta, I visited a museum and learned a lot about the history of Indonesia. However, I was overcharged by the tuk-tuk in Yogya.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwLPEkUB4czZrDj86UtXkS1_g9kqOsDQxyz3r5kjwKJUWrEhxkdIwMsEJsDQ4oMx5Y6K1XSpnprf6dE0UUboB1_76yNN_7G2mXJ3TOFy-PBhoNBU9WmrUgLJSPSYIo0ck7N5SnnIF_drg-t0E4Pa2r6kzccHBvLclY05vt3Viz2-8Fv9-2LeZqZCVeFTqc/s4080/PXL_20231009_081633062.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwLPEkUB4czZrDj86UtXkS1_g9kqOsDQxyz3r5kjwKJUWrEhxkdIwMsEJsDQ4oMx5Y6K1XSpnprf6dE0UUboB1_76yNN_7G2mXJ3TOFy-PBhoNBU9WmrUgLJSPSYIo0ck7N5SnnIF_drg-t0E4Pa2r6kzccHBvLclY05vt3Viz2-8Fv9-2LeZqZCVeFTqc/s320/PXL_20231009_081633062.jpg" width="241"/></a></div><br/><p/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht9yOJR0AJ-vMiTx1WeLHIZzHmOz8KZk_rZhiUrYhbPbbiZP9t7T9dDVtiHjL9Y-43C3Cb1flxGx_tn4-DP17k_m3UyyaecsL7lCADq76-DK80L3EjLAKfqbySqEL1tt8lW_9sW9VrJdpUMG84MB1tVOQEauBXqb4VfrC2jK8koaird3GRBiQ-IV00y0gB/s4080/PXL_20231010_044101943.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht9yOJR0AJ-vMiTx1WeLHIZzHmOz8KZk_rZhiUrYhbPbbiZP9t7T9dDVtiHjL9Y-43C3Cb1flxGx_tn4-DP17k_m3UyyaecsL7lCADq76-DK80L3EjLAKfqbySqEL1tt8lW_9sW9VrJdpUMG84MB1tVOQEauBXqb4VfrC2jK8koaird3GRBiQ-IV00y0gB/s320/PXL_20231010_044101943.jpg" width="241"/></a></div><br/><p/><p>I know it was a lot of work for the organizers, but as I have many friends in LibreOffice and am also an Ubuntu user, I was very grateful that the two events were co-hosted. Thanks to all the sponsors, global/local organizers, and everyone who talked to me there.  See you soon!</p><br/></div>
    </content>
    <updated>2023-10-27T13:13:20Z</updated>
    <published>2023-10-27T12:34:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="event"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="LibreOffice"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="OSS"/>
    <author>
      <name>Naruhiko Ogasawara</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/05753854320518471520</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-699822530207035800</id>
      <category term="LibreOffice"/>
      <category term="event"/>
      <category term="OSS"/>
      <category term="Free Software"/>
      <category term="openSUSE"/>
      <category term="openSUSE Asia Summit"/>
      <category term="GNOME"/>
      <category term="LibreOffice Kaigi"/>
      <category term="Open Source Conference"/>
      <category term="COSCUP"/>
      <category term="Debian"/>
      <category term="DFD2015"/>
      <category term="FUDCON"/>
      <category term="Fedora"/>
      <category term="JA Fukuoka"/>
      <category term="LbireOffice Asia Conference"/>
      <category term="LibreOffice Conference 2014"/>
      <category term="LibreOffice Conference 2015"/>
      <category term="LibreOffice Conference 2016"/>
      <category term="MongoDB"/>
      <category term="Tokushima"/>
      <author>
        <name>Naruhiko Ogasawara</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/05753854320518471520</uri>
      </author>
      <link href="https://naruoga-en.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/699822530207035800/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://naruoga-en.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/699822530207035800/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Life with LibreOffice,Ubuntu and Printing</title>
      <updated>2024-03-19T04:17:44Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-5054960.post-482768524487899492</id>
    <link href="https://mapopa.blogspot.com/feeds/482768524487899492/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=5054960&amp;postID=482768524487899492" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/482768524487899492" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/482768524487899492" rel="self" type="application/atom+xml"/>
    <link href="https://mapopa.blogspot.com/2023/10/firebird-50-release-candidate-1-is.html" rel="alternate" title="Firebird 5.0 Release Candidate 1 is available for testing" type="text/html"/>
    <title>Firebird 5.0 Release Candidate 1 is available for testing</title>
    <summary>Firebird Project announces the first Release Candidate of Firebird 5.0, the next major version of the Firebird relational database, which is now available for testing on all supported platforms (Windows, Linux, MacOS, Android).This Release Candidate demonstrates the complete set of features and improvements developed for the new release. Release Candidates are generally considered stable enough</summary>
    <updated>2023-10-11T14:47:18Z</updated>
    <published>2023-10-11T14:47:00Z</published>
    <author>
      <name>Popa Adrian Marius</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/09862886782232467681</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-5054960</id>
      <category term="ubuntu"/>
      <category term="firebird"/>
      <category term="debian"/>
      <category term="ubuntu hardy heron"/>
      <category term="ubuntu intrepid ibex"/>
      <category term="webkit"/>
      <category term="ubuntu jaunty"/>
      <category term="linux"/>
      <category term="nginx"/>
      <category term="firefox 3.0"/>
      <category term="free pascal"/>
      <category term="android"/>
      <category term="arora"/>
      <category term="cake php"/>
      <category term="ffmpeg"/>
      <category term="git"/>
      <category term="lazarus"/>
      <category term="cloudbook"/>
      <category term="everex"/>
      <category term="kernel vanilla"/>
      <category term="kvm"/>
      <category term="QEMU"/>
      <category term="kernel"/>
      <category term="php"/>
      <category term="qt4.5"/>
      <category term="vlc"/>
      <category term="firebird 2.1"/>
      <category term="firebird 2.5"/>
      <category term="flamerobin"/>
      <category term="kernel 2.6.27"/>
      <category term="mysql"/>
      <category term="netbooks"/>
      <category term="php 5"/>
      <category term="php5"/>
      <category term="python"/>
      <category term="ubuntu gutsy"/>
      <category term="vlc nightly"/>
      <category term="vlc streaming"/>
      <category term="vmware"/>
      <category term="windows"/>
      <category term="goodbye-microsoft"/>
      <category term="linux 0.0.1"/>
      <category term="microsoft"/>
      <category term="mplayer"/>
      <category term="qmail"/>
      <category term="qt"/>
      <category term="ubuntu server"/>
      <category term="virtualbox"/>
      <category term="youtube"/>
      <category term="3gp"/>
      <category term="Haikuos"/>
      <category term="MOTU"/>
      <category term="blog tutorial"/>
      <category term="c#"/>
      <category term="compiz"/>
      <category term="gutsy"/>
      <category term="ie6"/>
      <category term="jeos"/>
      <category term="mercurial"/>
      <category term="mozilla"/>
      <category term="ogg"/>
      <category term="oo pascal"/>
      <category term="pdo"/>
      <category term="perl"/>
      <category term="ror"/>
      <category term="ruby"/>
      <category term="upgrade"/>
      <category term="vanilla"/>
      <category term="Romania"/>
      <category term="Xc3028"/>
      <category term="acpi"/>
      <category term="amd"/>
      <category term="amd64"/>
      <category term="amr"/>
      <category term="android-x86"/>
      <category term="apc"/>
      <category term="apt"/>
      <category term="asus"/>
      <category term="c++"/>
      <category term="cakephp"/>
      <category term="chrome"/>
      <category term="clang++"/>
      <category term="delphi"/>
      <category term="delphi programming"/>
      <category term="dosemu"/>
      <category term="eclipse"/>
      <category term="eliberatica"/>
      <category term="error"/>
      <category term="ext4"/>
      <category term="feisty"/>
      <category term="firebird build"/>
      <category term="firebug"/>
      <category term="firefox"/>
      <category term="firefox 2.0"/>
      <category term="flash"/>
      <category term="flv live streaming"/>
      <category term="google"/>
      <category term="google app"/>
      <category term="gsoc2015"/>
      <category term="hardy"/>
      <category term="ie7"/>
      <category term="ie8"/>
      <category term="inbox"/>
      <category term="jabber"/>
      <category term="java"/>
      <category term="jaws"/>
      <category term="kde4.2"/>
      <category term="kernel 2.6.28"/>
      <category term="kubuntu"/>
      <category term="lamp"/>
      <category term="libreoffice"/>
      <category term="llvm"/>
      <category term="mingw"/>
      <category term="mysql2firebird"/>
      <category term="nvidia drivers 180"/>
      <category term="opengl rocks"/>
      <category term="oracle"/>
      <category term="pascal"/>
      <category term="php6"/>
      <category term="postgresql"/>
      <category term="qemu manager"/>
      <category term="qt4"/>
      <category term="quake"/>
      <category term="reea.net"/>
      <category term="samba"/>
      <category term="sid"/>
      <category term="skype"/>
      <category term="svn"/>
      <category term="theora"/>
      <category term="thunderbird"/>
      <category term="turboc 2.0"/>
      <category term="ubuntu 6.10 live cd"/>
      <category term="v4l"/>
      <category term="via"/>
      <category term="webgl"/>
      <category term="webkitgtk"/>
      <category term="wine"/>
      <category term="wordpress"/>
      <category term="wubi"/>
      <category term="x264"/>
      <category term="xmms"/>
      <category term="xul"/>
      <category term="#LazarusBook #chapter1"/>
      <category term="#LazarusBook #chapter2"/>
      <category term="#firebird"/>
      <category term="#gsoc2015"/>
      <category term="#libreoffice"/>
      <category term="-fPIC"/>
      <category term=".forward"/>
      <category term="/etc"/>
      <category term="2g2"/>
      <category term="3d rage pro"/>
      <category term="AppVeyor"/>
      <category term="BSD"/>
      <category term="Beer facts"/>
      <category term="Chris Rock"/>
      <category term="Ganymede"/>
      <category term="HowTo"/>
      <category term="LISP"/>
      <category term="LinkedIn"/>
      <category term="Lubuntu"/>
      <category term="Master Of The Universe"/>
      <category term="Parangelion 2009"/>
      <category term="RMS. GNU"/>
      <category term="SQL:2003"/>
      <category term="Stallman"/>
      <category term="Transport Tycoon Deluxe"/>
      <category term="WebPositive"/>
      <category term="X Forward"/>
      <category term="abrowser"/>
      <category term="activerecord"/>
      <category term="adodb"/>
      <category term="aircrack-ng"/>
      <category term="ansi c"/>
      <category term="apache"/>
      <category term="apache 2.2"/>
      <category term="apparmor"/>
      <category term="appliance"/>
      <category term="atheros"/>
      <category term="ati"/>
      <category term="audacious"/>
      <category term="avant-window-navigator"/>
      <category term="batman"/>
      <category term="bazaar"/>
      <category term="benchmarks"/>
      <category term="bind9"/>
      <category term="bochs"/>
      <category term="bonie++"/>
      <category term="bookmarks"/>
      <category term="borkstation"/>
      <category term="borland"/>
      <category term="boston"/>
      <category term="boxlinks"/>
      <category term="bug"/>
      <category term="bugzilla"/>
      <category term="bush"/>
      <category term="buttons"/>
      <category term="c api"/>
      <category term="cache control"/>
      <category term="cacti"/>
      <category term="cast"/>
      <category term="cbq"/>
      <category term="centos"/>
      <category term="cfq"/>
      <category term="cgi"/>
      <category term="chromium"/>
      <category term="claud book"/>
      <category term="claws"/>
      <category term="clipse"/>
      <category term="cms"/>
      <category term="composite"/>
      <category term="coreutils"/>
      <category term="cpp"/>
      <category term="cpus"/>
      <category term="crashkernel"/>
      <category term="crosscompiling"/>
      <category term="csplit"/>
      <category term="css"/>
      <category term="customize"/>
      <category term="cvs"/>
      <category term="cx23885"/>
      <category term="dark"/>
      <category term="dark silhouettes"/>
      <category term="date"/>
      <category term="dbd-interbase"/>
      <category term="debian arm"/>
      <category term="debian experimental"/>
      <category term="debian stable"/>
      <category term="dell vostro"/>
      <category term="designos"/>
      <category term="devuan"/>
      <category term="distcc"/>
      <category term="distributedssh"/>
      <category term="disturbed monkeys"/>
      <category term="django"/>
      <category term="dmesg"/>
      <category term="dns"/>
      <category term="doom"/>
      <category term="dosbox"/>
      <category term="dot-forward"/>
      <category term="dovecot"/>
      <category term="dream htc"/>
      <category term="drm"/>
      <category term="dstat"/>
      <category term="du"/>
      <category term="dual display"/>
      <category term="dyndns"/>
      <category term="ecli"/>
      <category term="eeexubuntu"/>
      <category term="egit"/>
      <category term="eog"/>
      <category term="epiphany"/>
      <category term="evolution"/>
      <category term="example"/>
      <category term="ext3"/>
      <category term="extract"/>
      <category term="fail"/>
      <category term="fastcgi"/>
      <category term="fbcon 2010"/>
      <category term="fbexport"/>
      <category term="festy fawn"/>
      <category term="final"/>
      <category term="firebird 2.0"/>
      <category term="firebird 3.0"/>
      <category term="firebird conference"/>
      <category term="firebirdsql"/>
      <category term="fireruby"/>
      <category term="flamerobin 0.8.5"/>
      <category term="flamerobin 0.9.0"/>
      <category term="flaps"/>
      <category term="flash 64"/>
      <category term="flash10"/>
      <category term="flash64"/>
      <category term="fleps"/>
      <category term="fpc"/>
      <category term="fpc 2.2.x"/>
      <category term="fpm"/>
      <category term="frames"/>
      <category term="free time"/>
      <category term="freebsd"/>
      <category term="freemind"/>
      <category term="fuse"/>
      <category term="g++"/>
      <category term="gbox"/>
      <category term="geek pr0n"/>
      <category term="gems"/>
      <category term="gigabyte"/>
      <category term="gingerbread"/>
      <category term="glibc"/>
      <category term="gmail.com"/>
      <category term="gnome"/>
      <category term="gnome-gegl2"/>
      <category term="gnu"/>
      <category term="good pr"/>
      <category term="gp3"/>
      <category term="gpc3"/>
      <category term="grub"/>
      <category term="grub2"/>
      <category term="gsl"/>
      <category term="gtk"/>
      <category term="gwibber"/>
      <category term="gzip"/>
      <category term="happy birthday"/>
      <category term="haxors"/>
      <category term="hosting"/>
      <category term="hp 4000"/>
      <category term="htb"/>
      <category term="htbtools"/>
      <category term="html5"/>
      <category term="i386"/>
      <category term="ibase"/>
      <category term="iceweasel"/>
      <category term="icq"/>
      <category term="icu"/>
      <category term="inet"/>
      <category term="inmures.ro"/>
      <category term="innodb"/>
      <category term="intel"/>
      <category term="interbase"/>
      <category term="ipython"/>
      <category term="isc"/>
      <category term="itrepid"/>
      <category term="jaun"/>
      <category term="java script"/>
      <category term="jdbc"/>
      <category term="joins"/>
      <category term="jquery"/>
      <category term="jre6"/>
      <category term="json"/>
      <category term="kFreeBSD"/>
      <category term="kde4"/>
      <category term="kernel 2.5.x"/>
      <category term="kernel 2.6.26"/>
      <category term="kernel 2.6.30"/>
      <category term="kernel 2.6.x"/>
      <category term="kexec"/>
      <category term="killie"/>
      <category term="komodo"/>
      <category term="komposer"/>
      <category term="konqueror"/>
      <category term="kvm-linux"/>
      <category term="lazarus 0.9.26"/>
      <category term="leadtek pvr2200"/>
      <category term="lemp"/>
      <category term="lenny"/>
      <category term="libdbi"/>
      <category term="libdbi-drivers"/>
      <category term="libvirt"/>
      <category term="libvirt-manager"/>
      <category term="lighttpd"/>
      <category term="linus"/>
      <category term="linus torvalds"/>
      <category term="linux 3.x.x"/>
      <category term="linuz"/>
      <category term="load balancer"/>
      <category term="locales"/>
      <category term="locked"/>
      <category term="lug mures"/>
      <category term="lulu.com"/>
      <category term="lwn"/>
      <category term="lxde"/>
      <category term="mach64"/>
      <category term="madwifi"/>
      <category term="man"/>
      <category term="matrix"/>
      <category term="mcrypt"/>
      <category term="mdb2"/>
      <category term="memcache"/>
      <category term="mencode"/>
      <category term="mencoder"/>
      <category term="merge"/>
      <category term="migrate ext3 to ext4"/>
      <category term="mod_expires"/>
      <category term="modules"/>
      <category term="monitor"/>
      <category term="mono"/>
      <category term="mono 2.0"/>
      <category term="mono 2.6"/>
      <category term="moonlight"/>
      <category term="movable type"/>
      <category term="mp3"/>
      <category term="mp4"/>
      <category term="mta"/>
      <category term="music tracker"/>
      <category term="my$QL"/>
      <category term="nat"/>
      <category term="net"/>
      <category term="nginix"/>
      <category term="nmap"/>
      <category term="nokia"/>
      <category term="nokia 810"/>
      <category term="non3d"/>
      <category term="noop"/>
      <category term="nouveau"/>
      <category term="nsfw"/>
      <category term="openchrome"/>
      <category term="opengl"/>
      <category term="openoffice 3.0"/>
      <category term="openorrifice"/>
      <category term="openssh"/>
      <category term="openssl"/>
      <category term="openttd"/>
      <category term="oracle sux"/>
      <category term="oszoo"/>
      <category term="oxygen"/>
      <category term="pacpl"/>
      <category term="panoramic view"/>
      <category term="parrot 0.6.3"/>
      <category term="patents"/>
      <category term="pda"/>
      <category term="perl6"/>
      <category term="phenom x3"/>
      <category term="php 4"/>
      <category term="php 5.3"/>
      <category term="php ide"/>
      <category term="php.net"/>
      <category term="php5.3"/>
      <category term="phpbb3"/>
      <category term="phpmyfaq"/>
      <category term="pidgin"/>
      <category term="plaboy"/>
      <category term="playogg"/>
      <category term="plumbers"/>
      <category term="pop3"/>
      <category term="postfix"/>
      <category term="powertop"/>
      <category term="prince of persia"/>
      <category term="privoxy"/>
      <category term="pulse"/>
      <category term="pvm"/>
      <category term="pxe"/>
      <category term="pyroom"/>
      <category term="qmailanalog"/>
      <category term="qml"/>
      <category term="qt 4.7"/>
      <category term="qtcreator"/>
      <category term="quake 1"/>
      <category term="raid"/>
      <category term="rails"/>
      <category term="rants"/>
      <category term="reactos"/>
      <category term="recordmydesktop"/>
      <category term="release party"/>
      <category term="reverse"/>
      <category term="rip nokia"/>
      <category term="ripping"/>
      <category term="rtfm"/>
      <category term="rubyforge"/>
      <category term="rubyonfire"/>
      <category term="schedulers"/>
      <category term="scroolkeeper"/>
      <category term="search applicance"/>
      <category term="sed"/>
      <category term="sekrity"/>
      <category term="selinux"/>
      <category term="sendmail"/>
      <category term="sharp"/>
      <category term="shorewall"/>
      <category term="silverlight"/>
      <category term="sis"/>
      <category term="sixcore"/>
      <category term="slackware"/>
      <category term="smbfs"/>
      <category term="snaps"/>
      <category term="snmp"/>
      <category term="snow"/>
      <category term="soap"/>
      <category term="softpedia"/>
      <category term="songbird"/>
      <category term="sourceforge"/>
      <category term="sponsor"/>
      <category term="sql server 2008"/>
      <category term="sqlite"/>
      <category term="ssh"/>
      <category term="ssh tunnel"/>
      <category term="sshfs"/>
      <category term="stable"/>
      <category term="stats"/>
      <category term="streaming"/>
      <category term="subclipse"/>
      <category term="suhosin-patch"/>
      <category term="super classic"/>
      <category term="super server"/>
      <category term="svk"/>
      <category term="sylpheed"/>
      <category term="targu mures"/>
      <category term="tc"/>
      <category term="tcc"/>
      <category term="tccboot"/>
      <category term="tentakel"/>
      <category term="terminal"/>
      <category term="testing"/>
      <category term="tests"/>
      <category term="themes"/>
      <category term="timestamp"/>
      <category term="timstamp"/>
      <category term="tiobe"/>
      <category term="todo reading"/>
      <category term="tor"/>
      <category term="tpch"/>
      <category term="tube"/>
      <category term="turboc"/>
      <category term="tutorial"/>
      <category term="tux sacrifice"/>
      <category term="tuxguitar"/>
      <category term="typo3"/>
      <category term="ubufox"/>
      <category term="ubuntu lite"/>
      <category term="ubuntu live cd"/>
      <category term="ubuntustudio"/>
      <category term="ue4"/>
      <category term="unetbootin"/>
      <category term="unicode"/>
      <category term="unicode art"/>
      <category term="unrealengine"/>
      <category term="use firebird"/>
      <category term="usesql"/>
      <category term="utf art"/>
      <category term="uuid"/>
      <category term="v4l-dvb-experimental"/>
      <category term="v4lctl"/>
      <category term="v8"/>
      <category term="vai"/>
      <category term="vcl4php"/>
      <category term="vederi"/>
      <category term="veto files"/>
      <category term="vista"/>
      <category term="vmstat"/>
      <category term="voodoo"/>
      <category term="vorbis"/>
      <category term="vsftp"/>
      <category term="vulcanians"/>
      <category term="web20"/>
      <category term="webcam"/>
      <category term="why git"/>
      <category term="wibrain"/>
      <category term="windmill"/>
      <category term="winfast 2000 xp global"/>
      <category term="wireless"/>
      <category term="wma"/>
      <category term="worm"/>
      <category term="x4"/>
      <category term="x64"/>
      <category term="x86"/>
      <category term="xawtv"/>
      <category term="xen"/>
      <category term="xfce"/>
      <category term="xfce4"/>
      <category term="xmpp"/>
      <category term="xulrunner"/>
      <category term="zaurus"/>
      <category term="zul"/>
      <author>
        <name>Popa Adrian Marius</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/09862886782232467681</uri>
      </author>
      <link href="https://mapopa.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://mapopa.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Programmer 4 life</subtitle>
      <title>Mariuz's Blog</title>
      <updated>2024-03-13T10:05:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-5054960.post-6940532126471160627</id>
    <link href="https://mapopa.blogspot.com/feeds/6940532126471160627/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=5054960&amp;postID=6940532126471160627" rel="replies" title="0 Comments" type="text/html"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/6940532126471160627" rel="edit" type="application/atom+xml"/>
    <link href="https://www.blogger.com/feeds/5054960/posts/default/6940532126471160627" rel="self" type="application/atom+xml"/>
    <link href="https://mapopa.blogspot.com/2023/10/flamerobin-099-snapshot-released-with.html" rel="alternate" title="Flamerobin 0.9.9 Snapshot released with a few fixes" type="text/html"/>
    <title>Flamerobin 0.9.9 Snapshot released with a few fixes</title>
    <summary>Flamerobin 0.9.9 Snapshot released with a few fixesWhat’s Changed :Fix Mac OS compilation by @rlakis in #328Fix saving style error and code scanning alert by @arvanus in #330Improve SQL statistics by @arvanus in #331New Contributors :@rlakis made their first contribution in #328</summary>
    <updated>2023-10-11T14:46:37Z</updated>
    <published>2023-10-11T14:46:00Z</published>
    <author>
      <name>Popa Adrian Marius</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/09862886782232467681</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-5054960</id>
      <category term="ubuntu"/>
      <category term="firebird"/>
      <category term="debian"/>
      <category term="ubuntu hardy heron"/>
      <category term="ubuntu intrepid ibex"/>
      <category term="webkit"/>
      <category term="ubuntu jaunty"/>
      <category term="linux"/>
      <category term="nginx"/>
      <category term="firefox 3.0"/>
      <category term="free pascal"/>
      <category term="android"/>
      <category term="arora"/>
      <category term="cake php"/>
      <category term="ffmpeg"/>
      <category term="git"/>
      <category term="lazarus"/>
      <category term="cloudbook"/>
      <category term="everex"/>
      <category term="kernel vanilla"/>
      <category term="kvm"/>
      <category term="QEMU"/>
      <category term="kernel"/>
      <category term="php"/>
      <category term="qt4.5"/>
      <category term="vlc"/>
      <category term="firebird 2.1"/>
      <category term="firebird 2.5"/>
      <category term="flamerobin"/>
      <category term="kernel 2.6.27"/>
      <category term="mysql"/>
      <category term="netbooks"/>
      <category term="php 5"/>
      <category term="php5"/>
      <category term="python"/>
      <category term="ubuntu gutsy"/>
      <category term="vlc nightly"/>
      <category term="vlc streaming"/>
      <category term="vmware"/>
      <category term="windows"/>
      <category term="goodbye-microsoft"/>
      <category term="linux 0.0.1"/>
      <category term="microsoft"/>
      <category term="mplayer"/>
      <category term="qmail"/>
      <category term="qt"/>
      <category term="ubuntu server"/>
      <category term="virtualbox"/>
      <category term="youtube"/>
      <category term="3gp"/>
      <category term="Haikuos"/>
      <category term="MOTU"/>
      <category term="blog tutorial"/>
      <category term="c#"/>
      <category term="compiz"/>
      <category term="gutsy"/>
      <category term="ie6"/>
      <category term="jeos"/>
      <category term="mercurial"/>
      <category term="mozilla"/>
      <category term="ogg"/>
      <category term="oo pascal"/>
      <category term="pdo"/>
      <category term="perl"/>
      <category term="ror"/>
      <category term="ruby"/>
      <category term="upgrade"/>
      <category term="vanilla"/>
      <category term="Romania"/>
      <category term="Xc3028"/>
      <category term="acpi"/>
      <category term="amd"/>
      <category term="amd64"/>
      <category term="amr"/>
      <category term="android-x86"/>
      <category term="apc"/>
      <category term="apt"/>
      <category term="asus"/>
      <category term="c++"/>
      <category term="cakephp"/>
      <category term="chrome"/>
      <category term="clang++"/>
      <category term="delphi"/>
      <category term="delphi programming"/>
      <category term="dosemu"/>
      <category term="eclipse"/>
      <category term="eliberatica"/>
      <category term="error"/>
      <category term="ext4"/>
      <category term="feisty"/>
      <category term="firebird build"/>
      <category term="firebug"/>
      <category term="firefox"/>
      <category term="firefox 2.0"/>
      <category term="flash"/>
      <category term="flv live streaming"/>
      <category term="google"/>
      <category term="google app"/>
      <category term="gsoc2015"/>
      <category term="hardy"/>
      <category term="ie7"/>
      <category term="ie8"/>
      <category term="inbox"/>
      <category term="jabber"/>
      <category term="java"/>
      <category term="jaws"/>
      <category term="kde4.2"/>
      <category term="kernel 2.6.28"/>
      <category term="kubuntu"/>
      <category term="lamp"/>
      <category term="libreoffice"/>
      <category term="llvm"/>
      <category term="mingw"/>
      <category term="mysql2firebird"/>
      <category term="nvidia drivers 180"/>
      <category term="opengl rocks"/>
      <category term="oracle"/>
      <category term="pascal"/>
      <category term="php6"/>
      <category term="postgresql"/>
      <category term="qemu manager"/>
      <category term="qt4"/>
      <category term="quake"/>
      <category term="reea.net"/>
      <category term="samba"/>
      <category term="sid"/>
      <category term="skype"/>
      <category term="svn"/>
      <category term="theora"/>
      <category term="thunderbird"/>
      <category term="turboc 2.0"/>
      <category term="ubuntu 6.10 live cd"/>
      <category term="v4l"/>
      <category term="via"/>
      <category term="webgl"/>
      <category term="webkitgtk"/>
      <category term="wine"/>
      <category term="wordpress"/>
      <category term="wubi"/>
      <category term="x264"/>
      <category term="xmms"/>
      <category term="xul"/>
      <category term="#LazarusBook #chapter1"/>
      <category term="#LazarusBook #chapter2"/>
      <category term="#firebird"/>
      <category term="#gsoc2015"/>
      <category term="#libreoffice"/>
      <category term="-fPIC"/>
      <category term=".forward"/>
      <category term="/etc"/>
      <category term="2g2"/>
      <category term="3d rage pro"/>
      <category term="AppVeyor"/>
      <category term="BSD"/>
      <category term="Beer facts"/>
      <category term="Chris Rock"/>
      <category term="Ganymede"/>
      <category term="HowTo"/>
      <category term="LISP"/>
      <category term="LinkedIn"/>
      <category term="Lubuntu"/>
      <category term="Master Of The Universe"/>
      <category term="Parangelion 2009"/>
      <category term="RMS. GNU"/>
      <category term="SQL:2003"/>
      <category term="Stallman"/>
      <category term="Transport Tycoon Deluxe"/>
      <category term="WebPositive"/>
      <category term="X Forward"/>
      <category term="abrowser"/>
      <category term="activerecord"/>
      <category term="adodb"/>
      <category term="aircrack-ng"/>
      <category term="ansi c"/>
      <category term="apache"/>
      <category term="apache 2.2"/>
      <category term="apparmor"/>
      <category term="appliance"/>
      <category term="atheros"/>
      <category term="ati"/>
      <category term="audacious"/>
      <category term="avant-window-navigator"/>
      <category term="batman"/>
      <category term="bazaar"/>
      <category term="benchmarks"/>
      <category term="bind9"/>
      <category term="bochs"/>
      <category term="bonie++"/>
      <category term="bookmarks"/>
      <category term="borkstation"/>
      <category term="borland"/>
      <category term="boston"/>
      <category term="boxlinks"/>
      <category term="bug"/>
      <category term="bugzilla"/>
      <category term="bush"/>
      <category term="buttons"/>
      <category term="c api"/>
      <category term="cache control"/>
      <category term="cacti"/>
      <category term="cast"/>
      <category term="cbq"/>
      <category term="centos"/>
      <category term="cfq"/>
      <category term="cgi"/>
      <category term="chromium"/>
      <category term="claud book"/>
      <category term="claws"/>
      <category term="clipse"/>
      <category term="cms"/>
      <category term="composite"/>
      <category term="coreutils"/>
      <category term="cpp"/>
      <category term="cpus"/>
      <category term="crashkernel"/>
      <category term="crosscompiling"/>
      <category term="csplit"/>
      <category term="css"/>
      <category term="customize"/>
      <category term="cvs"/>
      <category term="cx23885"/>
      <category term="dark"/>
      <category term="dark silhouettes"/>
      <category term="date"/>
      <category term="dbd-interbase"/>
      <category term="debian arm"/>
      <category term="debian experimental"/>
      <category term="debian stable"/>
      <category term="dell vostro"/>
      <category term="designos"/>
      <category term="devuan"/>
      <category term="distcc"/>
      <category term="distributedssh"/>
      <category term="disturbed monkeys"/>
      <category term="django"/>
      <category term="dmesg"/>
      <category term="dns"/>
      <category term="doom"/>
      <category term="dosbox"/>
      <category term="dot-forward"/>
      <category term="dovecot"/>
      <category term="dream htc"/>
      <category term="drm"/>
      <category term="dstat"/>
      <category term="du"/>
      <category term="dual display"/>
      <category term="dyndns"/>
      <category term="ecli"/>
      <category term="eeexubuntu"/>
      <category term="egit"/>
      <category term="eog"/>
      <category term="epiphany"/>
      <category term="evolution"/>
      <category term="example"/>
      <category term="ext3"/>
      <category term="extract"/>
      <category term="fail"/>
      <category term="fastcgi"/>
      <category term="fbcon 2010"/>
      <category term="fbexport"/>
      <category term="festy fawn"/>
      <category term="final"/>
      <category term="firebird 2.0"/>
      <category term="firebird 3.0"/>
      <category term="firebird conference"/>
      <category term="firebirdsql"/>
      <category term="fireruby"/>
      <category term="flamerobin 0.8.5"/>
      <category term="flamerobin 0.9.0"/>
      <category term="flaps"/>
      <category term="flash 64"/>
      <category term="flash10"/>
      <category term="flash64"/>
      <category term="fleps"/>
      <category term="fpc"/>
      <category term="fpc 2.2.x"/>
      <category term="fpm"/>
      <category term="frames"/>
      <category term="free time"/>
      <category term="freebsd"/>
      <category term="freemind"/>
      <category term="fuse"/>
      <category term="g++"/>
      <category term="gbox"/>
      <category term="geek pr0n"/>
      <category term="gems"/>
      <category term="gigabyte"/>
      <category term="gingerbread"/>
      <category term="glibc"/>
      <category term="gmail.com"/>
      <category term="gnome"/>
      <category term="gnome-gegl2"/>
      <category term="gnu"/>
      <category term="good pr"/>
      <category term="gp3"/>
      <category term="gpc3"/>
      <category term="grub"/>
      <category term="grub2"/>
      <category term="gsl"/>
      <category term="gtk"/>
      <category term="gwibber"/>
      <category term="gzip"/>
      <category term="happy birthday"/>
      <category term="haxors"/>
      <category term="hosting"/>
      <category term="hp 4000"/>
      <category term="htb"/>
      <category term="htbtools"/>
      <category term="html5"/>
      <category term="i386"/>
      <category term="ibase"/>
      <category term="iceweasel"/>
      <category term="icq"/>
      <category term="icu"/>
      <category term="inet"/>
      <category term="inmures.ro"/>
      <category term="innodb"/>
      <category term="intel"/>
      <category term="interbase"/>
      <category term="ipython"/>
      <category term="isc"/>
      <category term="itrepid"/>
      <category term="jaun"/>
      <category term="java script"/>
      <category term="jdbc"/>
      <category term="joins"/>
      <category term="jquery"/>
      <category term="jre6"/>
      <category term="json"/>
      <category term="kFreeBSD"/>
      <category term="kde4"/>
      <category term="kernel 2.5.x"/>
      <category term="kernel 2.6.26"/>
      <category term="kernel 2.6.30"/>
      <category term="kernel 2.6.x"/>
      <category term="kexec"/>
      <category term="killie"/>
      <category term="komodo"/>
      <category term="komposer"/>
      <category term="konqueror"/>
      <category term="kvm-linux"/>
      <category term="lazarus 0.9.26"/>
      <category term="leadtek pvr2200"/>
      <category term="lemp"/>
      <category term="lenny"/>
      <category term="libdbi"/>
      <category term="libdbi-drivers"/>
      <category term="libvirt"/>
      <category term="libvirt-manager"/>
      <category term="lighttpd"/>
      <category term="linus"/>
      <category term="linus torvalds"/>
      <category term="linux 3.x.x"/>
      <category term="linuz"/>
      <category term="load balancer"/>
      <category term="locales"/>
      <category term="locked"/>
      <category term="lug mures"/>
      <category term="lulu.com"/>
      <category term="lwn"/>
      <category term="lxde"/>
      <category term="mach64"/>
      <category term="madwifi"/>
      <category term="man"/>
      <category term="matrix"/>
      <category term="mcrypt"/>
      <category term="mdb2"/>
      <category term="memcache"/>
      <category term="mencode"/>
      <category term="mencoder"/>
      <category term="merge"/>
      <category term="migrate ext3 to ext4"/>
      <category term="mod_expires"/>
      <category term="modules"/>
      <category term="monitor"/>
      <category term="mono"/>
      <category term="mono 2.0"/>
      <category term="mono 2.6"/>
      <category term="moonlight"/>
      <category term="movable type"/>
      <category term="mp3"/>
      <category term="mp4"/>
      <category term="mta"/>
      <category term="music tracker"/>
      <category term="my$QL"/>
      <category term="nat"/>
      <category term="net"/>
      <category term="nginix"/>
      <category term="nmap"/>
      <category term="nokia"/>
      <category term="nokia 810"/>
      <category term="non3d"/>
      <category term="noop"/>
      <category term="nouveau"/>
      <category term="nsfw"/>
      <category term="openchrome"/>
      <category term="opengl"/>
      <category term="openoffice 3.0"/>
      <category term="openorrifice"/>
      <category term="openssh"/>
      <category term="openssl"/>
      <category term="openttd"/>
      <category term="oracle sux"/>
      <category term="oszoo"/>
      <category term="oxygen"/>
      <category term="pacpl"/>
      <category term="panoramic view"/>
      <category term="parrot 0.6.3"/>
      <category term="patents"/>
      <category term="pda"/>
      <category term="perl6"/>
      <category term="phenom x3"/>
      <category term="php 4"/>
      <category term="php 5.3"/>
      <category term="php ide"/>
      <category term="php.net"/>
      <category term="php5.3"/>
      <category term="phpbb3"/>
      <category term="phpmyfaq"/>
      <category term="pidgin"/>
      <category term="plaboy"/>
      <category term="playogg"/>
      <category term="plumbers"/>
      <category term="pop3"/>
      <category term="postfix"/>
      <category term="powertop"/>
      <category term="prince of persia"/>
      <category term="privoxy"/>
      <category term="pulse"/>
      <category term="pvm"/>
      <category term="pxe"/>
      <category term="pyroom"/>
      <category term="qmailanalog"/>
      <category term="qml"/>
      <category term="qt 4.7"/>
      <category term="qtcreator"/>
      <category term="quake 1"/>
      <category term="raid"/>
      <category term="rails"/>
      <category term="rants"/>
      <category term="reactos"/>
      <category term="recordmydesktop"/>
      <category term="release party"/>
      <category term="reverse"/>
      <category term="rip nokia"/>
      <category term="ripping"/>
      <category term="rtfm"/>
      <category term="rubyforge"/>
      <category term="rubyonfire"/>
      <category term="schedulers"/>
      <category term="scroolkeeper"/>
      <category term="search applicance"/>
      <category term="sed"/>
      <category term="sekrity"/>
      <category term="selinux"/>
      <category term="sendmail"/>
      <category term="sharp"/>
      <category term="shorewall"/>
      <category term="silverlight"/>
      <category term="sis"/>
      <category term="sixcore"/>
      <category term="slackware"/>
      <category term="smbfs"/>
      <category term="snaps"/>
      <category term="snmp"/>
      <category term="snow"/>
      <category term="soap"/>
      <category term="softpedia"/>
      <category term="songbird"/>
      <category term="sourceforge"/>
      <category term="sponsor"/>
      <category term="sql server 2008"/>
      <category term="sqlite"/>
      <category term="ssh"/>
      <category term="ssh tunnel"/>
      <category term="sshfs"/>
      <category term="stable"/>
      <category term="stats"/>
      <category term="streaming"/>
      <category term="subclipse"/>
      <category term="suhosin-patch"/>
      <category term="super classic"/>
      <category term="super server"/>
      <category term="svk"/>
      <category term="sylpheed"/>
      <category term="targu mures"/>
      <category term="tc"/>
      <category term="tcc"/>
      <category term="tccboot"/>
      <category term="tentakel"/>
      <category term="terminal"/>
      <category term="testing"/>
      <category term="tests"/>
      <category term="themes"/>
      <category term="timestamp"/>
      <category term="timstamp"/>
      <category term="tiobe"/>
      <category term="todo reading"/>
      <category term="tor"/>
      <category term="tpch"/>
      <category term="tube"/>
      <category term="turboc"/>
      <category term="tutorial"/>
      <category term="tux sacrifice"/>
      <category term="tuxguitar"/>
      <category term="typo3"/>
      <category term="ubufox"/>
      <category term="ubuntu lite"/>
      <category term="ubuntu live cd"/>
      <category term="ubuntustudio"/>
      <category term="ue4"/>
      <category term="unetbootin"/>
      <category term="unicode"/>
      <category term="unicode art"/>
      <category term="unrealengine"/>
      <category term="use firebird"/>
      <category term="usesql"/>
      <category term="utf art"/>
      <category term="uuid"/>
      <category term="v4l-dvb-experimental"/>
      <category term="v4lctl"/>
      <category term="v8"/>
      <category term="vai"/>
      <category term="vcl4php"/>
      <category term="vederi"/>
      <category term="veto files"/>
      <category term="vista"/>
      <category term="vmstat"/>
      <category term="voodoo"/>
      <category term="vorbis"/>
      <category term="vsftp"/>
      <category term="vulcanians"/>
      <category term="web20"/>
      <category term="webcam"/>
      <category term="why git"/>
      <category term="wibrain"/>
      <category term="windmill"/>
      <category term="winfast 2000 xp global"/>
      <category term="wireless"/>
      <category term="wma"/>
      <category term="worm"/>
      <category term="x4"/>
      <category term="x64"/>
      <category term="x86"/>
      <category term="xawtv"/>
      <category term="xen"/>
      <category term="xfce"/>
      <category term="xfce4"/>
      <category term="xmpp"/>
      <category term="xulrunner"/>
      <category term="zaurus"/>
      <category term="zul"/>
      <author>
        <name>Popa Adrian Marius</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/09862886782232467681</uri>
      </author>
      <link href="https://mapopa.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default" rel="self" type="application/atom+xml"/>
      <link href="https://mapopa.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="https://www.blogger.com/feeds/5054960/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Programmer 4 life</subtitle>
      <title>Mariuz's Blog</title>
      <updated>2024-03-13T10:05:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>https://bayramcicek.github.io/libreoffice-dev/2023/08/26/final-report-2023-gsoc.html</id>
    <link href="https://bayramcicek.github.io/libreoffice-dev/2023/08/26/final-report-2023-gsoc.html" rel="alternate" type="text/html"/>
    <title>Final Report - Google Summer of Code 2023 - Search Field in Options</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3 id="about-project">About project</h3>

<p>LibreOffice is a complex application with a large and growing number of options. It is not easy to find the right needle in the haystack. Like most other complex applications, it will be valuable and useful enhancement to add a search field to the “Tools &gt; Options” dialog that iterates over the various tabs and filters where the search text is found. The <u>Search Field in Options</u> project aims to provide this search functionality in “Tools &gt; Options” page.</p>

<ul>
  <li>Project page: <a href="https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1">https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1</a></li>
  <li>Enhancement request on Bugzilla: <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=49895">https://bugs.documentfoundation.org/show_bug.cgi?id=49895</a></li>
  <li>Patch on Gerrit: <a href="https://gerrit.libreoffice.org/c/core/+/152519">https://gerrit.libreoffice.org/c/core/+/152519</a></li>
</ul>

<h3 id="tasks">Tasks</h3>

<ul class="task-list">
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Add search field to Options dialog - UI</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Implement search function</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include Options TreeView’s parent and child node names into searching</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Add <code class="language-plaintext highlighter-rouge">GetAllStrings()</code> method to fetch strings from 69 dialogs step by step</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include following element strings into searching:
    <ul class="task-list">
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  labels</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  check buttons</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  radio buttons</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  toggle buttons</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  link buttons</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  buttons</li>
    </ul>
  </li>
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include accessibility elements into searching:
    <ul class="task-list">
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  accessible-names</li>
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  accessible-descriptions</li>
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  tooltip-texts</li>
    </ul>
  </li>
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include option pages from extensions into searching</li>
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Initialize all dialogs at background if it’s possible (<code class="language-plaintext highlighter-rouge">salhelper::Thread</code> - asynchronously)</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Initialize all dialogs to get strings properly (not in background - synchronously)
    <ul class="task-list">
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  initialize ~half of them after opening the options</li>
      <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  and initialize remaining ones after doing a search</li>
    </ul>
  </li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Update Options TreeView properly after the searching done</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Expand the first node and select first child-node after search by default</li>
  <li class="task-list-item"><input checked="" class="task-list-item-checkbox" disabled="" type="checkbox"/>  Remove Hyphen (<code class="language-plaintext highlighter-rouge">_</code>) and Tilde (<code class="language-plaintext highlighter-rouge">~</code>) symbols from fetched strings to make the search function work correctly</li>
</ul>

<h3 id="my-work-during-gsoc">My Work during GSoC</h3>

<p>During 13 weeks GSoC program, I added a search field in Options dialog and included the node names and their .ui strings into searching. Since sub-dialogs under the Options are not initialized at startup of Options dialog, it was not possible to access their .ui strings. To overcome this issue we had two options:</p>
<ul>
  <li><b>Option A:</b> <u>Extract .ui strings at build-time and fetch them at run-time</u><br/>
This option requires working on file operations, LibreOffice’s build system, makefiles, localization etc. I worked on this option for ~5 weeks but this approach caused a lot of issues that took the project out of its scope. For example, how to deal with localization issue while extracting strings at build-time? This was another big problem…</li>
  <li><b>Option B:</b> <u>Initialize all dialogs in some way and get their strings</u><br/>
This option is more understandable and simple. Instructions are clear. No need to worry about localization. No need to work on file operations, extracting and fetching data, working with makefiles etc…</li>
</ul>

<p>When I felt that Option A is just wasting my time (~5 weeks); I switched to Option B where I can -at least- make some progress. The main issue in Option B was initializing all dialogs which takes about 4-8 secs. I tried to initialize them at background but there was some errors on Win10 that I don’t reproduce the issue on my linux machine. Then I tried to see the errors on Win10 with a virtual machine, but it was too slow to test. Therefore I uninstalled Manjaro/Linux (which I’ve been using it more than 1.5 years) from my computer and had to install Win10 (which I last used 6 years ago) on my machine to see the problems in there. There was some visual inconsistencies while initializing sub-dialogs using <code class="language-plaintext highlighter-rouge">salhelper::Thread</code> at background.</p>

<p>After working long hours for weeks meanwhile the time was running out, I decided to initialize almost half of them at Options dialog startup and the remaining ones at the time of searching. In that way, time of initializing process is divided by ~2 which can be acceptable time in some degree in terms of user experience.</p>

<p>There is a single patch on Gerrit for this project: <a href="https://gerrit.libreoffice.org/c/core/+/152519">https://gerrit.libreoffice.org/c/core/+/152519</a>. The patch has more than 30 patchsets and includes “+2255 -47” changes.</p>

<p>The most challenging part was implementing GetAllStrings() function for every ~69 dialogs step by step. Current implementation may not be the best solution for user experience, but at least searching through the numerous options is now possible.</p>

<p align="center">
  <img alt="options-dialog-on-Win10.png" src="https://bayramcicek.github.io/../../../../folder/libreoffice-png/options-dialog-on-Win10.png"/>
</p>

<h3 id="whats-left-to-do-or-can-be-done">Whats left to do or can be done?</h3>

<p>Following tasks are left and can be implemented after GSoC:</p>
<ul class="task-list">
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include accessibility elements into searching:
    <ul class="task-list">
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  accessible-names</li>
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  accessible-descriptions</li>
      <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  tooltip-texts</li>
    </ul>
  </li>
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Include option pages from extensions into searching</li>
  <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"/>  Initialize all dialogs at background if it’s possible (<code class="language-plaintext highlighter-rouge">salhelper::Thread</code> - asynchronously)</li>
</ul>

<h3 id="additional-hacks">Additional hacks</h3>

<ul>
  <li>Show modified options with some special indicator (as in KDE settings). (better to discuss this idea in a separate ticket)</li>
  <li>Implement highlighting feature</li>
</ul>

<h3 id="tasks-ill-be-working-on-after-gsoc">Tasks I’ll be working on after GSoC</h3>

<ul>
  <li>improvement on the initialization of the dialogs, maybe it can be possible to initialize them at background without encountering any visual inconsistencies - especially on Windows.</li>
  <li>Implementing the remaining tasks:
    <ul>
      <li>Include accessibility elements into searching</li>
      <li>Include option pages from extensions into searching</li>
    </ul>
  </li>
  <li>If everything works fine I’d like to work on the highlighting feature</li>
  <li>Also it would be prettier if Options dialog have a modified options indicator (as in KDE settings)</li>
</ul>

<h3 id="thanks">Thanks</h3>

<p>I’m very happy that we all reached the end of GSoC. During that time, I know that I had a responsibility for doing everything that I can. Therefore I worked hard and tried to complete as much tasks as I can.</p>

<p>I learned a lot of things during the GSoC. Although GSoC is finished, I will definitely continue to contribute to LibreOffice. I am really happy to be a part of the LibreOffice community and Google Summer of Code. I’m really thankful to LibreOffice and Google for providing us this such a great opportunity which helped me gain this amazing experience!</p>

<p>I always tried to be active on IRC #libreoffice-dev channel, and I want to thank for everybody who helped me about my questions.</p>

<p>And most importantly, greatly thankful to <b><u>Andreas Heinisch</u></b> and <b><u>Heiko Tietze</u></b> who were my mentors throughout the GSoC period. They always guided me everything about my questions. Thank you endlessly for your time and effort. I appreciate that you always motivating and encouraging me in all that I attempt and do. I can never truly express how grateful I am. Your guidance, reviews, help and shared experiences have been invaluable. Thank you very much for everything.</p>

<p>I’d like to express my gratitude to everyone in the LibreOffice community for their help and kindness. They always tried to answer my questions on IRC. I fell very lucky to work with this amazing community. I have learned a lot from you and I will never forget this wonderful experience.</p>

<p align="right">
<i>Regards,<br/>
Bayram Çiçek</i>
</p>

<p><strong>All weekly GSoC reports:</strong></p>

<ul>
  <li>26 Aug 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/08/26/final-report-2023-gsoc.html">Final Report - Google Summer of Code 2023 - Search Field in Options</a></li>
  <li>14 Aug 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/08/14/week-07-11-gsoc-report.html">Week #7 - #11 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>08 Jul 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/07/08/week-05-06-gsoc-report.html">Week #5 and #6 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>26 Jun 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/06/26/week-04-gsoc-report.html">Week #4 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>18 Jun 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/06/18/week-03-gsoc-report.html">Week #3 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>10 Jun 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/06/10/week-02-gsoc-report.html">Week #2 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>03 Jun 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/06/03/week-01-gsoc-report.html">Week #1 - GSoC 2023 Weekly Report - Search Field in Options</a></li>
  <li>18 May 2023   <a href="https://bayramcicek.github.io/libreoffice-dev/2023/05/18/gsoc-timeline.html">Google Summer of Code 2023 Timeline - Search Field in Options</a></li>
</ul>

<p><strong>Useful links:</strong></p>

<ul>
  <li><a href="https://gerrit.libreoffice.org/q/owner:bayramcicek2125%2540gmail.com">https://gerrit.libreoffice.org/q/owner:bayramcicek2125%2540gmail.com</a> (my all contributions to LibreOffice)</li>
  <li><a href="https://translations.documentfoundation.org/user/bayramcicek/">https://translations.documentfoundation.org/user/bayramcicek/</a> (my translations in LibreOffice)</li>
  <li><a href="https://bayramcicek.github.io/libreoffice/">https://bayramcicek.github.io/libreoffice/</a> (all blog posts related to LibreOffice development)</li>
  <li><a href="https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1">https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1</a> (Google Summer of Code - Project page)</li>
</ul>

<h4 align="right"><i># free as in freedom</i></h4></div>
    </summary>
    <updated>2023-08-26T09:00:00Z</updated>
    <published>2023-08-26T09:00:00Z</published>
    <category term="libreoffice-dev"/>
    <author>
      <name>Bayram Çiçek</name>
    </author>
    <source>
      <id>https://bayramcicek.github.io/libreoffice/</id>
      <link href="https://bayramcicek.github.io/libreoffice/" rel="alternate" type="text/html"/>
      <link href="https://bayramcicek.github.io/lo-feed.xml" rel="self" type="application/rss+xml"/>
      <subtitle>All content written by me is by default released freely under the Public License.</subtitle>
      <title>Bayram Çiçek's website</title>
      <updated>2023-08-28T18:07:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>https://tokiesan.github.io/blogposts/gsoc/final_report.html</id>
    <link href="https://tokiesan.github.io/blogposts/gsoc/final_report.html" rel="alternate" type="text/html"/>
    <title>Final Report</title>
    <summary>The past four months working on LibreOffice for Google Summer of Code 2023 have been an amazing learning experience. With the help of mentors Thorsten, Heiko, and Hossein, I implemented features to improve the user experience around digital signing and encryption like remembering recipients, better recipient selection UI, fast searching/filtering of keys, and documentation. My 12 patches were merged and it was incredible contributing to open source with the friendly LibreOffice community. I look forward to more FOSS contributions in the future!</summary>
    <updated>2023-08-25T12:25:48Z</updated>
    <source>
      <id>https://tokiesan.github.io</id>
      <author>
        <name>Ahmed Gamal Eltokhy</name>
      </author>
      <link href="https://tokiesan.github.io/atom-gsoc.xml" rel="self" type="application/atom+xml"/>
      <title>Tokhy's hub</title>
      <updated>2023-08-25T12:25:48Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-1948642343859505027.post-5187642828724002657</id>
    <link href="http://caolanm.blogspot.com/feeds/5187642828724002657/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://caolanm.blogspot.com/2023/08/small-caps-in-impress.html#comment-form" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default/5187642828724002657" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default/5187642828724002657" rel="self" type="application/atom+xml"/>
    <link href="http://caolanm.blogspot.com/2023/08/small-caps-in-impress.html" rel="alternate" title="Small Caps in Impress" type="text/html"/>
    <title>Small Caps in Impress</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Writer supports Small Caps, but Impress and drawing shapes in general never fully supported Small Caps. The option was available, and the character dialog provided a preview, but Small Caps was rendered the same as All Caps, as seen here.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsjUEKWbkrPZE1TElAKE0yTzXSOl3eMV02k1KYBMDZGj-evUqcJDiz6OoCzKtFqvNTp1txytilINqrzd_Vw2yYwaXDiCHmcybtjunIkzsIZSQl7e8z0StFmVtvIQhzxZB39UlRe8ny-eVY2VRBvEjuUbf7TFpLixzGuxsj2zY5u4cLHU53mBLBc30OY9g/s3840/before-small-caps.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsjUEKWbkrPZE1TElAKE0yTzXSOl3eMV02k1KYBMDZGj-evUqcJDiz6OoCzKtFqvNTp1txytilINqrzd_Vw2yYwaXDiCHmcybtjunIkzsIZSQl7e8z0StFmVtvIQhzxZB39UlRe8ny-eVY2VRBvEjuUbf7TFpLixzGuxsj2zY5u4cLHU53mBLBc30OY9g/w640-h360/before-small-caps.png" width="640"/></a></div><p/><p> This has <a href="https://bugs.documentfoundation.org/show_bug.cgi?id=91932">lingered for years</a> and it's not easy as a user to try and manually workaround with varying font sizes because underline/overline/strike-through decorations won't link up, as seen in this example:</p><p/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnS3sy4ayBjYGMZ1L9HwbzntDfIr1JK1fDmxCKiHgIF5cGKBo-8-7xtawb4MgRu1OY3sf-LkndgMVwW0nNd4PNyRs1WtkZQ74WCyRu9FVggT4QJ5lxWu-0BvJ7WNiSuHIllqWTjBWgtSc7xoiFh7WxrXoM2iNOyp4z3Wve__9nB2Ur9pDBbeAC_wvdavk/s3840/before-small-caps-differnt-font-sizes.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnS3sy4ayBjYGMZ1L9HwbzntDfIr1JK1fDmxCKiHgIF5cGKBo-8-7xtawb4MgRu1OY3sf-LkndgMVwW0nNd4PNyRs1WtkZQ74WCyRu9FVggT4QJ5lxWu-0BvJ7WNiSuHIllqWTjBWgtSc7xoiFh7WxrXoM2iNOyp4z3Wve__9nB2Ur9pDBbeAC_wvdavk/w640-h360/before-small-caps-differnt-font-sizes.png" width="640"/></a></div><br/> but finally for Collabora Hack Week I was able to carve out some time to fix this. So in today's LibreOffice trunk we finally have this implemented as:<br/><p/><p/><div class="separator" style="clear: both; text-align: center;"/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxpOoSu0iAsMRZlCfAXd0uGoXPh_P5J0cBOtftb_iz9_Wr7jBmtv2FSZvFmwOgTpMKS9u2e5ekF_nK-gKlE2yLr6VELgArf_gavT8cbQisVrJHeQjI4GFOeYuVanQzh3i8uyVVutPPoHQNlwacQ8EHu-KMyub2qrxzaOpccraipeMR4_1YR3TOfOKLEYI/s3840/after-small-caps.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxpOoSu0iAsMRZlCfAXd0uGoXPh_P5J0cBOtftb_iz9_Wr7jBmtv2FSZvFmwOgTpMKS9u2e5ekF_nK-gKlE2yLr6VELgArf_gavT8cbQisVrJHeQjI4GFOeYuVanQzh3i8uyVVutPPoHQNlwacQ8EHu-KMyub2qrxzaOpccraipeMR4_1YR3TOfOKLEYI/w640-h360/after-small-caps.png" width="640"/></a></div>In addition a buggy case seen in the preview of double overlines for mixed upper/lower case was also fixed, from:<p/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuXVBGUVQfMsAFGJP8VCIWa2DK1kOzjRoLcKRM3iLkTE6eQ_Tu0lvgZexJpYbic8bg3XeTEfLS5UPgYDlaU07uiiMPi7_-AtYlMCigbc6BS2tMYA7qwtC8QnGYEqtlYwDYoPt0mdV47whHDcmum07BiRaq5S9u10_od6S9NNHXgRL-UIdXPCmw4TU6ApQ/s1263/before-small-caps-two-overlines.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="383" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuXVBGUVQfMsAFGJP8VCIWa2DK1kOzjRoLcKRM3iLkTE6eQ_Tu0lvgZexJpYbic8bg3XeTEfLS5UPgYDlaU07uiiMPi7_-AtYlMCigbc6BS2tMYA7qwtC8QnGYEqtlYwDYoPt0mdV47whHDcmum07BiRaq5S9u10_od6S9NNHXgRL-UIdXPCmw4TU6ApQ/w400-h383/before-small-caps-two-overlines.png" width="400"/></a></div><p>to:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY493jryVlYQIwUdbYIYMwiaEwkbxFzARmoKFOgLzweG_s6afYzyCAQxyOmdmk0srZmsu6B80Ub1nEcAnfpQ8XYqqINv-Q92Ilynj9EJ57r1UxT3AdD1GsCv3v7AyGpRS19dOfI3zeXV07gBJmT1HM6Dw4lPZeS2K3_S0ll5NmYl-ONbCGK2eFxeUPnwI/s1518/after-small-caps-one-overline.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY493jryVlYQIwUdbYIYMwiaEwkbxFzARmoKFOgLzweG_s6afYzyCAQxyOmdmk0srZmsu6B80Ub1nEcAnfpQ8XYqqINv-Q92Ilynj9EJ57r1UxT3AdD1GsCv3v7AyGpRS19dOfI3zeXV07gBJmT1HM6Dw4lPZeS2K3_S0ll5NmYl-ONbCGK2eFxeUPnwI/w400-h350/after-small-caps-one-overline.png" width="400"/></a> <br/></div><p>Also noticed during all of this was the wrong width scaling used for the red wave line underneath incorrect spelling in impress when the text is superscript or subscript so the line didn't stretch over the whole text, as seen here: </p><div class="separator" style="clear: both; text-align: center;"/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxcQlDo4Srud9vf1KX4xR5MfLrkN6MDGJ77Jd_zt6puPVJYSp-OJLqY2fAu9nPqbeGRC7KOV50Na5Zl1jcXuF2qcgPxCb0k6tn1xRpIKx6y4_hXuiiSLl5XpQrVRtL85G04PuSCtn9UUlzBBia6E5nYrwi8oBHDAz1BPKCv0jK9So8oEXvP3U_EpgtyHQ/s1532/before-subscript-spelling.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxcQlDo4Srud9vf1KX4xR5MfLrkN6MDGJ77Jd_zt6puPVJYSp-OJLqY2fAu9nPqbeGRC7KOV50Na5Zl1jcXuF2qcgPxCb0k6tn1xRpIKx6y4_hXuiiSLl5XpQrVRtL85G04PuSCtn9UUlzBBia6E5nYrwi8oBHDAz1BPKCv0jK9So8oEXvP3U_EpgtyHQ/w640-h230/before-subscript-spelling.png" width="640"/></a></div><p>Now corrected as:</p><p/><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuCt4xtfEq3T5BcoEdqIaiYCjKOc26nSuBr4qv9SePmRXE3A606fDnNQ2V9UkNhxdJSPYnPLqaF3CyDIZXuE3fSCdnnfZeN4N0GtELWDX7KTblOXZw4rV_cGysv2Rvh_8Wdf6OwdfdfhyR0J7zuwy2O22R_LvV_Y--nnFInxECdBhITy3LWoDhy7Oe5lA/s1532/after-subscript-spelling.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuCt4xtfEq3T5BcoEdqIaiYCjKOc26nSuBr4qv9SePmRXE3A606fDnNQ2V9UkNhxdJSPYnPLqaF3CyDIZXuE3fSCdnnfZeN4N0GtELWDX7KTblOXZw4rV_cGysv2Rvh_8Wdf6OwdfdfhyR0J7zuwy2O22R_LvV_Y--nnFInxECdBhITy3LWoDhy7Oe5lA/w640-h230/after-subscript-spelling.png" width="640"/></a></div><p/><p>and finally added was a missing implementation in the RTF export of shape text to allow the small caps format to be copy and pasted into other applications from impress.<br/></p></div>
    </content>
    <updated>2023-08-23T16:01:20Z</updated>
    <published>2023-08-23T16:01:00Z</published>
    <author>
      <name>caolan</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/01095733023264403205</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-1948642343859505027</id>
      <author>
        <name>caolan</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/01095733023264403205</uri>
      </author>
      <link href="http://caolanm.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://caolanm.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/1948642343859505027/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Caolán McNamara</title>
      <updated>2024-02-11T18:03:33Z</updated>
    </source>
  </entry>
</feed>
