<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>156561</bug_id>
          
          <creation_ts>2008-01-24 17:21:49 +0000</creation_ts>
          <short_desc>[PATCH] Thai language issues in Kate</short_desc>
          <delta_ts>2018-10-27 04:18:47 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>kate</product>
          <component>part</component>
          <version>unspecified</version>
          <rep_platform>Ubuntu</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>triaged</keywords>
          <priority>VHI</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pattara Kiatisevi">ott</reporter>
          <assigned_to name="KWrite Developers">kwrite-bugs-null</assigned_to>
          <cc>christoph</cc>
    
    <cc>glooffy23</cc>
    
    <cc>ott</cc>
    
    <cc>rodda</cc>
          
          <cf_commitlink>http://commits.kde.org/kate/f6a351d4e5fbd4a32c09ab312b463fcd65a33d2e</cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>20</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574783</commentid>
    <comment_count>0</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-01-24 17:21:49 +0000</bug_when>
    <thetext>Version:            (using KDE 4.0.0)
Installed from:    Ubuntu Packages

This patch by Jakkapun Kwanroengjai fixes Thai-related issues in Kate.

-Word breaking: it uses libthai (either compile-time linking or dynamic loading in the similar fashion to in KHTML) to determine words boundaries positions and stores in the m_breakLine attributes. Pressing the Ctrl + Left/Right arrow keys should now be able to jump between Thai words.

-Cursor movement and delete/backspace keys&apos; behavior: now works correctly in case of Thai text

-Input method: fixed in the Qt::ImCursorPosition case to return the correct position

-Wrap text: wrap Thai sentences properly when selecting Tool / Word Wrap Document. (Question: where to fix if we want this wrapping to happen automatically?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574784</commentid>
    <comment_count>1</comment_count>
      <attachid>23243</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-01-24 17:22:48 +0000</bug_when>
    <thetext>Created attachment 23243
Fix several Thai related issues in Kate/Kwrite

By Jakkapun Kwanroengjai 
URL:
http://linux.thai.net/viewvc/viewvc.cgi/software/kde/kdelibs-4.0.0/kate_thai_patch.diff?view=log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576262</commentid>
    <comment_count>2</comment_count>
    <who name="Hamish Rodda">rodda</who>
    <bug_when>2008-01-29 06:26:41 +0000</bug_when>
    <thetext>Patch looks ok to me, if one of the other kate devs can try it out to check for regressions and it looks ok, it can be committed (sorry, no time to do so here at the moment)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576372</commentid>
    <comment_count>3</comment_count>
      <attachid>23350</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-01-29 17:10:38 +0000</bug_when>
    <thetext>Created attachment 23350
Fix several Thai related issues in Kate/Kwrite

Updated patch from Mr.Jakkapun Kwanroengjai

+ fix Thai word break problem in the case of dynamic word wrapping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578649</commentid>
    <comment_count>4</comment_count>
      <attachid>23476</attachid>
    <who name="Jakkapun Kwanroengjai">glooffy23</who>
    <bug_when>2008-02-08 11:22:36 +0000</bug_when>
    <thetext>Created attachment 23476
Fix Thai word break crash in Kate/Kwrite

Fix Thai word break crash in Kate/Kwrite</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638849</commentid>
    <comment_count>5</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2008-08-19 00:05:54 +0000</bug_when>
    <thetext>No idea about it? Commit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638910</commentid>
    <comment_count>6</comment_count>
    <who name="Hamish Rodda">rodda</who>
    <bug_when>2008-08-19 05:07:18 +0000</bug_when>
    <thetext>I&apos;ve had another look at this...

1) &quot;Question: where to fix if we want this wrapping to happen
automatically?&quot;

As far as I understand, you&apos;d need to patch Qt or at least report it to Trolltech.  We use QTextOption::WrapAtWordBoundaryOrAnywhere now in katepart SVN head, and if Qt isn&apos;t breaking at the correct places, that&apos;s a Qt issue.

2) I&apos;m not sure about having that break line vector in text line, that seems like a bit of an unnecessary use of memory, can&apos;t it be calculated only when needed, or stored somewhere else (eg. in KateTextLine / KateTextLayout) temporarily?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638934</commentid>
    <comment_count>7</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2008-08-19 07:51:27 +0000</bug_when>
    <thetext>For 2), I don&apos;t want a line break vector in textline, that is overhead not justified just for thai linebreaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641719</commentid>
    <comment_count>8</comment_count>
      <attachid>27096</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-08-28 10:00:03 +0000</bug_when>
    <thetext>Created attachment 27096
kdelibs/kate Thai wordbreak patch

Updated patch for KDE 4.1 /Qt 4.4 -- use Qt/HarfBuzz to break words instead of doing it by ourselves

(patch by Thanomsub Noppaburana)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641720</commentid>
    <comment_count>9</comment_count>
      <attachid>27097</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-08-28 10:07:36 +0000</bug_when>
    <thetext>Created attachment 27097
kdelibs/kate im cursor query patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641721</commentid>
    <comment_count>10</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-08-28 10:10:27 +0000</bug_when>
    <thetext>We have patched Qt 4.4 to include Thai support and will send to Trolltech. The new patch above won&apos;t do the breaking by itself anymore but instead will consult Qt. Please help review.

Cheers,
Pattara</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641796</commentid>
    <comment_count>11</comment_count>
    <who name="Hamish Rodda">rodda</who>
    <bug_when>2008-08-28 17:14:06 +0000</bug_when>
    <thetext>Thanks for the new patch, it seems to be more in line with what I wanted (support to mainly come from Qt).  I&apos;ll take a look in detail soon.

The im cursor query patch is already implemented in trunk, although a little differently to what you have done (it returns the start of the preedit string when one exists).  Could you please test that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642012</commentid>
    <comment_count>12</comment_count>
    <who name="Jakkapun Kwanroengjai">glooffy23</who>
    <bug_when>2008-08-29 12:44:50 +0000</bug_when>
    <thetext>I tested the code in trunk and found m_cursor.start().column() is always zero  so XIM doesn&apos;t really work.

Here I dump the values of m_cursor.start().column() compared to those of m_cursor.column() when typing a Thai word &quot;ที่&quot;

m_cursor.start().column() = 0    m_cursor.column() = 1
m_cursor.start().column() = 0    m_cursor.column() = 2  
m_cursor.start().column() = 0    m_cursor.column() = 3  
m_cursor.start().column() = 0    m_cursor.column() = 3  
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663847</commentid>
    <comment_count>13</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2008-11-12 13:34:49 +0000</bug_when>
    <thetext>This is to inform that the above two Thai language related patches for kwrite ( Thai wordbreak and IM cursor query) works OK on KDE 4.1.3/Qt 4.4.3 (just tested).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833238</commentid>
    <comment_count>14</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2009-09-20 06:39:25 +0000</bug_when>
    <thetext>So any progress on this? Any comment with the patch?

Commit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959170</commentid>
    <comment_count>15</comment_count>
    <who name="Dominik Haumann">dhaumann</who>
    <bug_when>2010-05-09 09:10:46 +0000</bug_when>
    <thetext>Can you please build current kate and check whether this is still an issue?
As far as I know the patch was never committed. A tutorial on how to compile kate can be found here: http://gitorious.org/kate/pages/Building%20Kate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961529</commentid>
    <comment_count>16</comment_count>
      <attachid>43547</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2010-05-13 18:20:10 +0000</bug_when>
    <thetext>Created attachment 43547
Fixed Thai-related problems in Kate (Word break and cursor movement)

-word wrapping
-cursor movement
-delete and backspace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961530</commentid>
    <comment_count>17</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2010-05-13 18:22:37 +0000</bug_when>
    <thetext>Yes the problem still exists and we have revised the patch against KDE 4.4.2 (source from Ubuntu Lucid).

Correct the patch was never committed and we&apos;re wondering why...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965795</commentid>
    <comment_count>18</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2010-05-22 20:41:02 +0000</bug_when>
    <thetext>Could you redo the patch without the ugly defines? I guess requiring Qt 4.4 is no problem, KDE anyways needs 4.5/6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037286</commentid>
    <comment_count>19</comment_count>
    <who name="Dominik Haumann">dhaumann</who>
    <bug_when>2010-10-26 15:48:13 +0000</bug_when>
    <thetext>@Pattara: Can you build Kate again (http://kate-editor.org/get-it/), and if the bug still exists, redo your patch without the redefines? Maybe we&apos;ll finally get this in for KDE 4.6 then!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037329</commentid>
    <comment_count>20</comment_count>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2010-10-26 17:39:37 +0000</bug_when>
    <thetext>OK Dominik we&apos;ll try, thank you.

Pattara</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151426</commentid>
    <comment_count>21</comment_count>
    <who name="Dominik Haumann">dhaumann</who>
    <bug_when>2011-08-08 12:52:18 +0000</bug_when>
    <thetext>Any updates? It&apos;s been almost a year, and in the meantime KDE 4.7 is out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210812</commentid>
    <comment_count>22</comment_count>
      <attachid>67527</attachid>
    <who name="Pattara Kiatisevi">ott</who>
    <bug_when>2012-01-07 03:28:45 +0000</bug_when>
    <thetext>Created attachment 67527
Fixed Thai-related problems in Kate (Word break and cursor movement)

Sorry for the long delay. We just tested against 4.7.3. The bug still exists. The revised patch is as attached. Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272548</commentid>
    <comment_count>23</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2012-07-04 14:40:04 +0000</bug_when>
    <thetext>Git commit 1d3b6bca55b8d73c88dd122861f5927cc3c3098e by Christoph Cullmann.
Committed on 04/07/2012 at 16:39.
Pushed by cullmann into branch &apos;master&apos;.

apply patch for thai
we missed to have this for KDE 4.9, but without wider testing, I won&apos;t like to backport this
now at least in master
thanks for the patch, please review, if current behavior is now ok

M  +4    -7    part/document/katedocument.cpp
M  +16   -9    part/view/kateview.cpp
M  +73   -52   part/view/kateviewinternal.cpp

http://commits.kde.org/kate/1d3b6bca55b8d73c88dd122861f5927cc3c3098e</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272948</commentid>
    <comment_count>24</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2012-07-05 14:28:42 +0000</bug_when>
    <thetext>Git commit f6a351d4e5fbd4a32c09ab312b463fcd65a33d2e by Christoph Cullmann.
Committed on 05/07/2012 at 16:27.
Pushed by cullmann into branch &apos;master&apos;.

try to fix selectWord
did crash with thai patch sometimes, because out of range
use hl functions again
please review thai guys ;)

M  +21   -17   part/view/kateview.cpp

http://commits.kde.org/kate/f6a351d4e5fbd4a32c09ab312b463fcd65a33d2e</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307862</commentid>
    <comment_count>25</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2012-10-21 11:38:00 +0000</bug_when>
    <thetext>Reopen, reverted commits because of regressions, see:

On Wednesday 17 Oct 2012 21:50:55 Michel Ludwig wrote:
&gt; Hi,
&gt; 
&gt; On Wed 17 Oct 2012 08:56:22 Simon St James wrote:
&gt; &gt; The commit:
&gt; &gt; 
&gt; &gt; https://projects.kde.org/projects/kde/kde-
&gt; &gt; baseapps/kate/repository/revisions/1d3b6bca55b8d73c88dd122861f5927cc3c3098
&gt; &gt; e
&gt; &gt; 
&gt; &gt; which fixes bug:
&gt; &gt; 
&gt; &gt; https://bugs.kde.org/show_bug.cgi?id=156561
&gt; &gt; 
&gt; &gt; breaks word-wrapping pretty severely, making e.g. Kile almost unusable.  A
&gt; &gt; small test-case can be found by running vimode_test (it&apos;s currently the
&gt; &gt; only failing test). I&apos;d look into it myself, but I don&apos;t know enough about
&gt; &gt; https://bugs.kde.org/show_bug.cgi?id=156561 to not break anything :/
&gt; 
&gt; Is this maybe related to bug 304258 as well?
&gt; 
&gt; https://bugs.kde.org/show_bug.cgi?id=304258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309863</commentid>
    <comment_count>26</comment_count>
    <who name="Christoph Cullmann">christoph</who>
    <bug_when>2012-10-27 09:47:33 +0000</bug_when>
    <thetext>In would need an updated patch, this own breaks word wrap and co :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785275</commentid>
    <comment_count>27</comment_count>
    <who name="Andrew Crouthamel">andrew.crouthamel</who>
    <bug_when>2018-09-23 02:32:12 +0000</bug_when>
    <thetext>Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED &gt; WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801160</commentid>
    <comment_count>28</comment_count>
    <who name="Andrew Crouthamel">andrew.crouthamel</who>
    <bug_when>2018-10-27 04:18:47 +0000</bug_when>
    <thetext>Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED &gt; WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23243</attachid>
            <date>2008-01-24 17:22:48 +0000</date>
            <delta_ts>2008-01-29 17:10:38 +0000</delta_ts>
            <desc>Fix several Thai related issues in Kate/Kwrite</desc>
            <filename>kate_thai_patch.diff</filename>
            <type>text/plain</type>
            <size>10093</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5ycCBrZGU0bGlicy00LjAuMC5vcmlnL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50
LmNwcCBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3VtZW50L2thdGVkb2N1bWVudC5jcHAKLS0tIGtk
ZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCTIwMDgtMDEt
MjQgMTQ6MTY6NDcuMDAwMDAwMDAwICswNzAwCisrKyBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3Vt
ZW50L2thdGVkb2N1bWVudC5jcHAJMjAwOC0wMS0yNCAxNjozMjo1NS4wMDAwMDAwMDAgKzA3MDAK
QEAgLTU2MCw2ICs1NjAsMTYgQEAgUVN0cmluZyBLYXRlRG9jdW1lbnQ6OmxpbmUoIGludCBsaW5l
ICkgYwogICByZXR1cm4gbC0+c3RyaW5nKCk7CiB9CiAKK2Jvb2wgS2F0ZURvY3VtZW50OjpnZXRC
cmVha0xpbmUoaW50IGxpbmUsIGludCBjb2wpCit7CisgIEthdGVUZXh0TGluZTo6UHRyIGwgPSBt
X2J1ZmZlci0+cGxhaW5MaW5lKGxpbmUpOworCisgIGlmKCFsKQorICAgIHJldHVybiAwOworICAK
KyAgcmV0dXJuIGwtPmlzQnJlYWthYmxlKGNvbCk7Cit9CisKIGJvb2wgS2F0ZURvY3VtZW50Ojpz
ZXRUZXh0KGNvbnN0IFFTdHJpbmcgJnMpCiB7CiAgIGlmICghaXNSZWFkV3JpdGUoKSkKQEAgLTEx
ODksMjUgKzExOTksMjEgQEAgYm9vbCBLYXRlRG9jdW1lbnQ6OndyYXBUZXh0KGludCBzdGFydExp
bgogICAgICAgLy8gVGhpcyBjb3VsZCBiZSBhIHByaW9yaXR5IChzZXR0aW5nKSBpbiB0aGUgaGwv
ZmlsZXR5cGUvZG9jdW1lbnQKICAgICAgIGludCB6ID0gMDsKICAgICAgIGludCBudyA9IDA7IC8v
IGFsdGVybmF0aXZlIHBvc2l0aW9uLCBhIG5vbiB3b3JkIGNoYXJhY3RlcgorICAgICAgYm9vbCBy
ZW1vdmVUcmFpbGluZ1NwYWNlID0gZmFsc2U7CisKICAgICAgIGZvciAoej1zZWFyY2hTdGFydDsg
eiA+IDA7IHotLSkKICAgICAgIHsKLSAgICAgICAgaWYgKHQuYXQoeikuaXNTcGFjZSgpKSBicmVh
azsKLSAgICAgICAgaWYgKCAhIG53ICYmIGhpZ2hsaWdodCgpLT5jYW5CcmVha0F0KCB0LmF0KHop
ICwgbC0+YXR0cmlidXRlKHopICkgKQotICAgICAgICBudyA9IHo7CisgICAgICAgIGlmICh0LmF0
KHopLmlzU3BhY2UoKSkgeworCSAgcmVtb3ZlVHJhaWxpbmdTcGFjZSA9IHRydWU7IAorCSAgeisr
OworCSAgYnJlYWs7CisJfQorICAgICAgICBpZiAobC0+aXNCcmVha2FibGUoeikpIGJyZWFrOwor
CWlmICggISBudyAmJiBoaWdobGlnaHQoKS0+Y2FuQnJlYWtBdCggdC5hdCh6KSAsIGwtPmF0dHJp
YnV0ZSh6KSApICkKKyAgICAgICAgICBudyA9IHo7CiAgICAgICB9CiAKLSAgICAgIGJvb2wgcmVt
b3ZlVHJhaWxpbmdTcGFjZSA9IGZhbHNlOwotICAgICAgaWYgKHogPiAwKQotICAgICAgewotICAg
ICAgICAvLyBTbyB3aHkgZG9uJ3Qgd2UganVzdCByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlIHJp
Z2h0IGF3YXk/Ci0gICAgICAgIC8vIFdlbGwsIHRoZSAodmlldydzKSBjdXJzb3IgbWF5IGJlIGRp
cmVjdGx5IGluIGZyb250IG9mIHRoYXQgc3BhY2UKLSAgICAgICAgLy8gKHVzZXIgdHlwaW5nIHRl
eHQgYmVmb3JlIHRoZSBsYXN0IHdvcmQgb24gdGhlIGxpbmUpLCBhbmQgaWYgdGhhdAotICAgICAg
ICAvLyBoYXBwZW5zLCB0aGUgY3Vyc29yIHdvdWxkIGJlIG1vdmVkIHRvIHRoZSBuZXh0IGxpbmUs
IHdoaWNoIGlzIG5vdAotICAgICAgICAvLyB3aGF0IHdlIHdhbnQgKGJ1ZyAjMTA2MjYxKQotICAg
ICAgICB6Kys7Ci0gICAgICAgIHJlbW92ZVRyYWlsaW5nU3BhY2UgPSB0cnVlOwotICAgICAgfQot
ICAgICAgZWxzZQorICAgICAgaWYgKHogPT0gMCkKICAgICAgIHsKICAgICAgICAgLy8gVGhlcmUg
d2FzIG5vIHNwYWNlIHRvIGJyZWFrIGF0IHNvIGJyZWFrIGF0IGEgbm9ud29yZCBjaGFyYWN0ZXIg
aWYKICAgICAgICAgLy8gZm91bmQsIG9yIGF0IHRoZSB3cmFwY29sdW1uICggdGhhdCBuZWVkcyBi
ZSBjb25maWd1cmFibGUgKQpkaWZmIC11TnJwIGtkZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1
bWVudC9rYXRlZG9jdW1lbnQuaCBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3VtZW50L2thdGVkb2N1
bWVudC5oCi0tLSBrZGU0bGlicy00LjAuMC5vcmlnL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50
LmgJMjAwOC0wMS0yNCAxNDoxNjo0Ny4wMDAwMDAwMDAgKzA3MDAKKysrIGtkZTRsaWJzLTQuMC4w
L2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmgJMjAwOC0wMS0yNCAxNDoxODo0Ny4wMDAwMDAw
MDAgKzA3MDAKQEAgLTE4Myw2ICsxODMsNyBAQCBjbGFzcyBLYXRlRG9jdW1lbnQgOiBwdWJsaWMg
S1RleHRFZGl0b3I6CiAgICAgdmlydHVhbCBRU3RyaW5nIGxpbmUoaW50IGxpbmUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgUUNoYXIgY2hhcmFjdGVyKGNvbnN0IEtUZXh0RWRpdG9yOjpDdXJzb3ImIHBv
c2l0aW9uKSBjb25zdDsKICAgICBpbnQgbGluZXMoKSBjb25zdDsKKyAgICBib29sIGdldEJyZWFr
TGluZShpbnQgbGluZSwgaW50IGNvbCk7CiAgICAgdmlydHVhbCBLVGV4dEVkaXRvcjo6Q3Vyc29y
IGRvY3VtZW50RW5kKCkgY29uc3Q7CiAgICAgaW50IG51bVZpc0xpbmVzKCkgY29uc3Q7CiAgICAg
aW50IHRvdGFsQ2hhcmFjdGVycygpIGNvbnN0OwpkaWZmIC11TnJwIGtkZTRsaWJzLTQuMC4wLm9y
aWcva2F0ZS9kb2N1bWVudC9rYXRldGV4dGxpbmUuY3BwIGtkZTRsaWJzLTQuMC4wL2thdGUvZG9j
dW1lbnQva2F0ZXRleHRsaW5lLmNwcAotLS0ga2RlNGxpYnMtNC4wLjAub3JpZy9rYXRlL2RvY3Vt
ZW50L2thdGV0ZXh0bGluZS5jcHAJMjAwOC0wMS0yNCAxNDoxNjo0Ny4wMDAwMDAwMDAgKzA3MDAK
KysrIGtkZTRsaWJzLTQuMC4wL2thdGUvZG9jdW1lbnQva2F0ZXRleHRsaW5lLmNwcAkyMDA4LTAx
LTI0IDE2OjMzOjU5LjAwMDAwMDAwMCArMDcwMApAQCAtMjgsNiArMjgsMTA4IEBACiAKICNpbmNs
dWRlIDxRdENvcmUvUVJlZ0V4cD4KIAorLy9Mb2FkIExpYnRoYWkKKyNpbmNsdWRlIDxRdENvcmUv
UVRleHRDb2RlYz4KKyNpbmNsdWRlIDxxbGlicmFyeS5oPgorI2lmbmRlZiBIQVZFX0xJQlRIQUkK
K3R5cGVkZWYgaW50ICgqdGhfYnJrX2RlZikoY29uc3QgdW5zaWduZWQgY2hhciosIGludFtdLCBp
bnQpOworc3RhdGljIHRoX2Jya19kZWYgdGhfYnJrOworI2Vsc2UKKyNpbmNsdWRlIDx0aGFpL3Ro
YWlsaWIuaD4KKyNpbmNsdWRlIDx0aGFpL3RoYnJrLmg+CisjZW5kaWYKKworLy9UaGFpIEJyZWFr
CitzdHJ1Y3QgVGhhaUNhY2hlCit7CisgICAgVGhhaUNhY2hlKCkgeworICAgICAgICBzdHJpbmcg
PSAwOworICAgICAgICBhbGxvY2F0ZWQgPSAweDQwMDsKKyAgICAgICAgd2JycG9zID0gKGludCAq
KSBtYWxsb2MoYWxsb2NhdGVkKnNpemVvZihpbnQpKTsKKyAgICAgICAgbnVtd2JycG9zID0gMDsK
KyAgICAgICAgbnVtaXNicmVha2FibGUgPSAweDQwMDsKKyAgICAgICAgaXNicmVha2FibGUgPSAo
aW50ICopIG1hbGxvYyhudW1pc2JyZWFrYWJsZSpzaXplb2YoaW50KSk7CisgICAgfQorICAgIH5U
aGFpQ2FjaGUoKSB7CisgICAgICAgIGZyZWUod2JycG9zKTsKKyAgICAgICAgZnJlZShpc2JyZWFr
YWJsZSk7CisgICAgfQorICAgIGNvbnN0IFFDaGFyICpzdHJpbmc7CisgICAgaW50ICp3YnJwb3M7
CisgICAgaW50ICppc2JyZWFrYWJsZTsKKyAgICBpbnQgYWxsb2NhdGVkOworICAgIGludCBudW13
YnJwb3MsbnVtaXNicmVha2FibGU7Cit9Oworc3RhdGljIFRoYWlDYWNoZSAqY2FjaGUgPSAwOwor
Cit2b2lkIGNsZWFudXBfdGhhaWJyZWFrcygpCit7CisgICAgZGVsZXRlIGNhY2hlOworICAgIGNh
Y2hlID0gMDsKKyNpZm5kZWYgSEFWRV9MSUJUSEFJCisgICAgdGhfYnJrID0gMDsKKyNlbmRpZgor
fQorCitpbnQqIGlzYnJlYWtXb3JkVGhhaSggY29uc3QgUUNoYXIgKnN0cmluZywgY29uc3QgaW50
IHBvcywgY29uc3QgaW50IGxlbikKK3sKKyAgICBzdHJpbmcgPSBzdHJpbmcgKyBwb3M7CisgICAg
c3RhdGljIFFUZXh0Q29kZWMgKnRoYWlDb2RlYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWliKDIy
NTkpOworCisjaWZuZGVmIEhBVkVfTElCVEhBSQorICAgIC8vIEtMaWJMb2FkZXIgcmVxdWlyZXMg
bGlidGhhaS5sYSB3aGljaCBpcyB1c3VhbGx5IGluIGxpYnRoYWktZGV2IHBhY2thZ2Ugb3IgZG9l
c24ndCBleGlzdCBhdCBhbGwKKyAgICAvLyBRTGlicmFyeTo6cmVzb2x2ZSB3aWxsIGxvb2sgZm9y
IGxpYnRoYWkuc28uMCBkaXJlY3RseQorICAgIC8qIGxvYWQgbGlidGhhaSBkeW5hbWljYWxseSAq
LworICAgIGlmICghdGhfYnJrICYmIHRoYWlDb2RlYykgeworICAgICAgICBwcmludGYoIlRyeSB0
byBsb2FkIGxpYnRoYWkgZHluYW1pY2FsbHkuLi5cbiIpOworICAgICAgICB0aF9icmsgPSAodGhf
YnJrX2RlZilRTGlicmFyeTo6cmVzb2x2ZSgidGhhaSIsICJ0aF9icmsiKTsKKyAgICAgICAgaWYg
KCF0aF9icmspIHsKKyAgICAgICAgcHJpbnRmKCJFcnJvciwgY2FuJ3QgbG9hZCBsaWJ0aGFpLi4u
XG4iKTsKKyAgICAgICAgICAgIHRoYWlDb2RlYyA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoIXRoX2JyayApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorI2VuZGlmCisK
KyAgICBpZiAoIWNhY2hlICkgeworICAgICAgICBjYWNoZSA9IG5ldyBUaGFpQ2FjaGU7CisjaWZu
ZGVmIEhBVkVfTElCVEhBSQorICAgICAgICAgICAgLy9jYWNoZS0+bGlicmFyeSA9IGxpYjsKKyNl
bmRpZgorICAgIH0KKyAgICAvLyBidWlsZCB1cCBzdHJpbmcgb2YgdGhhaSBjaGFycworICAgIGlm
ICggc3RyaW5nICE9IGNhY2hlLT5zdHJpbmcgKSB7CisgICAgICAgIC8vZnByaW50ZihzdGRlcnIs
Im5ldyBzdHJpbmcgZm91bmQgKG5vdCBpbiBjYWNoZSksIGNhbGxpbmcgbGlidGhhaVxuIik7Cisg
ICAgICAgIFFCeXRlQXJyYXkgY3N0ciA9IHRoYWlDb2RlYy0+ZnJvbVVuaWNvZGUoIFFTdHJpbmc6
OmZyb21SYXdEYXRhKHN0cmluZyxsZW4pKTsKKyAgICAgICAgLy9wcmludGYoIkFib3V0IHRvIGNh
bGwgbGlidGhhaTo6dGhfYnJrIHdpdGggc3RyOiAlcyIsY3N0ci5kYXRhKCkpOworICAgICAgICBj
YWNoZS0+bnVtd2JycG9zID0gdGhfYnJrKChjb25zdCB1bnNpZ25lZCBjaGFyKikgY3N0ci5kYXRh
KCksIGNhY2hlLT53YnJwb3MsIGNhY2hlLT5hbGxvY2F0ZWQpOworICAgICAgICAvL2ZwcmludGYo
c3RkZXJyLCJsaWJ0aGFpIHJldHVybnMgd2l0aCB2YWx1ZSAlZFxuIixjYWNoZS0+bnVtd2JycG9z
KTsKKyAgICAgICAgaWYgKGNhY2hlLT5udW13YnJwb3MgPj0gY2FjaGUtPmFsbG9jYXRlZCkgewor
ICAgICAgICAgICAgY2FjaGUtPmFsbG9jYXRlZCA9IGxlbjsKKyAgICAgICAgICAgIGNhY2hlLT53
YnJwb3MgPSAoaW50ICopcmVhbGxvYyhjYWNoZS0+d2JycG9zLCBjYWNoZS0+YWxsb2NhdGVkKnNp
emVvZihpbnQpKTsKKyAgICAgICAgICAgIGNhY2hlLT5udW13YnJwb3MgPSB0aF9icmsoKGNvbnN0
IHVuc2lnbmVkIGNoYXIqKSBjc3RyLmRhdGEoKSwgY2FjaGUtPndicnBvcywgY2FjaGUtPmFsbG9j
YXRlZCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBsZW4gPiBjYWNoZS0+bnVtaXNicmVha2Fi
bGUgKSB7CisgICAgICAgICAgICBjYWNoZS0+bnVtaXNicmVha2FibGU9bGVuOworICAgICAgICAg
ICAgY2FjaGUtPmlzYnJlYWthYmxlID0gKGludCAqKXJlYWxsb2MoY2FjaGUtPmlzYnJlYWthYmxl
LCBjYWNoZS0+bnVtaXNicmVha2FibGUqc2l6ZW9mKGludCkpOworICAgICAgICB9CisgICAgICAg
IGZvciAoaW50IGkgPSAwIDsgaSA8IGxlbiA7ICsraSkgeworICAgICAgICAgICAgY2FjaGUtPmlz
YnJlYWthYmxlW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoIGNhY2hlLT5udW13YnJw
b3MgPiAwICkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGNhY2hlLT5udW13YnJwb3MtMTsg
aSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBjYWNoZS0+aXNicmVha2FibGVbY2FjaGUt
PndicnBvc1tpXV0gPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhY2hl
LT5zdHJpbmcgPSBzdHJpbmc7CisgICAgfQorIAorICAgIHJldHVybiBjYWNoZS0+aXNicmVha2Fi
bGU7Cit9CisKIEthdGVUZXh0TGluZTo6S2F0ZVRleHRMaW5lICgpCiAgIDogbV9mbGFncygwKQog
ewpAQCAtNDksNiArMTUxLDM2IEBAIHZvaWQgS2F0ZVRleHRMaW5lOjppbnNlcnRUZXh0IChpbnQg
cG9zLCAKICAgICByZXR1cm47CiAKICAgbV90ZXh0Lmluc2VydCAocG9zLCBpbnNUZXh0KTsKKwor
ICBtX2JyZWFrTGluZS5yZXNpemUgKG1fdGV4dC5zaXplKCkpOworICBmb3IgKGludCBpID0gcG9z
OyBpIDwgcG9zICsgaW5zVGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgbV9icmVha0xpbmUuaW5z
ZXJ0IChpLCBmYWxzZSk7CisgIH0KKworICBpbnQgaSA9IHBvczsKKyAgd2hpbGUgKGkgIT0gMCAm
JiAhbV90ZXh0W2ldLmlzU3BhY2UoKSkgeworICAgIC0taTsKKyAgfQorCisgIHdoaWxlIChpIDwg
cG9zICsgaW5zVGV4dC5sZW5ndGgoKSkgeworICAgIGludCB0aF9sZW4gPSAwOworICAgIHdoaWxl
IChtX3RleHRbaV0udW5pY29kZSgpIDwgMHgwZTAwICYmIG1fdGV4dFtpXS51bmljb2RlKCkgPj0g
MHgwZTgwICYmIGkgPCBwb3MgKyBpbnNUZXh0Lmxlbmd0aCgpKQorICAgICAgaSsrOworICAgIHdo
aWxlIChtX3RleHRbaSArIHRoX2xlbl0udW5pY29kZSgpID49IDB4MGUwMCAmJiBtX3RleHRbaSAr
IHRoX2xlbl0udW5pY29kZSgpIDwgMHgwZTgwICYmIGkgKyB0aF9sZW4gPCBwb3MgKyBpbnNUZXh0
Lmxlbmd0aCgpKQorICAgICAgdGhfbGVuKys7CisKKyAgICBpZiAodGhfbGVuID4gMCkgeworICAg
ICAgaW50KiB0aF9icmVhayA9IGlzYnJlYWtXb3JkVGhhaShtX3RleHQuY29uc3REYXRhKCksIGks
IHRoX2xlbik7CisgICAgICBmb3IgKGludCBqID0gaTtqIDwgaSArIHRoX2xlbjsgaisrKQorICAg
ICAgICBtX2JyZWFrTGluZVtqXSA9IHRoX2JyZWFrW2ogLSBpXTsKKyAgICB9CisgICAgaSArPSB0
aF9sZW4gKyAxOworICB9Cit9CisKK2Jvb2wgS2F0ZVRleHRMaW5lOjppc0JyZWFrYWJsZSAoaW50
IHBvcykKK3sKKyAgcmV0dXJuIG1fYnJlYWtMaW5lW3Bvc107CiB9CiAKIHZvaWQgS2F0ZVRleHRM
aW5lOjpyZW1vdmVUZXh0ICh1aW50IHBvcywgdWludCBkZWxMZW4pCkBAIC02OSw2ICsyMDEsNyBA
QCB2b2lkIEthdGVUZXh0TGluZTo6cmVtb3ZlVGV4dCAodWludCBwb3MsCiAgICAgZGVsTGVuID0g
dGV4dExlbiAtIHBvczsKIAogICBtX3RleHQucmVtb3ZlIChwb3MsIGRlbExlbik7CisgIG1fYnJl
YWtMaW5lLnJlbW92ZSAocG9zLCBkZWxMZW4pOwogfQogCiB2b2lkIEthdGVUZXh0TGluZTo6dHJ1
bmNhdGUoaW50IG5ld0xlbikKZGlmZiAtdU5ycCBrZGU0bGlicy00LjAuMC5vcmlnL2thdGUvZG9j
dW1lbnQva2F0ZXRleHRsaW5lLmgga2RlNGxpYnMtNC4wLjAva2F0ZS9kb2N1bWVudC9rYXRldGV4
dGxpbmUuaAotLS0ga2RlNGxpYnMtNC4wLjAub3JpZy9rYXRlL2RvY3VtZW50L2thdGV0ZXh0bGlu
ZS5oCTIwMDgtMDEtMjQgMTQ6MTY6NDcuMDAwMDAwMDAwICswNzAwCisrKyBrZGU0bGlicy00LjAu
MC9rYXRlL2RvY3VtZW50L2thdGV0ZXh0bGluZS5oCTIwMDgtMDEtMjQgMTQ6MTg6NDcuMDAwMDAw
MDAwICswNzAwCkBAIC0yODUsNiArMjg1LDEyIEBAIGNsYXNzIEthdGVUZXh0TGluZSA6IHB1Ymxp
YyBLU2hhcmVkCiAgICAgdm9pZCBpbnNlcnRUZXh0IChpbnQgcG9zLCBjb25zdCBRU3RyaW5nJiBp
bnNUZXh0KTsKIAogICAgIC8qKgorICAgICAqIHJldHVybiBicmVha2xpbmUgYXR0cmlidXRlIG1f
YnJlYWtMaW5lCisgICAgICogQHBhcmFtIHBvcyBpbnNlcnQgcG9zaXRpb24KKyAgICAgKi8gICAg
CisgICAgYm9vbCBpc0JyZWFrYWJsZSAoaW50IHBvcyk7CisKKyAgICAvKioKICAgICAgKiByZW1v
dmUgdGV4dCBhdCBnaXZlbiBwb3NpdGlvbgogICAgICAqIEBwYXJhbSBwb3Mgc3RhcnQgcG9zaXRp
b24gb2YgcmVtb3ZlCiAgICAgICogQHBhcmFtIGRlbExlbiBsZW5ndGggdG8gcmVtb3ZlCkBAIC0z
NzUsNiArMzgxLDExIEBAIGNsYXNzIEthdGVUZXh0TGluZSA6IHB1YmxpYyBLU2hhcmVkCiAgICAg
ICovCiAgICAgUVZlY3RvcjxpbnQ+IG1fYXR0cmlidXRlc0xpc3Q7CiAKKyAgICAgLyoqCisgICAg
ICogQXR0cmlidXRlIGZvciBsaW5lQnJlYWsgdmFsdWUgInRydWUiIGZvciBicmVha2xpbmUKKyAg
ICAgKi8KKyAgICBRVmVjdG9yPGJvb2w+IG1fYnJlYWtMaW5lOworCiAgICAgLyoqCiAgICAgICog
Y29udGV4dCBzdGFjawogICAgICAqLwpkaWZmIC11TnJwIGtkZTRsaWJzLTQuMC4wLm9yaWcva2F0
ZS92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwIGtkZTRsaWJzLTQuMC4wL2thdGUvdmlldy9rYXRl
dmlld2ludGVybmFsLmNwcAotLS0ga2RlNGxpYnMtNC4wLjAub3JpZy9rYXRlL3ZpZXcva2F0ZXZp
ZXdpbnRlcm5hbC5jcHAJMjAwOC0wMS0yNCAxNDoxNjo0Ny4wMDAwMDAwMDAgKzA3MDAKKysrIGtk
ZTRsaWJzLTQuMC4wL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcAkyMDA4LTAxLTI0IDE0
OjE4OjQ3LjAwMDAwMDAwMCArMDcwMApAQCAtNzMyLDcgKzczMiwxMSBAQCB2b2lkIEthdGVWaWV3
SW50ZXJuYWw6OmRvUmV0dXJuKCkKIAogdm9pZCBLYXRlVmlld0ludGVybmFsOjpkb0RlbGV0ZSgp
CiB7Ci0gIG1fZG9jLT5kZWwoIG1fdmlldywgbV9jdXJzb3IgKTsKKyAgaWYgKCBtX3ZpZXctPmNv
bmZpZygpLT5wZXJzaXN0ZW50U2VsZWN0aW9uKCkgfHwgIW1fdmlldy0+c2VsZWN0aW9uKCkgKSB7
CisgICAgbV92aWV3LT5zaGlmdEN1cnNvclJpZ2h0KCk7CisgIH0KKyAgbV92aWV3LT5yZW1vdmVT
ZWxlY3RlZFRleHQoKTsKKyAgcmV0dXJuOwogfQogCiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OmRv
QmFja3NwYWNlKCkKQEAgLTEwMjQsOCArMTAyOCwxMSBAQCB2b2lkIEthdGVWaWV3SW50ZXJuYWw6
OndvcmRMZWZ0ICggYm9vbCBzCiAgIH0KICAgZWxzZSBpZiggaC0+aXNJbldvcmQoIG1fZG9jLT5s
aW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIC0gMSBdICkgKQogICB7Ci0gICAgd2hpbGUoICFj
LmF0RWRnZSggbGVmdCApICYmIGgtPmlzSW5Xb3JkKCBtX2RvYy0+bGluZSggYy5saW5lKCkgKVsg
Yy5jb2x1bW4oKSAtIDEgXSApICkKLSAgICAgIC0tYzsKKyAgICBpZiAobV9kb2MtPmdldEJyZWFr
TGluZShjLmxpbmUoKSxjLmNvbHVtbigpKSkKKyAgICAgICAtLWM7CisKKyAgICB3aGlsZSggIWMu
YXRFZGdlKCBsZWZ0ICkgJiYgaC0+aXNJbldvcmQoIG1fZG9jLT5saW5lKCBjLmxpbmUoKSApWyBj
LmNvbHVtbigpIC0gMSBdICkgJiYgIW1fZG9jLT5nZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1
bW4oKSkpCisgICAgICAgLS1jOwogICB9CiAgIGVsc2UKICAgewpAQCAtMTA2Miw3ICsxMDY5LDkg
QEAgdm9pZCBLYXRlVmlld0ludGVybmFsOjp3b3JkUmlnaHQoIGJvb2wgcwogICB9CiAgIGVsc2Ug
aWYoIGgtPmlzSW5Xb3JkKCBtX2RvYy0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSBdICkg
KQogICB7Ci0gICAgd2hpbGUoICFjLmF0RWRnZSggcmlnaHQgKSAmJiBoLT5pc0luV29yZCggbV9k
b2MtPmxpbmUoIGMubGluZSgpIClbIGMuY29sdW1uKCkgXSApICkKKyAgICBpZiAobV9kb2MtPmdl
dEJyZWFrTGluZShjLmxpbmUoKSxjLmNvbHVtbigpKSkKKyAgICAgICsrYzsKKyAgICB3aGlsZSgg
IWMuYXRFZGdlKCByaWdodCApICYmIGgtPmlzSW5Xb3JkKCBtX2RvYy0+bGluZSggYy5saW5lKCkg
KVsgYy5jb2x1bW4oKSBdICkgJiYgIW1fZG9jLT5nZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1
bW4oKSkgKQogICAgICAgKytjOwogICB9CiAgIGVsc2UKQEAgLTM0MTAsNyArMzQxOSw3IEBAIFFW
YXJpYW50IEthdGVWaWV3SW50ZXJuYWw6OmlucHV0TWV0aG9kUXUKICAgICAgIHJldHVybiByZW5k
ZXJlcigpLT5jdXJyZW50Rm9udCgpOwogCiAgICAgY2FzZSBRdDo6SW1DdXJzb3JQb3NpdGlvbjoK
LSAgICAgIHJldHVybiBjdXJzb3JDb29yZGluYXRlcyhmYWxzZSk7CisgICAgICByZXR1cm4gbV9k
aXNwbGF5Q3Vyc29yLmNvbHVtbigpOwogCiAgICAgY2FzZSBRdDo6SW1TdXJyb3VuZGluZ1RleHQ6
CiAgICAgICBpZiAoS2F0ZVRleHRMaW5lOjpQdHIgbCA9IHRleHRMaW5lKG1fY3Vyc29yLmxpbmUo
KSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23350</attachid>
            <date>2008-01-29 17:10:38 +0000</date>
            <delta_ts>2008-02-08 11:30:31 +0000</delta_ts>
            <desc>Fix several Thai related issues in Kate/Kwrite</desc>
            <filename>kate_thai_patch.diff</filename>
            <type>text/plain</type>
            <size>11203</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5ycCBrZGU0bGlicy00LjAuMC5vcmlnL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50
LmNwcCBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3VtZW50L2thdGVkb2N1bWVudC5jcHAKLS0tIGtk
ZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCTIwMDgtMDEt
MjggMTg6MDA6NDMuMDAwMDAwMDAwICswNzAwCisrKyBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3Vt
ZW50L2thdGVkb2N1bWVudC5jcHAJMjAwOC0wMS0yOCAxODowMjowMi4wMDAwMDAwMDAgKzA3MDAK
QEAgLTU2MCw2ICs1NjAsMTYgQEAgUVN0cmluZyBLYXRlRG9jdW1lbnQ6OmxpbmUoIGludCBsaW5l
ICkgYwogICByZXR1cm4gbC0+c3RyaW5nKCk7CiB9CiAKK2Jvb2wgS2F0ZURvY3VtZW50OjpnZXRC
cmVha0xpbmUoaW50IGxpbmUsIGludCBjb2wpCit7CisgIEthdGVUZXh0TGluZTo6UHRyIGwgPSBt
X2J1ZmZlci0+cGxhaW5MaW5lKGxpbmUpOworCisgIGlmKCFsKQorICAgIHJldHVybiAwOworICAK
KyAgcmV0dXJuIGwtPmlzQnJlYWthYmxlKGNvbCk7Cit9CisKIGJvb2wgS2F0ZURvY3VtZW50Ojpz
ZXRUZXh0KGNvbnN0IFFTdHJpbmcgJnMpCiB7CiAgIGlmICghaXNSZWFkV3JpdGUoKSkKQEAgLTEx
ODksMjUgKzExOTksMjEgQEAgYm9vbCBLYXRlRG9jdW1lbnQ6OndyYXBUZXh0KGludCBzdGFydExp
bgogICAgICAgLy8gVGhpcyBjb3VsZCBiZSBhIHByaW9yaXR5IChzZXR0aW5nKSBpbiB0aGUgaGwv
ZmlsZXR5cGUvZG9jdW1lbnQKICAgICAgIGludCB6ID0gMDsKICAgICAgIGludCBudyA9IDA7IC8v
IGFsdGVybmF0aXZlIHBvc2l0aW9uLCBhIG5vbiB3b3JkIGNoYXJhY3RlcgorICAgICAgYm9vbCBy
ZW1vdmVUcmFpbGluZ1NwYWNlID0gZmFsc2U7CisKICAgICAgIGZvciAoej1zZWFyY2hTdGFydDsg
eiA+IDA7IHotLSkKICAgICAgIHsKLSAgICAgICAgaWYgKHQuYXQoeikuaXNTcGFjZSgpKSBicmVh
azsKLSAgICAgICAgaWYgKCAhIG53ICYmIGhpZ2hsaWdodCgpLT5jYW5CcmVha0F0KCB0LmF0KHop
ICwgbC0+YXR0cmlidXRlKHopICkgKQotICAgICAgICBudyA9IHo7CisgICAgICAgIGlmICh0LmF0
KHopLmlzU3BhY2UoKSkgeworCSAgcmVtb3ZlVHJhaWxpbmdTcGFjZSA9IHRydWU7IAorCSAgeisr
OworCSAgYnJlYWs7CisJfQorICAgICAgICBpZiAobC0+aXNCcmVha2FibGUoeikpIGJyZWFrOwor
CWlmICggISBudyAmJiBoaWdobGlnaHQoKS0+Y2FuQnJlYWtBdCggdC5hdCh6KSAsIGwtPmF0dHJp
YnV0ZSh6KSApICkKKyAgICAgICAgICBudyA9IHo7CiAgICAgICB9CiAKLSAgICAgIGJvb2wgcmVt
b3ZlVHJhaWxpbmdTcGFjZSA9IGZhbHNlOwotICAgICAgaWYgKHogPiAwKQotICAgICAgewotICAg
ICAgICAvLyBTbyB3aHkgZG9uJ3Qgd2UganVzdCByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlIHJp
Z2h0IGF3YXk/Ci0gICAgICAgIC8vIFdlbGwsIHRoZSAodmlldydzKSBjdXJzb3IgbWF5IGJlIGRp
cmVjdGx5IGluIGZyb250IG9mIHRoYXQgc3BhY2UKLSAgICAgICAgLy8gKHVzZXIgdHlwaW5nIHRl
eHQgYmVmb3JlIHRoZSBsYXN0IHdvcmQgb24gdGhlIGxpbmUpLCBhbmQgaWYgdGhhdAotICAgICAg
ICAvLyBoYXBwZW5zLCB0aGUgY3Vyc29yIHdvdWxkIGJlIG1vdmVkIHRvIHRoZSBuZXh0IGxpbmUs
IHdoaWNoIGlzIG5vdAotICAgICAgICAvLyB3aGF0IHdlIHdhbnQgKGJ1ZyAjMTA2MjYxKQotICAg
ICAgICB6Kys7Ci0gICAgICAgIHJlbW92ZVRyYWlsaW5nU3BhY2UgPSB0cnVlOwotICAgICAgfQot
ICAgICAgZWxzZQorICAgICAgaWYgKHogPT0gMCkKICAgICAgIHsKICAgICAgICAgLy8gVGhlcmUg
d2FzIG5vIHNwYWNlIHRvIGJyZWFrIGF0IHNvIGJyZWFrIGF0IGEgbm9ud29yZCBjaGFyYWN0ZXIg
aWYKICAgICAgICAgLy8gZm91bmQsIG9yIGF0IHRoZSB3cmFwY29sdW1uICggdGhhdCBuZWVkcyBi
ZSBjb25maWd1cmFibGUgKQpkaWZmIC11TnJwIGtkZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1
bWVudC9rYXRlZG9jdW1lbnQuaCBrZGU0bGlicy00LjAuMC9rYXRlL2RvY3VtZW50L2thdGVkb2N1
bWVudC5oCi0tLSBrZGU0bGlicy00LjAuMC5vcmlnL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50
LmgJMjAwOC0wMS0yOCAxODowMDo0My4wMDAwMDAwMDAgKzA3MDAKKysrIGtkZTRsaWJzLTQuMC4w
L2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmgJMjAwOC0wMS0yOCAxODowMjowMi4wMDAwMDAw
MDAgKzA3MDAKQEAgLTE4Myw2ICsxODMsNyBAQCBjbGFzcyBLYXRlRG9jdW1lbnQgOiBwdWJsaWMg
S1RleHRFZGl0b3I6CiAgICAgdmlydHVhbCBRU3RyaW5nIGxpbmUoaW50IGxpbmUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgUUNoYXIgY2hhcmFjdGVyKGNvbnN0IEtUZXh0RWRpdG9yOjpDdXJzb3ImIHBv
c2l0aW9uKSBjb25zdDsKICAgICBpbnQgbGluZXMoKSBjb25zdDsKKyAgICBib29sIGdldEJyZWFr
TGluZShpbnQgbGluZSwgaW50IGNvbCk7CiAgICAgdmlydHVhbCBLVGV4dEVkaXRvcjo6Q3Vyc29y
IGRvY3VtZW50RW5kKCkgY29uc3Q7CiAgICAgaW50IG51bVZpc0xpbmVzKCkgY29uc3Q7CiAgICAg
aW50IHRvdGFsQ2hhcmFjdGVycygpIGNvbnN0OwpkaWZmIC11TnJwIGtkZTRsaWJzLTQuMC4wLm9y
aWcva2F0ZS9kb2N1bWVudC9rYXRldGV4dGxpbmUuY3BwIGtkZTRsaWJzLTQuMC4wL2thdGUvZG9j
dW1lbnQva2F0ZXRleHRsaW5lLmNwcAotLS0ga2RlNGxpYnMtNC4wLjAub3JpZy9rYXRlL2RvY3Vt
ZW50L2thdGV0ZXh0bGluZS5jcHAJMjAwOC0wMS0yOCAxODowMDo0My4wMDAwMDAwMDAgKzA3MDAK
KysrIGtkZTRsaWJzLTQuMC4wL2thdGUvZG9jdW1lbnQva2F0ZXRleHRsaW5lLmNwcAkyMDA4LTAx
LTI4IDE4OjAzOjMyLjAwMDAwMDAwMCArMDcwMApAQCAtMjgsNiArMjgsMTE2IEBACiAKICNpbmNs
dWRlIDxRdENvcmUvUVJlZ0V4cD4KIAorLy9Mb2FkIExpYnRoYWkKKyNpbmNsdWRlIDxRdENvcmUv
UVRleHRDb2RlYz4KKyNpbmNsdWRlIDxrbGlibG9hZGVyLmg+CisjaWZuZGVmIEhBVkVfTElCVEhB
SQordHlwZWRlZiBpbnQgKCp0aF9icmtfZGVmKShjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50W10s
IGludCk7CitzdGF0aWMgdGhfYnJrX2RlZiB0aF9icms7CisjZWxzZQorI2luY2x1ZGUgPHRoYWkv
dGhhaWxpYi5oPgorI2luY2x1ZGUgPHRoYWkvdGhicmsuaD4KKyNlbmRpZgorCisvL1RoYWkgQnJl
YWsKK3N0cnVjdCBUaGFpQ2FjaGUKK3sKKyAgICBUaGFpQ2FjaGUoKSB7CisgICAgICAgIHN0cmlu
ZyA9IDA7CisgICAgICAgIGFsbG9jYXRlZCA9IDB4NDAwOworICAgICAgICB3YnJwb3MgPSAoaW50
ICopIG1hbGxvYyhhbGxvY2F0ZWQqc2l6ZW9mKGludCkpOworICAgICAgICBudW13YnJwb3MgPSAw
OworICAgICAgICBudW1pc2JyZWFrYWJsZSA9IDB4NDAwOworICAgICAgICBpc2JyZWFrYWJsZSA9
IChpbnQgKikgbWFsbG9jKG51bWlzYnJlYWthYmxlKnNpemVvZihpbnQpKTsKKyAgICAgICAgbGli
cmFyeSA9IDA7CisgICAgfQorICAgIH5UaGFpQ2FjaGUoKSB7CisgICAgICAgZnJlZSh3YnJwb3Mp
OworICAgICAgIGZyZWUoaXNicmVha2FibGUpOworICAgICAgIGlmIChsaWJyYXJ5KSBsaWJyYXJ5
LT51bmxvYWQoKTsKKyAgICB9CisgICAgY29uc3QgUUNoYXIgKnN0cmluZzsKKyAgICBpbnQgKndi
cnBvczsKKyAgICBpbnQgKmlzYnJlYWthYmxlOworICAgIGludCBhbGxvY2F0ZWQ7CisgICAgaW50
IG51bXdicnBvcyxudW1pc2JyZWFrYWJsZTsKKyAgICBLTGlicmFyeSAqbGlicmFyeTsKK307Citz
dGF0aWMgVGhhaUNhY2hlICpjYWNoZSA9IDA7CisKK3ZvaWQgY2xlYW51cF90aGFpYnJlYWtzKCkK
K3sKKyAgICBkZWxldGUgY2FjaGU7CisgICAgY2FjaGUgPSAwOworI2lmbmRlZiBIQVZFX0xJQlRI
QUkKKyAgICB0aF9icmsgPSAwOworI2VuZGlmCit9CisKK2ludCogaXNicmVha1dvcmRUaGFpKCBj
b25zdCBRQ2hhciAqc3RyaW5nLCBjb25zdCBpbnQgcG9zLCBjb25zdCBpbnQgbGVuKQoreworICAg
IHN0cmluZyA9IHN0cmluZyArIHBvczsKKyAgICBzdGF0aWMgUVRleHRDb2RlYyAqdGhhaUNvZGVj
ID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIoMjI1OSk7CisKKyNpZm5kZWYgSEFWRV9MSUJUSEFJ
CisKKyAgICBLTGlicmFyeSAqbGliID0gMDsKKworICAgIC8qIGxvYWQgbGlidGhhaSBkeW5hbWlj
YWxseSAqLworICAgIGlmICghdGhfYnJrICYmIHRoYWlDb2RlYykgeworICAgICAgICBwcmludGYo
IlRyeSB0byBsb2FkIGxpYnRoYWkgZHluYW1pY2FsbHkuLi5cbiIpOworICAgICAgICBLTGliTG9h
ZGVyICpsb2FkZXIgPSBLTGliTG9hZGVyOjpzZWxmKCk7CisgICAgICAgIGxpYiA9IGxvYWRlci0+
bGlicmFyeShRTGF0aW4xU3RyaW5nKCJsaWJ0aGFpLnNvLjAiKSk7CisgICAgICAgIGlmICggIWxp
YiApCisgICAgICAgICAgIGxpYiA9IGxvYWRlci0+bGlicmFyeShRTGF0aW4xU3RyaW5nKCIvdXNy
L2xpYi9saWJ0aGFpLnNvLjAiKSk7CisgICAgICAgIGlmICggbGliICkKKyAgICAgICAgICAgdGhf
YnJrID0gKHRoX2Jya19kZWYpIGxpYi0+cmVzb2x2ZUZ1bmN0aW9uKCJ0aF9icmsiKTsKKyAgICAg
ICAgaWYgKCAhdGhfYnJrICkgeworICAgICAgICAgICAvLyBpbmRpY2F0aW9uIHRoYXQgbG9hZGlu
ZyBmYWlsZWQgYW5kIHdlIHNob3VsZG4ndCB0cnkgdG8gbG9hZCBhZ2FpbgorICAgICAgICAgICBw
cmludGYoIkVycm9yLCBjYW4ndCBsb2FkIGxpYnRoYWkuLi5cbiIpOworICAgICAgICAgICB0aGFp
Q29kZWMgPSAwOworICAgICAgICAgICBpZiAobGliKQorICAgICAgICAgICAgICBsaWItPnVubG9h
ZCgpOworICAgICAgICAgfQorICAgIH0KKworICAgIGlmICghdGhfYnJrICkgeworICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICghY2FjaGUgKSB7CisgICAgICAg
IGNhY2hlID0gbmV3IFRoYWlDYWNoZTsKKyNpZm5kZWYgSEFWRV9MSUJUSEFJCisgICAgICAgIGNh
Y2hlLT5saWJyYXJ5ID0gbGliOworI2VuZGlmCisgICAgfQorICAgIC8vIGJ1aWxkIHVwIHN0cmlu
ZyBvZiB0aGFpIGNoYXJzCisgICAgaWYgKCBzdHJpbmcgIT0gY2FjaGUtPnN0cmluZyApIHsKKyAg
ICAgICAgLy9mcHJpbnRmKHN0ZGVyciwibmV3IHN0cmluZyBmb3VuZCAobm90IGluIGNhY2hlKSwg
Y2FsbGluZyBsaWJ0aGFpXG4iKTsKKyAgICAgICAgUUJ5dGVBcnJheSBjc3RyID0gdGhhaUNvZGVj
LT5mcm9tVW5pY29kZSggUVN0cmluZzo6ZnJvbVJhd0RhdGEoc3RyaW5nLGxlbikpOworICAgICAg
ICAvL3ByaW50ZigiQWJvdXQgdG8gY2FsbCBsaWJ0aGFpOjp0aF9icmsgd2l0aCBzdHI6ICVzIixj
c3RyLmRhdGEoKSk7CisgICAgICAgIGNhY2hlLT5udW13YnJwb3MgPSB0aF9icmsoKGNvbnN0IHVu
c2lnbmVkIGNoYXIqKSBjc3RyLmRhdGEoKSwgY2FjaGUtPndicnBvcywgY2FjaGUtPmFsbG9jYXRl
ZCk7CisgICAgICAgIC8vZnByaW50ZihzdGRlcnIsImxpYnRoYWkgcmV0dXJucyB3aXRoIHZhbHVl
ICVkXG4iLGNhY2hlLT5udW13YnJwb3MpOworICAgICAgICBpZiAoY2FjaGUtPm51bXdicnBvcyA+
PSBjYWNoZS0+YWxsb2NhdGVkKSB7CisgICAgICAgICAgICBjYWNoZS0+YWxsb2NhdGVkID0gbGVu
OworICAgICAgICAgICAgY2FjaGUtPndicnBvcyA9IChpbnQgKilyZWFsbG9jKGNhY2hlLT53YnJw
b3MsIGNhY2hlLT5hbGxvY2F0ZWQqc2l6ZW9mKGludCkpOworICAgICAgICAgICAgY2FjaGUtPm51
bXdicnBvcyA9IHRoX2JyaygoY29uc3QgdW5zaWduZWQgY2hhciopIGNzdHIuZGF0YSgpLCBjYWNo
ZS0+d2JycG9zLCBjYWNoZS0+YWxsb2NhdGVkKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGlu
dCBpID0gMCA7IGkgPCBsZW4gOyArK2kpIHsKKyAgICAgICAgICAgIGNhY2hlLT5pc2JyZWFrYWJs
ZVtpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBjYWNoZS0+bnVtd2JycG9zID4gMCAp
IHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBjYWNoZS0+bnVtd2JycG9zLTE7IGkgPj0gMDsg
LS1pKSB7CisgICAgICAgICAgICAgICAgY2FjaGUtPmlzYnJlYWthYmxlW2NhY2hlLT53YnJwb3Nb
aV1dID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYWNoZS0+c3RyaW5n
ID0gc3RyaW5nOworICAgIH0KKyAKKyAgICByZXR1cm4gY2FjaGUtPmlzYnJlYWthYmxlOworfQor
CiBLYXRlVGV4dExpbmU6OkthdGVUZXh0TGluZSAoKQogICA6IG1fZmxhZ3MoMCkKIHsKQEAgLTM5
LDcgKzE0OSw3IEBAIEthdGVUZXh0TGluZTo6S2F0ZVRleHRMaW5lIChjb25zdCBRQ2hhciAKIH0K
IAogS2F0ZVRleHRMaW5lOjp+S2F0ZVRleHRMaW5lKCkKLXsKK3sgIGNsZWFudXBfdGhhaWJyZWFr
cygpOwogfQogCiB2b2lkIEthdGVUZXh0TGluZTo6aW5zZXJ0VGV4dCAoaW50IHBvcywgY29uc3Qg
UVN0cmluZyYgaW5zVGV4dCkKQEAgLTQ5LDYgKzE1OSwzNiBAQCB2b2lkIEthdGVUZXh0TGluZTo6
aW5zZXJ0VGV4dCAoaW50IHBvcywgCiAgICAgcmV0dXJuOwogCiAgIG1fdGV4dC5pbnNlcnQgKHBv
cywgaW5zVGV4dCk7CisKKyAgbV9icmVha0xpbmUucmVzaXplIChtX3RleHQuc2l6ZSgpKTsKKyAg
Zm9yIChpbnQgaSA9IHBvczsgaSA8IHBvcyArIGluc1RleHQubGVuZ3RoKCk7IGkrKykgeworICAg
IG1fYnJlYWtMaW5lLmluc2VydCAoaSwgZmFsc2UpOworICB9CisKKyAgaW50IGkgPSBwb3M7Cisg
IHdoaWxlIChpICE9IDAgJiYgIW1fdGV4dFtpXS5pc1NwYWNlKCkpIHsKKyAgICAtLWk7CisgIH0K
KworICB3aGlsZSAoaSA8IHBvcyArIGluc1RleHQubGVuZ3RoKCkpIHsKKyAgICBpbnQgdGhfbGVu
ID0gMDsKKyAgICB3aGlsZSAobV90ZXh0W2ldLnVuaWNvZGUoKSA8IDB4MGUwMCAmJiBtX3RleHRb
aV0udW5pY29kZSgpID49IDB4MGU4MCAmJiBpIDwgcG9zICsgaW5zVGV4dC5sZW5ndGgoKSkKKyAg
ICAgIGkrKzsKKyAgICB3aGlsZSAobV90ZXh0W2kgKyB0aF9sZW5dLnVuaWNvZGUoKSA+PSAweDBl
MDAgJiYgbV90ZXh0W2kgKyB0aF9sZW5dLnVuaWNvZGUoKSA8IDB4MGU4MCAmJiBpICsgdGhfbGVu
IDwgcG9zICsgaW5zVGV4dC5sZW5ndGgoKSkKKyAgICAgIHRoX2xlbisrOworCisgICAgaWYgKHRo
X2xlbiA+IDApIHsKKyAgICAgIGludCogdGhfYnJlYWsgPSBpc2JyZWFrV29yZFRoYWkobV90ZXh0
LmNvbnN0RGF0YSgpLCBpLCB0aF9sZW4pOworICAgICAgZm9yIChpbnQgaiA9IGk7aiA8IGkgKyB0
aF9sZW47IGorKykKKyAgICAgICAgbV9icmVha0xpbmVbal0gPSB0aF9icmVha1tqIC0gaV07Cisg
ICAgfQorICAgIGkgKz0gdGhfbGVuICsgMTsKKyAgfQorfQorCitib29sIEthdGVUZXh0TGluZTo6
aXNCcmVha2FibGUgKGludCBwb3MpCit7CisgIHJldHVybiBtX2JyZWFrTGluZVtwb3NdOwogfQog
CiB2b2lkIEthdGVUZXh0TGluZTo6cmVtb3ZlVGV4dCAodWludCBwb3MsIHVpbnQgZGVsTGVuKQpA
QCAtNjksNiArMjA5LDcgQEAgdm9pZCBLYXRlVGV4dExpbmU6OnJlbW92ZVRleHQgKHVpbnQgcG9z
LAogICAgIGRlbExlbiA9IHRleHRMZW4gLSBwb3M7CiAKICAgbV90ZXh0LnJlbW92ZSAocG9zLCBk
ZWxMZW4pOworICBtX2JyZWFrTGluZS5yZW1vdmUgKHBvcywgZGVsTGVuKTsKIH0KIAogdm9pZCBL
YXRlVGV4dExpbmU6OnRydW5jYXRlKGludCBuZXdMZW4pCmRpZmYgLXVOcnAga2RlNGxpYnMtNC4w
LjAub3JpZy9rYXRlL2RvY3VtZW50L2thdGV0ZXh0bGluZS5oIGtkZTRsaWJzLTQuMC4wL2thdGUv
ZG9jdW1lbnQva2F0ZXRleHRsaW5lLmgKLS0tIGtkZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1
bWVudC9rYXRldGV4dGxpbmUuaAkyMDA4LTAxLTI4IDE4OjAwOjQzLjAwMDAwMDAwMCArMDcwMAor
Kysga2RlNGxpYnMtNC4wLjAva2F0ZS9kb2N1bWVudC9rYXRldGV4dGxpbmUuaAkyMDA4LTAxLTI4
IDE4OjAyOjAyLjAwMDAwMDAwMCArMDcwMApAQCAtMjg1LDYgKzI4NSwxMiBAQCBjbGFzcyBLYXRl
VGV4dExpbmUgOiBwdWJsaWMgS1NoYXJlZAogICAgIHZvaWQgaW5zZXJ0VGV4dCAoaW50IHBvcywg
Y29uc3QgUVN0cmluZyYgaW5zVGV4dCk7CiAKICAgICAvKioKKyAgICAgKiByZXR1cm4gYnJlYWts
aW5lIGF0dHJpYnV0ZSBtX2JyZWFrTGluZQorICAgICAqIEBwYXJhbSBwb3MgaW5zZXJ0IHBvc2l0
aW9uCisgICAgICovICAgIAorICAgIGJvb2wgaXNCcmVha2FibGUgKGludCBwb3MpOworCisgICAg
LyoqCiAgICAgICogcmVtb3ZlIHRleHQgYXQgZ2l2ZW4gcG9zaXRpb24KICAgICAgKiBAcGFyYW0g
cG9zIHN0YXJ0IHBvc2l0aW9uIG9mIHJlbW92ZQogICAgICAqIEBwYXJhbSBkZWxMZW4gbGVuZ3Ro
IHRvIHJlbW92ZQpAQCAtMzc1LDYgKzM4MSwxMSBAQCBjbGFzcyBLYXRlVGV4dExpbmUgOiBwdWJs
aWMgS1NoYXJlZAogICAgICAqLwogICAgIFFWZWN0b3I8aW50PiBtX2F0dHJpYnV0ZXNMaXN0Owog
CisgICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBmb3IgbGluZUJyZWFrIHZhbHVlICJ0cnVlIiBm
b3IgYnJlYWtsaW5lCisgICAgICovCisgICAgUVZlY3Rvcjxib29sPiBtX2JyZWFrTGluZTsKKwog
ICAgIC8qKgogICAgICAqIGNvbnRleHQgc3RhY2sKICAgICAgKi8KZGlmZiAtdU5ycCBrZGU0bGli
cy00LjAuMC5vcmlnL2thdGUvcmVuZGVyL2thdGVyZW5kZXJlci5jcHAga2RlNGxpYnMtNC4wLjAv
a2F0ZS9yZW5kZXIva2F0ZXJlbmRlcmVyLmNwcAotLS0ga2RlNGxpYnMtNC4wLjAub3JpZy9rYXRl
L3JlbmRlci9rYXRlcmVuZGVyZXIuY3BwCTIwMDgtMDEtMjggMTg6MDA6NDMuMDAwMDAwMDAwICsw
NzAwCisrKyBrZGU0bGlicy00LjAuMC9rYXRlL3JlbmRlci9rYXRlcmVuZGVyZXIuY3BwCTIwMDgt
MDEtMjggMTg6MDI6MDIuMDAwMDAwMDAwICswNzAwCkBAIC03NTUsNyArNzU1LDcgQEAgdm9pZCBL
YXRlUmVuZGVyZXI6OmxheW91dExpbmUoS2F0ZUxpbmVMYQogICBRVGV4dE9wdGlvbiBvcHQ7CiAg
IG9wdC5zZXRGbGFncyhRVGV4dE9wdGlvbjo6SW5jbHVkZVRyYWlsaW5nU3BhY2VzKTsKICAgb3B0
LnNldFRhYlN0b3AobV90YWJXaWR0aCAqIGNvbmZpZygpLT5mb250TWV0cmljcygpLndpZHRoKHNw
YWNlQ2hhcikpOwotICBvcHQuc2V0V3JhcE1vZGUoUVRleHRPcHRpb246OldyYXBBbnl3aGVyZSk7
Ly9RVGV4dE9wdGlvbjo6V3JhcEF0V29yZEJvdW5kYXJ5T3JBbnl3aGVyZSk7CisgIG9wdC5zZXRX
cmFwTW9kZShRVGV4dE9wdGlvbjo6V3JhcEF0V29yZEJvdW5kYXJ5T3JBbnl3aGVyZSk7Ly9RVGV4
dE9wdGlvbjo6V3JhcEFueXdoZXJlKTsKIAogICAvLyBGaW5kIHRoZSBmaXJzdCBzdHJvbmcgY2hh
cmFjdGVyIGluIHRoZSBzdHJpbmcuCiAgIC8vIElmIGl0IGlzIGFuIFJUTCBjaGFyYWN0ZXIsIHNl
dCB0aGUgYmFzZSBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBzdHJpbmcgdG8gUlRMLgpkaWZmIC11
TnJwIGtkZTRsaWJzLTQuMC4wLm9yaWcva2F0ZS92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwIGtk
ZTRsaWJzLTQuMC4wL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcAotLS0ga2RlNGxpYnMt
NC4wLjAub3JpZy9rYXRlL3ZpZXcva2F0ZXZpZXdpbnRlcm5hbC5jcHAJMjAwOC0wMS0yOCAxODow
MDo0My4wMDAwMDAwMDAgKzA3MDAKKysrIGtkZTRsaWJzLTQuMC4wL2thdGUvdmlldy9rYXRldmll
d2ludGVybmFsLmNwcAkyMDA4LTAxLTI4IDE4OjAyOjAyLjAwMDAwMDAwMCArMDcwMApAQCAtNzMy
LDcgKzczMiwxMSBAQCB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OmRvUmV0dXJuKCkKIAogdm9pZCBL
YXRlVmlld0ludGVybmFsOjpkb0RlbGV0ZSgpCiB7Ci0gIG1fZG9jLT5kZWwoIG1fdmlldywgbV9j
dXJzb3IgKTsKKyAgaWYgKCBtX3ZpZXctPmNvbmZpZygpLT5wZXJzaXN0ZW50U2VsZWN0aW9uKCkg
fHwgIW1fdmlldy0+c2VsZWN0aW9uKCkgKSB7CisgICAgbV92aWV3LT5zaGlmdEN1cnNvclJpZ2h0
KCk7CisgIH0KKyAgbV92aWV3LT5yZW1vdmVTZWxlY3RlZFRleHQoKTsKKyAgcmV0dXJuOwogfQog
CiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OmRvQmFja3NwYWNlKCkKQEAgLTEwMjQsOCArMTAyOCwx
MSBAQCB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OndvcmRMZWZ0ICggYm9vbCBzCiAgIH0KICAgZWxz
ZSBpZiggaC0+aXNJbldvcmQoIG1fZG9jLT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIC0g
MSBdICkgKQogICB7Ci0gICAgd2hpbGUoICFjLmF0RWRnZSggbGVmdCApICYmIGgtPmlzSW5Xb3Jk
KCBtX2RvYy0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSAtIDEgXSApICkKLSAgICAgIC0t
YzsKKyAgICBpZiAobV9kb2MtPmdldEJyZWFrTGluZShjLmxpbmUoKSxjLmNvbHVtbigpKSkKKyAg
ICAgICAtLWM7CisKKyAgICB3aGlsZSggIWMuYXRFZGdlKCBsZWZ0ICkgJiYgaC0+aXNJbldvcmQo
IG1fZG9jLT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIC0gMSBdICkgJiYgIW1fZG9jLT5n
ZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1bW4oKSkpCisgICAgICAgLS1jOwogICB9CiAgIGVs
c2UKICAgewpAQCAtMTA2Miw3ICsxMDY5LDkgQEAgdm9pZCBLYXRlVmlld0ludGVybmFsOjp3b3Jk
UmlnaHQoIGJvb2wgcwogICB9CiAgIGVsc2UgaWYoIGgtPmlzSW5Xb3JkKCBtX2RvYy0+bGluZSgg
Yy5saW5lKCkgKVsgYy5jb2x1bW4oKSBdICkgKQogICB7Ci0gICAgd2hpbGUoICFjLmF0RWRnZSgg
cmlnaHQgKSAmJiBoLT5pc0luV29yZCggbV9kb2MtPmxpbmUoIGMubGluZSgpIClbIGMuY29sdW1u
KCkgXSApICkKKyAgICBpZiAobV9kb2MtPmdldEJyZWFrTGluZShjLmxpbmUoKSxjLmNvbHVtbigp
KSkKKyAgICAgICsrYzsKKyAgICB3aGlsZSggIWMuYXRFZGdlKCByaWdodCApICYmIGgtPmlzSW5X
b3JkKCBtX2RvYy0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSBdICkgJiYgIW1fZG9jLT5n
ZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1bW4oKSkgKQogICAgICAgKytjOwogICB9CiAgIGVs
c2UKQEAgLTM0MTAsNyArMzQxOSw3IEBAIFFWYXJpYW50IEthdGVWaWV3SW50ZXJuYWw6OmlucHV0
TWV0aG9kUXUKICAgICAgIHJldHVybiByZW5kZXJlcigpLT5jdXJyZW50Rm9udCgpOwogCiAgICAg
Y2FzZSBRdDo6SW1DdXJzb3JQb3NpdGlvbjoKLSAgICAgIHJldHVybiBjdXJzb3JDb29yZGluYXRl
cyhmYWxzZSk7CisgICAgICByZXR1cm4gbV9kaXNwbGF5Q3Vyc29yLmNvbHVtbigpOwogCiAgICAg
Y2FzZSBRdDo6SW1TdXJyb3VuZGluZ1RleHQ6CiAgICAgICBpZiAoS2F0ZVRleHRMaW5lOjpQdHIg
bCA9IHRleHRMaW5lKG1fY3Vyc29yLmxpbmUoKSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23476</attachid>
            <date>2008-02-08 11:22:36 +0000</date>
            <delta_ts>2008-02-08 11:22:36 +0000</delta_ts>
            <desc>Fix Thai word break crash in Kate/Kwrite</desc>
            <filename>kate_thai_patch.diff</filename>
            <type>text/plain</type>
            <size>11255</size>
            <attacher name="Jakkapun Kwanroengjai">glooffy23</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5ycCBrZGVsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQu
Y3BwIGtkZWxpYnMtNC4wLjAva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCi0tLSBrZGVs
aWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCTIwMDgtMDEtMDUg
MDY6NTk6NDkuMDAwMDAwMDAwICswNzAwCisrKyBrZGVsaWJzLTQuMC4wL2thdGUvZG9jdW1lbnQv
a2F0ZWRvY3VtZW50LmNwcAkyMDA4LTAyLTA4IDE2OjE4OjIzLjAwMDAwMDAwMCArMDcwMApAQCAt
NTYwLDYgKzU2MCwxNiBAQCBRU3RyaW5nIEthdGVEb2N1bWVudDo6bGluZSggaW50IGxpbmUgKSBj
CiAgIHJldHVybiBsLT5zdHJpbmcoKTsKIH0KIAorYm9vbCBLYXRlRG9jdW1lbnQ6OmdldEJyZWFr
TGluZShpbnQgbGluZSwgaW50IGNvbCkKK3sKKyAgS2F0ZVRleHRMaW5lOjpQdHIgbCA9IG1fYnVm
ZmVyLT5wbGFpbkxpbmUobGluZSk7CisKKyAgaWYoIWwpCisgICAgcmV0dXJuIDA7CisgIAorICBy
ZXR1cm4gbC0+aXNCcmVha2FibGUoY29sKTsKK30KKwogYm9vbCBLYXRlRG9jdW1lbnQ6OnNldFRl
eHQoY29uc3QgUVN0cmluZyAmcykKIHsKICAgaWYgKCFpc1JlYWRXcml0ZSgpKQpAQCAtMTE4OSwy
NSArMTE5OSwyMSBAQCBib29sIEthdGVEb2N1bWVudDo6d3JhcFRleHQoaW50IHN0YXJ0TGluCiAg
ICAgICAvLyBUaGlzIGNvdWxkIGJlIGEgcHJpb3JpdHkgKHNldHRpbmcpIGluIHRoZSBobC9maWxl
dHlwZS9kb2N1bWVudAogICAgICAgaW50IHogPSAwOwogICAgICAgaW50IG53ID0gMDsgLy8gYWx0
ZXJuYXRpdmUgcG9zaXRpb24sIGEgbm9uIHdvcmQgY2hhcmFjdGVyCisgICAgICBib29sIHJlbW92
ZVRyYWlsaW5nU3BhY2UgPSBmYWxzZTsKKwogICAgICAgZm9yICh6PXNlYXJjaFN0YXJ0OyB6ID4g
MDsgei0tKQogICAgICAgewotICAgICAgICBpZiAodC5hdCh6KS5pc1NwYWNlKCkpIGJyZWFrOwot
ICAgICAgICBpZiAoICEgbncgJiYgaGlnaGxpZ2h0KCktPmNhbkJyZWFrQXQoIHQuYXQoeikgLCBs
LT5hdHRyaWJ1dGUoeikgKSApCi0gICAgICAgIG53ID0gejsKKyAgICAgICAgaWYgKHQuYXQoeiku
aXNTcGFjZSgpKSB7CisJICByZW1vdmVUcmFpbGluZ1NwYWNlID0gdHJ1ZTsgCisJICB6Kys7CisJ
ICBicmVhazsKKwl9CisgICAgICAgIGlmIChsLT5pc0JyZWFrYWJsZSh6KSkgYnJlYWs7CisJaWYg
KCAhIG53ICYmIGhpZ2hsaWdodCgpLT5jYW5CcmVha0F0KCB0LmF0KHopICwgbC0+YXR0cmlidXRl
KHopICkgKQorICAgICAgICAgIG53ID0gejsKICAgICAgIH0KIAotICAgICAgYm9vbCByZW1vdmVU
cmFpbGluZ1NwYWNlID0gZmFsc2U7Ci0gICAgICBpZiAoeiA+IDApCi0gICAgICB7Ci0gICAgICAg
IC8vIFNvIHdoeSBkb24ndCB3ZSBqdXN0IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UgcmlnaHQg
YXdheT8KLSAgICAgICAgLy8gV2VsbCwgdGhlICh2aWV3J3MpIGN1cnNvciBtYXkgYmUgZGlyZWN0
bHkgaW4gZnJvbnQgb2YgdGhhdCBzcGFjZQotICAgICAgICAvLyAodXNlciB0eXBpbmcgdGV4dCBi
ZWZvcmUgdGhlIGxhc3Qgd29yZCBvbiB0aGUgbGluZSksIGFuZCBpZiB0aGF0Ci0gICAgICAgIC8v
IGhhcHBlbnMsIHRoZSBjdXJzb3Igd291bGQgYmUgbW92ZWQgdG8gdGhlIG5leHQgbGluZSwgd2hp
Y2ggaXMgbm90Ci0gICAgICAgIC8vIHdoYXQgd2Ugd2FudCAoYnVnICMxMDYyNjEpCi0gICAgICAg
IHorKzsKLSAgICAgICAgcmVtb3ZlVHJhaWxpbmdTcGFjZSA9IHRydWU7Ci0gICAgICB9Ci0gICAg
ICBlbHNlCisgICAgICBpZiAoeiA9PSAwKQogICAgICAgewogICAgICAgICAvLyBUaGVyZSB3YXMg
bm8gc3BhY2UgdG8gYnJlYWsgYXQgc28gYnJlYWsgYXQgYSBub253b3JkIGNoYXJhY3RlciBpZgog
ICAgICAgICAvLyBmb3VuZCwgb3IgYXQgdGhlIHdyYXBjb2x1bW4gKCB0aGF0IG5lZWRzIGJlIGNv
bmZpZ3VyYWJsZSApCmRpZmYgLXVOcnAga2RlbGlicy00LjAuMC5vcmlnL2thdGUvZG9jdW1lbnQv
a2F0ZWRvY3VtZW50Lmgga2RlbGlicy00LjAuMC9rYXRlL2RvY3VtZW50L2thdGVkb2N1bWVudC5o
Ci0tLSBrZGVsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuaAkyMDA4
LTAxLTA1IDA2OjU5OjQ5LjAwMDAwMDAwMCArMDcwMAorKysga2RlbGlicy00LjAuMC9rYXRlL2Rv
Y3VtZW50L2thdGVkb2N1bWVudC5oCTIwMDgtMDItMDggMTY6MTg6MjMuMDAwMDAwMDAwICswNzAw
CkBAIC0xODMsNiArMTgzLDcgQEAgY2xhc3MgS2F0ZURvY3VtZW50IDogcHVibGljIEtUZXh0RWRp
dG9yOgogICAgIHZpcnR1YWwgUVN0cmluZyBsaW5lKGludCBsaW5lKSBjb25zdDsKICAgICB2aXJ0
dWFsIFFDaGFyIGNoYXJhY3Rlcihjb25zdCBLVGV4dEVkaXRvcjo6Q3Vyc29yJiBwb3NpdGlvbikg
Y29uc3Q7CiAgICAgaW50IGxpbmVzKCkgY29uc3Q7CisgICAgYm9vbCBnZXRCcmVha0xpbmUoaW50
IGxpbmUsIGludCBjb2wpOwogICAgIHZpcnR1YWwgS1RleHRFZGl0b3I6OkN1cnNvciBkb2N1bWVu
dEVuZCgpIGNvbnN0OwogICAgIGludCBudW1WaXNMaW5lcygpIGNvbnN0OwogICAgIGludCB0b3Rh
bENoYXJhY3RlcnMoKSBjb25zdDsKZGlmZiAtdU5ycCBrZGVsaWJzLTQuMC4wLm9yaWcva2F0ZS9k
b2N1bWVudC9rYXRldGV4dGxpbmUuY3BwIGtkZWxpYnMtNC4wLjAva2F0ZS9kb2N1bWVudC9rYXRl
dGV4dGxpbmUuY3BwCi0tLSBrZGVsaWJzLTQuMC4wLm9yaWcva2F0ZS9kb2N1bWVudC9rYXRldGV4
dGxpbmUuY3BwCTIwMDgtMDEtMDUgMDY6NTk6NDkuMDAwMDAwMDAwICswNzAwCisrKyBrZGVsaWJz
LTQuMC4wL2thdGUvZG9jdW1lbnQva2F0ZXRleHRsaW5lLmNwcAkyMDA4LTAyLTA4IDE2OjIxOjA1
LjAwMDAwMDAwMCArMDcwMApAQCAtMjgsNiArMjgsMTE3IEBACiAKICNpbmNsdWRlIDxRdENvcmUv
UVJlZ0V4cD4KIAorLy9Mb2FkIExpYnRoYWkKKyNpbmNsdWRlIDxRdENvcmUvUVRleHRDb2RlYz4K
KyNpbmNsdWRlIDxrbGlibG9hZGVyLmg+CisjaWZuZGVmIEhBVkVfTElCVEhBSQordHlwZWRlZiBp
bnQgKCp0aF9icmtfZGVmKShjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50W10sIGludCk7CitzdGF0
aWMgdGhfYnJrX2RlZiB0aF9icms7CisjZWxzZQorI2luY2x1ZGUgPHRoYWkvdGhhaWxpYi5oPgor
I2luY2x1ZGUgPHRoYWkvdGhicmsuaD4KKyNlbmRpZgorCisvL1RoYWkgQnJlYWsKK3N0cnVjdCBU
aGFpQ2FjaGUKK3sKKyAgICBUaGFpQ2FjaGUoKSB7CisgICAgICAgIHN0cmluZyA9IDA7CisgICAg
ICAgIGFsbG9jYXRlZCA9IDB4NDAwOworICAgICAgICB3YnJwb3MgPSAoaW50ICopIG1hbGxvYyhh
bGxvY2F0ZWQqc2l6ZW9mKGludCkpOworICAgICAgICBudW13YnJwb3MgPSAwOworICAgICAgICBu
dW1pc2JyZWFrYWJsZSA9IDB4NDAwOworICAgICAgICBpc2JyZWFrYWJsZSA9IChpbnQgKikgbWFs
bG9jKG51bWlzYnJlYWthYmxlKnNpemVvZihpbnQpKTsKKyAgICAgICAgbGlicmFyeSA9IDA7Cisg
ICAgfQorICAgIH5UaGFpQ2FjaGUoKSB7CisgICAgICAgZnJlZSh3YnJwb3MpOworICAgICAgIGZy
ZWUoaXNicmVha2FibGUpOworICAgICAgIGlmIChsaWJyYXJ5KSBsaWJyYXJ5LT51bmxvYWQoKTsK
KyAgICB9CisgICAgY29uc3QgUUNoYXIgKnN0cmluZzsKKyAgICBpbnQgKndicnBvczsKKyAgICBp
bnQgKmlzYnJlYWthYmxlOworICAgIGludCBhbGxvY2F0ZWQ7CisgICAgaW50IG51bXdicnBvcyxu
dW1pc2JyZWFrYWJsZTsKKyAgICBLTGlicmFyeSAqbGlicmFyeTsKK307CitzdGF0aWMgVGhhaUNh
Y2hlICpjYWNoZSA9IDA7CisKK3ZvaWQgY2xlYW51cF90aGFpYnJlYWtzKCkKK3sKKyAgICBkZWxl
dGUgY2FjaGU7CisgICAgY2FjaGUgPSAwOworI2lmbmRlZiBIQVZFX0xJQlRIQUkKKyAgICB0aF9i
cmsgPSAwOworI2VuZGlmCit9CisKK2ludCogaXNicmVha1dvcmRUaGFpKCBjb25zdCBRQ2hhciAq
c3RyaW5nLCBjb25zdCBpbnQgcG9zLCBjb25zdCBpbnQgbGVuKQoreworICAgIHN0cmluZyA9IHN0
cmluZyArIHBvczsKKyAgICBzdGF0aWMgUVRleHRDb2RlYyAqdGhhaUNvZGVjID0gUVRleHRDb2Rl
Yzo6Y29kZWNGb3JNaWIoMjI1OSk7CisKKyNpZm5kZWYgSEFWRV9MSUJUSEFJCisKKyAgICBLTGli
cmFyeSAqbGliID0gMDsKKworICAgIC8qIGxvYWQgbGlidGhhaSBkeW5hbWljYWxseSAqLworICAg
IGlmICghdGhfYnJrICYmIHRoYWlDb2RlYykgeworICAgICAgICBwcmludGYoIlRyeSB0byBsb2Fk
IGxpYnRoYWkgZHluYW1pY2FsbHkuLi5cbiIpOworICAgICAgICBLTGliTG9hZGVyICpsb2FkZXIg
PSBLTGliTG9hZGVyOjpzZWxmKCk7CisgICAgICAgIGxpYiA9IGxvYWRlci0+bGlicmFyeShRTGF0
aW4xU3RyaW5nKCJsaWJ0aGFpLnNvLjAiKSk7CisgICAgICAgIGlmICggIWxpYiApCisgICAgICAg
ICAgIGxpYiA9IGxvYWRlci0+bGlicmFyeShRTGF0aW4xU3RyaW5nKCIvdXNyL2xpYi9saWJ0aGFp
LnNvLjAiKSk7CisgICAgICAgIGlmICggbGliICkKKyAgICAgICAgICAgdGhfYnJrID0gKHRoX2Jy
a19kZWYpIGxpYi0+cmVzb2x2ZUZ1bmN0aW9uKCJ0aF9icmsiKTsKKyAgICAgICAgaWYgKCAhdGhf
YnJrICkgeworICAgICAgICAgICAvLyBpbmRpY2F0aW9uIHRoYXQgbG9hZGluZyBmYWlsZWQgYW5k
IHdlIHNob3VsZG4ndCB0cnkgdG8gbG9hZCBhZ2FpbgorICAgICAgICAgICBwcmludGYoIkVycm9y
LCBjYW4ndCBsb2FkIGxpYnRoYWkuLi5cbiIpOworICAgICAgICAgICB0aGFpQ29kZWMgPSAwOwor
ICAgICAgICAgICBpZiAobGliKQorICAgICAgICAgICAgICBsaWItPnVubG9hZCgpOworICAgICAg
ICAgfQorICAgIH0KKworICAgIGlmICghdGhfYnJrICkgeworICAgICAgICByZXR1cm4gTlVMTDsK
KyAgICB9CisjZW5kaWYKKworICAgIGlmICghY2FjaGUgKSB7CisgICAgICAgIGNhY2hlID0gbmV3
IFRoYWlDYWNoZTsKKyNpZm5kZWYgSEFWRV9MSUJUSEFJCisgICAgICAgIGNhY2hlLT5saWJyYXJ5
ID0gbGliOworI2VuZGlmCisgICAgfQorICAgIC8vIGJ1aWxkIHVwIHN0cmluZyBvZiB0aGFpIGNo
YXJzCisgICAgaWYgKCBzdHJpbmcgIT0gY2FjaGUtPnN0cmluZyApIHsKKyAgICAgICAgLy9mcHJp
bnRmKHN0ZGVyciwibmV3IHN0cmluZyBmb3VuZCAobm90IGluIGNhY2hlKSwgY2FsbGluZyBsaWJ0
aGFpXG4iKTsKKyAgICAgICAgUUJ5dGVBcnJheSBjc3RyID0gdGhhaUNvZGVjLT5mcm9tVW5pY29k
ZSggUVN0cmluZzo6ZnJvbVJhd0RhdGEoc3RyaW5nLGxlbikpOworICAgICAgICAvL3ByaW50Zigi
QWJvdXQgdG8gY2FsbCBsaWJ0aGFpOjp0aF9icmsgd2l0aCBzdHI6ICVzIixjc3RyLmRhdGEoKSk7
CisgICAgICAgIGNhY2hlLT5udW13YnJwb3MgPSB0aF9icmsoKGNvbnN0IHVuc2lnbmVkIGNoYXIq
KSBjc3RyLmRhdGEoKSwgY2FjaGUtPndicnBvcywgY2FjaGUtPmFsbG9jYXRlZCk7CisgICAgICAg
IC8vZnByaW50ZihzdGRlcnIsImxpYnRoYWkgcmV0dXJucyB3aXRoIHZhbHVlICVkXG4iLGNhY2hl
LT5udW13YnJwb3MpOworICAgICAgICBjYWNoZS0+aXNicmVha2FibGUgPSAoaW50ICopcmVhbGxv
YyhjYWNoZS0+aXNicmVha2FibGUsIGxlbipzaXplb2YoaW50KSk7CisJaWYgKGNhY2hlLT5udW13
YnJwb3MgPj0gY2FjaGUtPmFsbG9jYXRlZCkgeworICAgICAgICAgICAgY2FjaGUtPmFsbG9jYXRl
ZCA9IGxlbjsKKyAgICAgICAgICAgIGNhY2hlLT53YnJwb3MgPSAoaW50ICopcmVhbGxvYyhjYWNo
ZS0+d2JycG9zLCBjYWNoZS0+YWxsb2NhdGVkKnNpemVvZihpbnQpKTsKKyAgICAgICAgICAgIGNh
Y2hlLT5udW13YnJwb3MgPSB0aF9icmsoKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSBjc3RyLmRhdGEo
KSwgY2FjaGUtPndicnBvcywgY2FjaGUtPmFsbG9jYXRlZCk7CisgICAgICAgIH0KKyAgICAgICAg
Zm9yIChpbnQgaSA9IDAgOyBpIDwgbGVuIDsgKytpKSB7CisgICAgICAgICAgICBjYWNoZS0+aXNi
cmVha2FibGVbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIGlmICggY2FjaGUtPm51bXdicnBv
cyA+IDAgKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gY2FjaGUtPm51bXdicnBvcy0xOyBp
ID49IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGNhY2hlLT5pc2JyZWFrYWJsZVtjYWNoZS0+
d2JycG9zW2ldXSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2FjaGUt
PnN0cmluZyA9IHN0cmluZzsKKyAgICB9CisgCisgICAgcmV0dXJuIGNhY2hlLT5pc2JyZWFrYWJs
ZTsKK30KKwogS2F0ZVRleHRMaW5lOjpLYXRlVGV4dExpbmUgKCkKICAgOiBtX2ZsYWdzKDApCiB7
CkBAIC0zOSw3ICsxNTAsNyBAQCBLYXRlVGV4dExpbmU6OkthdGVUZXh0TGluZSAoY29uc3QgUUNo
YXIgCiB9CiAKIEthdGVUZXh0TGluZTo6fkthdGVUZXh0TGluZSgpCi17Cit7ICBjbGVhbnVwX3Ro
YWlicmVha3MoKTsKIH0KIAogdm9pZCBLYXRlVGV4dExpbmU6Omluc2VydFRleHQgKGludCBwb3Ms
IGNvbnN0IFFTdHJpbmcmIGluc1RleHQpCkBAIC00OSw2ICsxNjAsMzYgQEAgdm9pZCBLYXRlVGV4
dExpbmU6Omluc2VydFRleHQgKGludCBwb3MsIAogICAgIHJldHVybjsKIAogICBtX3RleHQuaW5z
ZXJ0IChwb3MsIGluc1RleHQpOworCisgIG1fYnJlYWtMaW5lLnJlc2l6ZSAobV90ZXh0LnNpemUo
KSk7CisgIGZvciAoaW50IGkgPSBwb3M7IGkgPCBwb3MgKyBpbnNUZXh0Lmxlbmd0aCgpOyBpKysp
IHsKKyAgICBtX2JyZWFrTGluZS5pbnNlcnQgKGksIGZhbHNlKTsKKyAgfQorCisgIGludCBpID0g
cG9zOworICB3aGlsZSAoaSAhPSAwICYmICFtX3RleHRbaV0uaXNTcGFjZSgpKSB7CisgICAgLS1p
OworICB9CisKKyAgd2hpbGUgKGkgPCBwb3MgKyBpbnNUZXh0Lmxlbmd0aCgpKSB7CisgICAgaW50
IHRoX2xlbiA9IDA7CisgICAgd2hpbGUgKG1fdGV4dFtpXS51bmljb2RlKCkgPCAweDBlMDAgJiYg
bV90ZXh0W2ldLnVuaWNvZGUoKSA+PSAweDBlODAgJiYgaSA8IHBvcyArIGluc1RleHQubGVuZ3Ro
KCkpCisgICAgICBpKys7CisgICAgd2hpbGUgKG1fdGV4dFtpICsgdGhfbGVuXS51bmljb2RlKCkg
Pj0gMHgwZTAwICYmIG1fdGV4dFtpICsgdGhfbGVuXS51bmljb2RlKCkgPCAweDBlODAgJiYgaSAr
IHRoX2xlbiA8IHBvcyArIGluc1RleHQubGVuZ3RoKCkpCisgICAgICB0aF9sZW4rKzsKKworICAg
IGlmICh0aF9sZW4gPiAwKSB7CisgICAgICBpbnQqIHRoX2JyZWFrID0gaXNicmVha1dvcmRUaGFp
KG1fdGV4dC5jb25zdERhdGEoKSwgaSwgdGhfbGVuKTsKKyAgICAgIGZvciAoaW50IGogPSBpO2og
PCBpICsgdGhfbGVuOyBqKyspCisgICAgICAgIG1fYnJlYWtMaW5lW2pdID0gdGhfYnJlYWtbaiAt
IGldOworICAgIH0KKyAgICBpICs9IHRoX2xlbiArIDE7CisgIH0KK30KKworYm9vbCBLYXRlVGV4
dExpbmU6OmlzQnJlYWthYmxlIChpbnQgcG9zKQoreworICByZXR1cm4gbV9icmVha0xpbmVbcG9z
XTsKIH0KIAogdm9pZCBLYXRlVGV4dExpbmU6OnJlbW92ZVRleHQgKHVpbnQgcG9zLCB1aW50IGRl
bExlbikKQEAgLTY5LDYgKzIxMCw3IEBAIHZvaWQgS2F0ZVRleHRMaW5lOjpyZW1vdmVUZXh0ICh1
aW50IHBvcywKICAgICBkZWxMZW4gPSB0ZXh0TGVuIC0gcG9zOwogCiAgIG1fdGV4dC5yZW1vdmUg
KHBvcywgZGVsTGVuKTsKKyAgbV9icmVha0xpbmUucmVtb3ZlIChwb3MsIGRlbExlbik7CiB9CiAK
IHZvaWQgS2F0ZVRleHRMaW5lOjp0cnVuY2F0ZShpbnQgbmV3TGVuKQpkaWZmIC11TnJwIGtkZWxp
YnMtNC4wLjAub3JpZy9rYXRlL2RvY3VtZW50L2thdGV0ZXh0bGluZS5oIGtkZWxpYnMtNC4wLjAv
a2F0ZS9kb2N1bWVudC9rYXRldGV4dGxpbmUuaAotLS0ga2RlbGlicy00LjAuMC5vcmlnL2thdGUv
ZG9jdW1lbnQva2F0ZXRleHRsaW5lLmgJMjAwOC0wMS0wNSAwNjo1OTo0OS4wMDAwMDAwMDAgKzA3
MDAKKysrIGtkZWxpYnMtNC4wLjAva2F0ZS9kb2N1bWVudC9rYXRldGV4dGxpbmUuaAkyMDA4LTAy
LTA4IDE2OjE4OjIzLjAwMDAwMDAwMCArMDcwMApAQCAtMjg1LDYgKzI4NSwxMiBAQCBjbGFzcyBL
YXRlVGV4dExpbmUgOiBwdWJsaWMgS1NoYXJlZAogICAgIHZvaWQgaW5zZXJ0VGV4dCAoaW50IHBv
cywgY29uc3QgUVN0cmluZyYgaW5zVGV4dCk7CiAKICAgICAvKioKKyAgICAgKiByZXR1cm4gYnJl
YWtsaW5lIGF0dHJpYnV0ZSBtX2JyZWFrTGluZQorICAgICAqIEBwYXJhbSBwb3MgaW5zZXJ0IHBv
c2l0aW9uCisgICAgICovICAgIAorICAgIGJvb2wgaXNCcmVha2FibGUgKGludCBwb3MpOworCisg
ICAgLyoqCiAgICAgICogcmVtb3ZlIHRleHQgYXQgZ2l2ZW4gcG9zaXRpb24KICAgICAgKiBAcGFy
YW0gcG9zIHN0YXJ0IHBvc2l0aW9uIG9mIHJlbW92ZQogICAgICAqIEBwYXJhbSBkZWxMZW4gbGVu
Z3RoIHRvIHJlbW92ZQpAQCAtMzc1LDYgKzM4MSwxMSBAQCBjbGFzcyBLYXRlVGV4dExpbmUgOiBw
dWJsaWMgS1NoYXJlZAogICAgICAqLwogICAgIFFWZWN0b3I8aW50PiBtX2F0dHJpYnV0ZXNMaXN0
OwogCisgICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBmb3IgbGluZUJyZWFrIHZhbHVlICJ0cnVl
IiBmb3IgYnJlYWtsaW5lCisgICAgICovCisgICAgUVZlY3Rvcjxib29sPiBtX2JyZWFrTGluZTsK
KwogICAgIC8qKgogICAgICAqIGNvbnRleHQgc3RhY2sKICAgICAgKi8KZGlmZiAtdU5ycCBrZGVs
aWJzLTQuMC4wLm9yaWcva2F0ZS9yZW5kZXIva2F0ZXJlbmRlcmVyLmNwcCBrZGVsaWJzLTQuMC4w
L2thdGUvcmVuZGVyL2thdGVyZW5kZXJlci5jcHAKLS0tIGtkZWxpYnMtNC4wLjAub3JpZy9rYXRl
L3JlbmRlci9rYXRlcmVuZGVyZXIuY3BwCTIwMDgtMDEtMDUgMDY6NTk6NDMuMDAwMDAwMDAwICsw
NzAwCisrKyBrZGVsaWJzLTQuMC4wL2thdGUvcmVuZGVyL2thdGVyZW5kZXJlci5jcHAJMjAwOC0w
Mi0wOCAxNjoxODoyMy4wMDAwMDAwMDAgKzA3MDAKQEAgLTc1NSw3ICs3NTUsNyBAQCB2b2lkIEth
dGVSZW5kZXJlcjo6bGF5b3V0TGluZShLYXRlTGluZUxhCiAgIFFUZXh0T3B0aW9uIG9wdDsKICAg
b3B0LnNldEZsYWdzKFFUZXh0T3B0aW9uOjpJbmNsdWRlVHJhaWxpbmdTcGFjZXMpOwogICBvcHQu
c2V0VGFiU3RvcChtX3RhYldpZHRoICogY29uZmlnKCktPmZvbnRNZXRyaWNzKCkud2lkdGgoc3Bh
Y2VDaGFyKSk7Ci0gIG9wdC5zZXRXcmFwTW9kZShRVGV4dE9wdGlvbjo6V3JhcEFueXdoZXJlKTsv
L1FUZXh0T3B0aW9uOjpXcmFwQXRXb3JkQm91bmRhcnlPckFueXdoZXJlKTsKKyAgb3B0LnNldFdy
YXBNb2RlKFFUZXh0T3B0aW9uOjpXcmFwQXRXb3JkQm91bmRhcnlPckFueXdoZXJlKTsvL1FUZXh0
T3B0aW9uOjpXcmFwQW55d2hlcmUpOwogCiAgIC8vIEZpbmQgdGhlIGZpcnN0IHN0cm9uZyBjaGFy
YWN0ZXIgaW4gdGhlIHN0cmluZy4KICAgLy8gSWYgaXQgaXMgYW4gUlRMIGNoYXJhY3Rlciwgc2V0
IHRoZSBiYXNlIGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIHN0cmluZyB0byBSVEwuCmRpZmYgLXVO
cnAga2RlbGlicy00LjAuMC5vcmlnL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcCBrZGVs
aWJzLTQuMC4wL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcAotLS0ga2RlbGlicy00LjAu
MC5vcmlnL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcAkyMDA4LTAxLTA1IDA2OjU5OjQ5
LjAwMDAwMDAwMCArMDcwMAorKysga2RlbGlicy00LjAuMC9rYXRlL3ZpZXcva2F0ZXZpZXdpbnRl
cm5hbC5jcHAJMjAwOC0wMi0wOCAxNjoxODoyMy4wMDAwMDAwMDAgKzA3MDAKQEAgLTczMiw3ICs3
MzIsMTEgQEAgdm9pZCBLYXRlVmlld0ludGVybmFsOjpkb1JldHVybigpCiAKIHZvaWQgS2F0ZVZp
ZXdJbnRlcm5hbDo6ZG9EZWxldGUoKQogewotICBtX2RvYy0+ZGVsKCBtX3ZpZXcsIG1fY3Vyc29y
ICk7CisgIGlmICggbV92aWV3LT5jb25maWcoKS0+cGVyc2lzdGVudFNlbGVjdGlvbigpIHx8ICFt
X3ZpZXctPnNlbGVjdGlvbigpICkgeworICAgIG1fdmlldy0+c2hpZnRDdXJzb3JSaWdodCgpOwor
ICB9CisgIG1fdmlldy0+cmVtb3ZlU2VsZWN0ZWRUZXh0KCk7CisgIHJldHVybjsKIH0KIAogdm9p
ZCBLYXRlVmlld0ludGVybmFsOjpkb0JhY2tzcGFjZSgpCkBAIC0xMDI0LDggKzEwMjgsMTEgQEAg
dm9pZCBLYXRlVmlld0ludGVybmFsOjp3b3JkTGVmdCAoIGJvb2wgcwogICB9CiAgIGVsc2UgaWYo
IGgtPmlzSW5Xb3JkKCBtX2RvYy0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSAtIDEgXSAp
ICkKICAgewotICAgIHdoaWxlKCAhYy5hdEVkZ2UoIGxlZnQgKSAmJiBoLT5pc0luV29yZCggbV9k
b2MtPmxpbmUoIGMubGluZSgpIClbIGMuY29sdW1uKCkgLSAxIF0gKSApCi0gICAgICAtLWM7Cisg
ICAgaWYgKG1fZG9jLT5nZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1bW4oKSkpCisgICAgICAg
LS1jOworCisgICAgd2hpbGUoICFjLmF0RWRnZSggbGVmdCApICYmIGgtPmlzSW5Xb3JkKCBtX2Rv
Yy0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSAtIDEgXSApICYmICFtX2RvYy0+Z2V0QnJl
YWtMaW5lKGMubGluZSgpLGMuY29sdW1uKCkpKQorICAgICAgIC0tYzsKICAgfQogICBlbHNlCiAg
IHsKQEAgLTEwNjIsNyArMTA2OSw5IEBAIHZvaWQgS2F0ZVZpZXdJbnRlcm5hbDo6d29yZFJpZ2h0
KCBib29sIHMKICAgfQogICBlbHNlIGlmKCBoLT5pc0luV29yZCggbV9kb2MtPmxpbmUoIGMubGlu
ZSgpIClbIGMuY29sdW1uKCkgXSApICkKICAgewotICAgIHdoaWxlKCAhYy5hdEVkZ2UoIHJpZ2h0
ICkgJiYgaC0+aXNJbldvcmQoIG1fZG9jLT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIF0g
KSApCisgICAgaWYgKG1fZG9jLT5nZXRCcmVha0xpbmUoYy5saW5lKCksYy5jb2x1bW4oKSkpCisg
ICAgICArK2M7CisgICAgd2hpbGUoICFjLmF0RWRnZSggcmlnaHQgKSAmJiBoLT5pc0luV29yZCgg
bV9kb2MtPmxpbmUoIGMubGluZSgpIClbIGMuY29sdW1uKCkgXSApICYmICFtX2RvYy0+Z2V0QnJl
YWtMaW5lKGMubGluZSgpLGMuY29sdW1uKCkpICkKICAgICAgICsrYzsKICAgfQogICBlbHNlCkBA
IC0zNDEwLDcgKzM0MTksNyBAQCBRVmFyaWFudCBLYXRlVmlld0ludGVybmFsOjppbnB1dE1ldGhv
ZFF1CiAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+Y3VycmVudEZvbnQoKTsKIAogICAgIGNhc2Ug
UXQ6OkltQ3Vyc29yUG9zaXRpb246Ci0gICAgICByZXR1cm4gY3Vyc29yQ29vcmRpbmF0ZXMoZmFs
c2UpOworICAgICAgcmV0dXJuIG1fZGlzcGxheUN1cnNvci5jb2x1bW4oKTsKIAogICAgIGNhc2Ug
UXQ6OkltU3Vycm91bmRpbmdUZXh0OgogICAgICAgaWYgKEthdGVUZXh0TGluZTo6UHRyIGwgPSB0
ZXh0TGluZShtX2N1cnNvci5saW5lKCkpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27096</attachid>
            <date>2008-08-28 10:00:03 +0000</date>
            <delta_ts>2010-05-13 18:20:10 +0000</delta_ts>
            <desc>kdelibs/kate Thai wordbreak patch</desc>
            <filename>kdelibs-4.0.98-kate_wordbreak.patch</filename>
            <type>text/plain</type>
            <size>6575</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">ZGlmZiAtTnVyIGtkZWxpYnMtNC4wLjk4Lm9yaWcva2F0ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQu
Y3BwIGtkZWxpYnMtNC4wLjk4L2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNwcAotLS0ga2Rl
bGlicy00LjAuOTgub3JpZy9rYXRlL2RvY3VtZW50L2thdGVkb2N1bWVudC5jcHAJMjAwOC0wNy0w
OCAxNjo1NDoxMi4wMDAwMDAwMDAgKzA3MDAKKysrIGtkZWxpYnMtNC4wLjk4L2thdGUvZG9jdW1l
bnQva2F0ZWRvY3VtZW50LmNwcAkyMDA4LTA3LTI2IDE5OjQ5OjA3LjAwMDAwMDAwMCArMDcwMApA
QCAtMTE4NywxNCArMTE4NywyMSBAQAogICAgICAgLy8gVGhpcyBjb3VsZCBiZSBhIHByaW9yaXR5
IChzZXR0aW5nKSBpbiB0aGUgaGwvZmlsZXR5cGUvZG9jdW1lbnQKICAgICAgIGludCB6ID0gMDsK
ICAgICAgIGludCBudyA9IDA7IC8vIGFsdGVybmF0aXZlIHBvc2l0aW9uLCBhIG5vbiB3b3JkIGNo
YXJhY3RlcgorI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA0MDAKKyAgICAgIFFUZXh0TGF5b3V0IGN1
cmxpbmUoIGwtPnN0cmluZygpICk7CisgICAgICB6ID0gbncgPSBjdXJsaW5lLnByZXZpb3VzQ3Vy
c29yUG9zaXRpb24oIHNlYXJjaFN0YXJ0LCBRVGV4dExheW91dDo6U2tpcFdvcmRzICk7CisjZWxz
ZQogICAgICAgZm9yICh6PXNlYXJjaFN0YXJ0OyB6ID4gMDsgei0tKQogICAgICAgewogICAgICAg
ICBpZiAodC5hdCh6KS5pc1NwYWNlKCkpIGJyZWFrOwogICAgICAgICBpZiAoICEgbncgJiYgaGln
aGxpZ2h0KCktPmNhbkJyZWFrQXQoIHQuYXQoeikgLCBsLT5hdHRyaWJ1dGUoeikgKSApCiAgICAg
ICAgIG53ID0gejsKICAgICAgIH0KLQorI2VuZGlmCiAgICAgICBib29sIHJlbW92ZVRyYWlsaW5n
U3BhY2UgPSBmYWxzZTsKKyNpZiBRVF9WRVJTSU9OID49IDB4MDQwNDAwCisgICAgICBpZiAoeiA9
PSAwKQorI2Vsc2UKICAgICAgIGlmICh6ID4gMCkKICAgICAgIHsKICAgICAgICAgLy8gU28gd2h5
IGRvbid0IHdlIGp1c3QgcmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZSByaWdodCBhd2F5PwpAQCAt
MTIwNiw2ICsxMjEzLDcgQEAKICAgICAgICAgcmVtb3ZlVHJhaWxpbmdTcGFjZSA9IHRydWU7CiAg
ICAgICB9CiAgICAgICBlbHNlCisjZW5kaWYKICAgICAgIHsKICAgICAgICAgLy8gVGhlcmUgd2Fz
IG5vIHNwYWNlIHRvIGJyZWFrIGF0IHNvIGJyZWFrIGF0IGEgbm9ud29yZCBjaGFyYWN0ZXIgaWYK
ICAgICAgICAgLy8gZm91bmQsIG9yIGF0IHRoZSB3cmFwY29sdW1uICggdGhhdCBuZWVkcyBiZSBj
b25maWd1cmFibGUgKQpkaWZmIC1OdXIga2RlbGlicy00LjAuOTgub3JpZy9rYXRlL3ZpZXcva2F0
ZXZpZXcuY3BwIGtkZWxpYnMtNC4wLjk4L2thdGUvdmlldy9rYXRldmlldy5jcHAKLS0tIGtkZWxp
YnMtNC4wLjk4Lm9yaWcva2F0ZS92aWV3L2thdGV2aWV3LmNwcAkyMDA4LTA2LTI2IDA4OjMzOjIw
LjAwMDAwMDAwMCArMDcwMAorKysga2RlbGlicy00LjAuOTgva2F0ZS92aWV3L2thdGV2aWV3LmNw
cAkyMDA4LTA3LTI2IDIwOjQxOjIxLjAwMDAwMDAwMCArMDcwMApAQCAtNDgsNiArNDgsMTAgQEAK
ICNpbmNsdWRlICJrYXRlc2VhcmNoYmFyLmgiCiAjaW5jbHVkZSAia2F0ZXBhcnRwbHVnaW5tYW5h
Z2VyLmgiCiAKKyNpZiBRVF9WRVJTSU9OID49IDB4MDQwNDAwCisjaW5jbHVkZSAia2F0ZWxheW91
dGNhY2hlLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPGt0ZXh0ZWRpdG9yL2N1cnNvcmZlZWRiYWNr
Lmg+CiAKICNpbmNsdWRlIDxrcGFydHMvZXZlbnQuaD4KQEAgLTE1OTEsNiArMTU5NSwyOSBAQAog
CiB2b2lkIEthdGVWaWV3OjpzZWxlY3RXb3JkKCBjb25zdCBLVGV4dEVkaXRvcjo6Q3Vyc29yJiBj
dXJzb3IgKQogeworI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA0MDAKKyAgaW50IHN0YXJ0LCBlbmQ7
CisgIGNvbnN0IFFTdHJpbmcgd29yZFNlcCA9ICgiLiw/ITo7LTw+W10oKXt9PS9cdCIpOworICBR
Q2hhciBjaDsKKworICBLYXRlTGluZUxheW91dFB0ciBjdXJMaW5lID0gbV92aWV3SW50ZXJuYWwt
PmNhY2hlKCktPmxpbmUoIGN1cnNvci5saW5lKCkgKTsKKworICBzdGFydCA9IGN1cnNvci5jb2x1
bW4oKTsKKworICBjaCA9IGN1ckxpbmUtPmxheW91dCgpLT50ZXh0KClbc3RhcnQgLSAxXTsKKyAg
c3RhcnQgLT0gd29yZFNlcC5jb250YWlucyhjaCkgPyAxIDogMDsKKyAgY2ggPSBjdXJMaW5lLT5s
YXlvdXQoKS0+dGV4dCgpW3N0YXJ0IC0gMV07CisgIHN0YXJ0ICs9IChjaCA9PSBRTGF0aW4xQ2hh
cignICcpKSA/IDEgOiAwOworCisgIHN0YXJ0ID0gY3VyTGluZS0+bGF5b3V0KCktPnByZXZpb3Vz
Q3Vyc29yUG9zaXRpb24oIHN0YXJ0LCBRVGV4dExheW91dDo6U2tpcFdvcmRzKTsKKyAgZW5kID0g
Y3VyTGluZS0+bGF5b3V0KCktPm5leHRDdXJzb3JQb3NpdGlvbiggc3RhcnQsIFFUZXh0TGF5b3V0
OjpTa2lwV29yZHMgKTsKKworICBjaCA9IGN1ckxpbmUtPmxheW91dCgpLT50ZXh0KClbZW5kIC0g
MV07CisgIGlmICggd29yZFNlcC5jb250YWlucyhjaCkgfHwgY2ggPT0gUUxhdGluMUNoYXIoJyAn
KSApCisgICAgLS1lbmQ7CisKKyNlbHNlCisKICAgaW50IHN0YXJ0LCBlbmQsIGxlbjsKIAogICBL
YXRlVGV4dExpbmU6OlB0ciB0ZXh0TGluZSA9IG1fZG9jLT5wbGFpbkthdGVUZXh0TGluZShjdXJz
b3IubGluZSgpKTsKQEAgLTE2MDQsNiArMTYzMSw4IEBACiAgIHdoaWxlIChlbmQgPCBsZW4gJiYg
bV9kb2MtPmhpZ2hsaWdodCgpLT5pc0luV29yZCh0ZXh0TGluZS0+YXQoZW5kKSwgdGV4dExpbmUt
PmF0dHJpYnV0ZShzdGFydCAtIDEpKSkgZW5kKys7CiAgIGlmIChlbmQgPD0gc3RhcnQpIHJldHVy
bjsKIAorI2VuZGlmCisKICAgc2V0U2VsZWN0aW9uIChLVGV4dEVkaXRvcjo6UmFuZ2UoY3Vyc29y
LmxpbmUoKSwgc3RhcnQsIGN1cnNvci5saW5lKCksIGVuZCkpOwogfQogCmRpZmYgLU51ciBrZGVs
aWJzLTQuMC45OC5vcmlnL2thdGUvdmlldy9rYXRldmlld2ludGVybmFsLmNwcCBrZGVsaWJzLTQu
MC45OC9rYXRlL3ZpZXcva2F0ZXZpZXdpbnRlcm5hbC5jcHAKLS0tIGtkZWxpYnMtNC4wLjk4Lm9y
aWcva2F0ZS92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwCTIwMDgtMDYtMjYgMDg6MzM6MjAuMDAw
MDAwMDAwICswNzAwCisrKyBrZGVsaWJzLTQuMC45OC9rYXRlL3ZpZXcva2F0ZXZpZXdpbnRlcm5h
bC5jcHAJMjAwOC0wNy0yNiAxOToyNzozNy4wMDAwMDAwMDAgKzA3MDAKQEAgLTc0NSw2ICs3NDUs
OSBAQAogCiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OmRvRGVsZXRlKCkKIHsKKyAgLy8gSWYgbm8g
c2VsZWN0aW9uIHRoZW4gc2VsZWN0IG9uZSBjZWxsIGZvciBkZWxldGUgY2VsbCBpbnN0ZWFkIG9m
IGNoYXIKKyAgaWYgKCAhbV92aWV3LT5jb25maWcoKS0+cGVyc2lzdGVudFNlbGVjdGlvbigpICYm
ICFtX3ZpZXctPnNlbGVjdGlvbigpICkKKyAgICBjdXJzb3JSaWdodCggdHJ1ZSApOwogICBtX2Rv
Yy0+ZGVsKCBtX3ZpZXcsIG1fY3Vyc29yICk7CiB9CiAKQEAgLTk4MCw2ICs5ODMsNzMgQEAKICAg
dmlydHVhbCBDYWxjdWxhdGluZ0N1cnNvciYgb3BlcmF0b3ItPSggaW50IG4gKSB7CiAgICAgcmV0
dXJuIG9wZXJhdG9yKz0oIC1uICk7CiAgIH0KKworI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA0MDAK
KyAgdmlydHVhbCBDYWxjdWxhdGluZ0N1cnNvciYgcHJldmlvdXNXb3JkUG9zaXRpb24gKCkgewor
ICAgIEthdGVMaW5lTGF5b3V0UHRyIHRoaXNMaW5lID0gbV92aS0+Y2FjaGUoKS0+bGluZShsaW5l
KCkpOworICAgIGlmICghdGhpc0xpbmUtPmlzVmFsaWQoKSkgeworICAgICAga1dhcm5pbmcoKSA8
PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlkIGxheW91dCBmb3IgbGluZSAiIDw8IGxpbmUoKTsK
KyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBpZiAobV9jb2x1bW4gPT0gMCkgewor
ICAgICAgLy8gSGF2ZSBjb21lIHRvIHRoZSBzdGFydCBvZiB0aGUgZG9jdW1lbnQKKyAgICAgIGlm
IChsaW5lKCkgIT0gMCkgeworCisgICAgICAgIC8vIFN0YXJ0IGdvaW5nIGJhY2sgdG8gdGhlIGVu
ZCBvZiB0aGUgbGFzdCBsaW5lCisgICAgICAgIHNldExpbmUobGluZSgpIC0gMSk7CisKKyAgICAg
ICAgLy8gUmV0cmlldmUgdGhlIG5leHQgdGV4dCByYW5nZQorICAgICAgICB0aGlzTGluZSA9IG1f
dmktPmNhY2hlKCktPmxpbmUobGluZSgpKTsKKyAgICAgICAgaWYgKCF0aGlzTGluZS0+aXNWYWxp
ZCgpKSB7CisgICAgICAgICAga1dhcm5pbmcoKSA8PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlk
IGxheW91dCBmb3IgbGluZSAiIDw8IGxpbmUoKTsKKyAgICAgICAgICByZXR1cm4gKnRoaXM7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBGaW5pc2ggZ29pbmcgYmFjayB0byB0aGUgZW5kIG9mIHRo
ZSBsYXN0IGxpbmUKKyAgICAgICAgbV9jb2x1bW4gPSB0aGlzTGluZS0+bGVuZ3RoKCk7CisKKyAg
ICAgIH0KKyAgICB9CisKKyAgICBtX2NvbHVtbiA9IHRoaXNMaW5lLT5sYXlvdXQoKS0+cHJldmlv
dXNDdXJzb3JQb3NpdGlvbihtX2NvbHVtbiwgUVRleHRMYXlvdXQ6OlNraXBXb3Jkcyk7CisKKyAg
ICBRX0FTU0VSVCh2YWxpZCgpKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICB2aXJ0dWFs
IENhbGN1bGF0aW5nQ3Vyc29yJiBuZXh0V29yZFBvc2l0aW9uICgpIHsKKyAgICBLYXRlTGluZUxh
eW91dFB0ciB0aGlzTGluZSA9IG1fdmktPmNhY2hlKCktPmxpbmUobGluZSgpKTsKKyAgICBpZiAo
IXRoaXNMaW5lLT5pc1ZhbGlkKCkpIHsKKyAgICAgIGtXYXJuaW5nKCkgPDwgIkRpZCBub3QgcmV0
cmlldmUgYSB2YWxpZCBsYXlvdXQgZm9yIGxpbmUgIiA8PCBsaW5lKCk7CisgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQorCisgICAgaWYgKG1fY29sdW1uID09IHRoaXNMaW5lLT5sZW5ndGgoKSkg
eworICAgICAgLy8gSGF2ZSBjb21lIHRvIHRoZSBlbmQgb2YgYSBsaW5lCisgICAgICBpZiAobGlu
ZSgpIDwgbV92aS0+bV9kb2MtPmxpbmVzKCkgLSAxKSB7CisgICAgICAgIC8vIE5vdCBlbmQgb2Yg
dGhlIGRvY3VtZW50CisKKyAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBuZXh0IGxpbmUKKyAgICAgICAgbV9jb2x1bW4gPSAwOworICAgICAgICBzZXRMaW5lKGxpbmUo
KSArIDEpOworCisgICAgICAgIC8vIFJldHJpZXZlIHRoZSBuZXh0IHRleHQgcmFuZ2UKKyAgICAg
ICAgdGhpc0xpbmUgPSBtX3ZpLT5jYWNoZSgpLT5saW5lKGxpbmUoKSk7CisgICAgICAgIGlmICgh
dGhpc0xpbmUtPmlzVmFsaWQoKSkgeworICAgICAgICAgIGtXYXJuaW5nKCkgPDwgIkRpZCBub3Qg
cmV0cmlldmUgYSB2YWxpZCBsYXlvdXQgZm9yIGxpbmUgIiA8PCBsaW5lKCk7CisgICAgICAgICAg
cmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgIH0KKyAgICB9CisKKyAgICBtX2NvbHVt
biA9IHRoaXNMaW5lLT5sYXlvdXQoKS0+bmV4dEN1cnNvclBvc2l0aW9uKG1fY29sdW1uLCBRVGV4
dExheW91dDo6U2tpcFdvcmRzKTsKKworICAgIFFfQVNTRVJUKHZhbGlkKCkpOworICAgIHJldHVy
biAqdGhpczsKKyAgfQorI2VuZGlmCiB9OwogCiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6Om1vdmVD
aGFyKCBLYXRlVmlld0ludGVybmFsOjpCaWFzIGJpYXMsIGJvb2wgc2VsICkKQEAgLTEwMjUsNiAr
MTA5NSwxMyBAQAogICAvLyBhbmQgc2tpcCBhbGwgcHJlY2VkaW5nIGNoYXJhY3RlcnMgdGhhdCBm
YWxsIGludG8gdGhpcyBjbGFzcy4KICAgLy8gVGhlIGNvZGUgYXNzdW1lcyB0aGF0IHNwYWNlIGlz
IG5ldmVyIHBhcnQgb2YgdGhlIHdvcmQgY2hhcmFjdGVyIGNsYXNzLgogCisjaWYgUVRfVkVSU0lP
TiA+PSAweDA0MDQwMAorCisgIC8vIFVzaW5nIHNraXBXb3JkcyBtb2RlIG9mIFFUZXh0TGF5b3V0
CisgIGMucHJldmlvdXNXb3JkUG9zaXRpb24gKCk7CisKKyNlbHNlCisKICAgS2F0ZUhpZ2hsaWdo
dGluZyogaCA9IG1fZG9jLT5oaWdobGlnaHQoKTsKICAgaWYoICFjLmF0RWRnZSggbGVmdCApICkg
ewogCkBAIC0xMDUyLDYgKzExMjksOCBAQAogICAgIH0KICAgfQogCisjZW5kaWYKKwogICB1cGRh
dGVTZWxlY3Rpb24oIGMsIHNlbCApOwogICB1cGRhdGVDdXJzb3IoIGMgKTsKIH0KQEAgLTEwNjgs
NiArMTE0NywxMyBAQAogICAvLyBJZiB0aGUgc2tpcHBlZCBjaGFyYWN0ZXJzIGFyZSBmb2xsb3dl
ZCBieSBzcGFjZSwgd2Ugc2tpcCB0aGF0IHRvby4KICAgLy8gVGhlIGNvZGUgYXNzdW1lcyB0aGF0
IHNwYWNlIGlzIG5ldmVyIHBhcnQgb2YgdGhlIHdvcmQgY2hhcmFjdGVyIGNsYXNzLgogCisjaWYg
UVRfVkVSU0lPTiA+PSAweDA0MDQwMAorCisgIC8vIFVzaW5nIHNraXBXb3JkcyBtb2RlIG9mIFFU
ZXh0TGF5b3V0CisgIGMubmV4dFdvcmRQb3NpdGlvbiAoKTsKKworI2Vsc2UKKwogICBLYXRlSGln
aGxpZ2h0aW5nKiBoID0gbV9kb2MtPmhpZ2hsaWdodCgpOwogICBpZiggYy5hdEVkZ2UoIHJpZ2h0
ICkgKQogICB7CkBAIC0xMDkzLDYgKzExNzksOCBAQAogICB3aGlsZSggIWMuYXRFZGdlKCByaWdo
dCApICYmIG1fZG9jLT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIF0uaXNTcGFjZSgpICkK
ICAgICArK2M7CiAKKyNlbmRpZgorCiAgIHVwZGF0ZVNlbGVjdGlvbiggYywgc2VsICk7CiAgIHVw
ZGF0ZUN1cnNvciggYyApOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27097</attachid>
            <date>2008-08-28 10:07:36 +0000</date>
            <delta_ts>2010-05-13 18:20:10 +0000</delta_ts>
            <desc>kdelibs/kate im cursor query patch</desc>
            <filename>kdelibs-4.0.98-kate_imcursor_query.patch</filename>
            <type>text/plain</type>
            <size>580</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">LS0tIGtkZWxpYnMtNC4wLjk4Lm9yaWcva2F0ZS92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwCTIw
MDgtMDYtMjYgMDg6MzM6MjAuMDAwMDAwMDAwICswNzAwCisrKyBrZGVsaWJzLTQuMC45OC9rYXRl
L3ZpZXcva2F0ZXZpZXdpbnRlcm5hbC5jcHAJMjAwOC0wNy0yOSAyMTo1Mzo0Ny4wMDAwMDAwMDAg
KzA3MDAKQEAgLTM1MDgsNyArMzUwOCw5IEBACiAgICAgICBpZiAobV9pbVByZWVkaXQpCiAgICAg
ICAgIHJldHVybiBjdXJzb3JUb0Nvb3JkaW5hdGUobV9pbVByZWVkaXQtPnN0YXJ0KCksIHRydWUs
IGZhbHNlKTsKICAgICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIGN1cnNvckNvb3JkaW5hdGVzKGZh
bHNlKTsKKyAgICAgICAgLy8gTmVlZGVkIGNvbHVtbiBwb3NpdGlvbiBmb3IgWElNICwgTk9UIFFQ
b2ludCAhCisgICAgICAgIHJldHVybiBtX2N1cnNvci5jb2x1bW4oKTsKKyAgICAgICAgLy9yZXR1
cm4gY3Vyc29yQ29vcmRpbmF0ZXMoZmFsc2UpOwogCiAgICAgY2FzZSBRdDo6SW1TdXJyb3VuZGlu
Z1RleHQ6CiAgICAgICBpZiAoS2F0ZVRleHRMaW5lOjpQdHIgbCA9IHRleHRMaW5lKG1fY3Vyc29y
LmxpbmUoKSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43547</attachid>
            <date>2010-05-13 18:20:10 +0000</date>
            <delta_ts>2010-05-13 18:20:10 +0000</delta_ts>
            <desc>Fixed Thai-related problems in Kate (Word break and cursor movement)</desc>
            <filename>kate_thai.patch</filename>
            <type>text/plain</type>
            <size>6613</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5yIGtkZTRsaWJzLTQuNC4yL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNwcCBr
ZGU0bGlicy00LjQuMi1jb21waWxlZC9rYXRlL2RvY3VtZW50L2thdGVkb2N1bWVudC5jcHAKLS0t
IGtkZTRsaWJzLTQuNC4yL2thdGUvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNwcAkyMDEwLTAzLTI3
IDAwOjI0OjI2LjAwMDAwMDAwMCArMDcwMAorKysga2RlNGxpYnMtNC40LjItY29tcGlsZWQva2F0
ZS9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCTIwMTAtMDUtMTAgMTA6MDk6MDAuMDAwMDAwMDAw
ICswNzAwCkBAIC0xMDcyLDE0ICsxMDcyLDIxIEBACiAgICAgICAvLyBUaGlzIGNvdWxkIGJlIGEg
cHJpb3JpdHkgKHNldHRpbmcpIGluIHRoZSBobC9maWxldHlwZS9kb2N1bWVudAogICAgICAgaW50
IHogPSAwOwogICAgICAgaW50IG53ID0gMDsgLy8gYWx0ZXJuYXRpdmUgcG9zaXRpb24sIGEgbm9u
IHdvcmQgY2hhcmFjdGVyCisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQwMAorICAgICAgUVRleHRM
YXlvdXQgY3VybGluZSggbC0+c3RyaW5nKCkgKTsKKyAgICAgIHogPSBudyA9IGN1cmxpbmUucHJl
dmlvdXNDdXJzb3JQb3NpdGlvbiggc2VhcmNoU3RhcnQsIFFUZXh0TGF5b3V0OjpTa2lwV29yZHMg
KTsKKyNlbHNlCiAgICAgICBmb3IgKHo9c2VhcmNoU3RhcnQ7IHogPiAwOyB6LS0pCiAgICAgICB7
CiAgICAgICAgIGlmICh0LmF0KHopLmlzU3BhY2UoKSkgYnJlYWs7CiAgICAgICAgIGlmICggISBu
dyAmJiBoaWdobGlnaHQoKS0+Y2FuQnJlYWtBdCggdC5hdCh6KSAsIGwtPmF0dHJpYnV0ZSh6KSAp
ICkKICAgICAgICAgbncgPSB6OwogICAgICAgfQotCisjZW5kaWYKICAgICAgIGJvb2wgcmVtb3Zl
VHJhaWxpbmdTcGFjZSA9IGZhbHNlOworI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA0MDAKKyAgICAg
IGlmICh6ID09IDApCisjZWxzZQogICAgICAgaWYgKHogPiAwKQogICAgICAgewogICAgICAgICAv
LyBTbyB3aHkgZG9uJ3Qgd2UganVzdCByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlIHJpZ2h0IGF3
YXk/CkBAIC0xMDkxLDYgKzEwOTgsNyBAQAogICAgICAgICByZW1vdmVUcmFpbGluZ1NwYWNlID0g
dHJ1ZTsKICAgICAgIH0KICAgICAgIGVsc2UKKyNlbmRpZgogICAgICAgewogICAgICAgICAvLyBU
aGVyZSB3YXMgbm8gc3BhY2UgdG8gYnJlYWsgYXQgc28gYnJlYWsgYXQgYSBub253b3JkIGNoYXJh
Y3RlciBpZgogICAgICAgICAvLyBmb3VuZCwgb3IgYXQgdGhlIHdyYXBjb2x1bW4gKCB0aGF0IG5l
ZWRzIGJlIGNvbmZpZ3VyYWJsZSApCmRpZmYgLXVOciBrZGU0bGlicy00LjQuMi9rYXRlL3ZpZXcv
a2F0ZXZpZXcuY3BwIGtkZTRsaWJzLTQuNC4yLWNvbXBpbGVkL2thdGUvdmlldy9rYXRldmlldy5j
cHAKLS0tIGtkZTRsaWJzLTQuNC4yL2thdGUvdmlldy9rYXRldmlldy5jcHAJMjAxMC0wMi0yNyAw
MTozMDowNi4wMDAwMDAwMDAgKzA3MDAKKysrIGtkZTRsaWJzLTQuNC4yLWNvbXBpbGVkL2thdGUv
dmlldy9rYXRldmlldy5jcHAJMjAxMC0wNS0xMCAxMDowOTowMC4wMDAwMDAwMDAgKzA3MDAKQEAg
LTU2LDYgKzU2LDEwIEBACiAjaW5jbHVkZSAic3BlbGxjaGVjay9zcGVsbGNoZWNrZGlhbG9nLmgi
CiAjaW5jbHVkZSAic3BlbGxjaGVjay9zcGVsbGluZ21lbnUuaCIKIAorI2lmIFFUX1ZFUlNJT04g
Pj0gMHgwNDA0MDAKKyNpbmNsdWRlICJrYXRlbGF5b3V0Y2FjaGUuaCIKKyNlbmRpZgorCiAjaW5j
bHVkZSA8a3RleHRlZGl0b3IvY3Vyc29yZmVlZGJhY2suaD4KIAogI2luY2x1ZGUgPGtwYXJ0cy9l
dmVudC5oPgpAQCAtMTg1Nyw2ICsxODYxLDI5IEBACiAKIHZvaWQgS2F0ZVZpZXc6OnNlbGVjdFdv
cmQoIGNvbnN0IEtUZXh0RWRpdG9yOjpDdXJzb3ImIGN1cnNvciApCiB7CisjaWYgUVRfVkVSU0lP
TiA+PSAweDA0MDQwMAorICBpbnQgc3RhcnQsIGVuZDsKKyAgY29uc3QgUVN0cmluZyB3b3JkU2Vw
ID0gKCIuLD8hOjstPD5bXSgpe309L1x0Iik7CisgIFFDaGFyIGNoOworCisgIEthdGVMaW5lTGF5
b3V0UHRyIGN1ckxpbmUgPSBtX3ZpZXdJbnRlcm5hbC0+Y2FjaGUoKS0+bGluZSggY3Vyc29yLmxp
bmUoKSApOworCisgIHN0YXJ0ID0gY3Vyc29yLmNvbHVtbigpOworCisgIGNoID0gY3VyTGluZS0+
bGF5b3V0KCktPnRleHQoKVtzdGFydCAtIDFdOworICBzdGFydCAtPSB3b3JkU2VwLmNvbnRhaW5z
KGNoKSA/IDEgOiAwOworICBjaCA9IGN1ckxpbmUtPmxheW91dCgpLT50ZXh0KClbc3RhcnQgLSAx
XTsKKyAgc3RhcnQgKz0gKGNoID09IFFMYXRpbjFDaGFyKCcgJykpID8gMSA6IDA7CisKKyAgc3Rh
cnQgPSBjdXJMaW5lLT5sYXlvdXQoKS0+cHJldmlvdXNDdXJzb3JQb3NpdGlvbiggc3RhcnQsIFFU
ZXh0TGF5b3V0OjpTa2lwV29yZHMpOworICBlbmQgPSBjdXJMaW5lLT5sYXlvdXQoKS0+bmV4dEN1
cnNvclBvc2l0aW9uKCBzdGFydCwgUVRleHRMYXlvdXQ6OlNraXBXb3JkcyApOworCisgIGNoID0g
Y3VyTGluZS0+bGF5b3V0KCktPnRleHQoKVtlbmQgLSAxXTsKKyAgaWYgKCB3b3JkU2VwLmNvbnRh
aW5zKGNoKSB8fCBjaCA9PSBRTGF0aW4xQ2hhcignICcpICkKKyAgICAtLWVuZDsKKworI2Vsc2UK
KwogICBpbnQgc3RhcnQsIGVuZCwgbGVuOwogCiAgIEthdGVUZXh0TGluZTo6UHRyIHRleHRMaW5l
ID0gbV9kb2MtPnBsYWluS2F0ZVRleHRMaW5lKGN1cnNvci5saW5lKCkpOwpAQCAtMTg3MCw2ICsx
ODk3LDggQEAKICAgd2hpbGUgKGVuZCA8IGxlbiAmJiBtX2RvYy0+aGlnaGxpZ2h0KCktPmlzSW5X
b3JkKHRleHRMaW5lLT5hdChlbmQpLCB0ZXh0TGluZS0+YXR0cmlidXRlKHN0YXJ0IC0gMSkpKSBl
bmQrKzsKICAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuOwogCisjZW5kaWYKKwogICBzZXRTZWxl
Y3Rpb24gKEtUZXh0RWRpdG9yOjpSYW5nZShjdXJzb3IubGluZSgpLCBzdGFydCwgY3Vyc29yLmxp
bmUoKSwgZW5kKSk7CiB9CiAKZGlmZiAtdU5yIGtkZTRsaWJzLTQuNC4yL2thdGUvdmlldy9rYXRl
dmlld2ludGVybmFsLmNwcCBrZGU0bGlicy00LjQuMi1jb21waWxlZC9rYXRlL3ZpZXcva2F0ZXZp
ZXdpbnRlcm5hbC5jcHAKLS0tIGtkZTRsaWJzLTQuNC4yL2thdGUvdmlldy9rYXRldmlld2ludGVy
bmFsLmNwcAkyMDEwLTAyLTI3IDAxOjMwOjA2LjAwMDAwMDAwMCArMDcwMAorKysga2RlNGxpYnMt
NC40LjItY29tcGlsZWQva2F0ZS92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwCTIwMTAtMDUtMTAg
MTA6NTE6MjEuMDAwMDAwMDAwICswNzAwCkBAIC04NDYsNiArODQ2LDkgQEAKIAogdm9pZCBLYXRl
Vmlld0ludGVybmFsOjpkb0RlbGV0ZSgpCiB7CisJLy8gSWYgbm8gc2VsZWN0aW9uIHRoZW4gc2Vs
ZWN0IG9uZSBjZWxsIGZvciBkZWxldGUgY2VsbCBpbnN0ZWFkIG9mIGNoYXIKKwlpZiAoICFtX3Zp
ZXctPmNvbmZpZygpLT5wZXJzaXN0ZW50U2VsZWN0aW9uKCkgJiYgIW1fdmlldy0+c2VsZWN0aW9u
KCkgKQorCQljdXJzb3JSaWdodCggdHJ1ZSApOwogICBkb2MoKS0+ZGVsKCBtX3ZpZXcsIG1fY3Vy
c29yICk7CiB9CiAKQEAgLTEwOTUsNiArMTA5OCw3MyBAQAogICB2aXJ0dWFsIENhbGN1bGF0aW5n
Q3Vyc29yJiBvcGVyYXRvci09KCBpbnQgbiApIHsKICAgICByZXR1cm4gb3BlcmF0b3IrPSggLW4g
KTsKICAgfQorCisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQwMAorICB2aXJ0dWFsIENhbGN1bGF0
aW5nQ3Vyc29yJiBwcmV2aW91c1dvcmRQb3NpdGlvbiAoKSB7CisgICAgS2F0ZUxpbmVMYXlvdXRQ
dHIgdGhpc0xpbmUgPSBtX3ZpLT5jYWNoZSgpLT5saW5lKGxpbmUoKSk7CisgICAgaWYgKCF0aGlz
TGluZS0+aXNWYWxpZCgpKSB7CisgICAgICBrV2FybmluZygpIDw8ICJEaWQgbm90IHJldHJpZXZl
IGEgdmFsaWQgbGF5b3V0IGZvciBsaW5lICIgPDwgbGluZSgpOworICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKworICAgIGlmIChtX2NvbHVtbiA9PSAwKSB7CisgICAgICAvLyBIYXZlIGNvbWUg
dG8gdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudAorICAgICAgaWYgKGxpbmUoKSAhPSAwKSB7CisK
KyAgICAgICAgLy8gU3RhcnQgZ29pbmcgYmFjayB0byB0aGUgZW5kIG9mIHRoZSBsYXN0IGxpbmUK
KyAgICAgICAgc2V0TGluZShsaW5lKCkgLSAxKTsKKworICAgICAgICAvLyBSZXRyaWV2ZSB0aGUg
bmV4dCB0ZXh0IHJhbmdlCisgICAgICAgIHRoaXNMaW5lID0gbV92aS0+Y2FjaGUoKS0+bGluZShs
aW5lKCkpOworICAgICAgICBpZiAoIXRoaXNMaW5lLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICBr
V2FybmluZygpIDw8ICJEaWQgbm90IHJldHJpZXZlIGEgdmFsaWQgbGF5b3V0IGZvciBsaW5lICIg
PDwgbGluZSgpOworICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAg
IC8vIEZpbmlzaCBnb2luZyBiYWNrIHRvIHRoZSBlbmQgb2YgdGhlIGxhc3QgbGluZQorICAgICAg
ICBtX2NvbHVtbiA9IHRoaXNMaW5lLT5sZW5ndGgoKTsKKworICAgICAgfQorICAgIH0KKworICAg
IG1fY29sdW1uID0gdGhpc0xpbmUtPmxheW91dCgpLT5wcmV2aW91c0N1cnNvclBvc2l0aW9uKG1f
Y29sdW1uLCBRVGV4dExheW91dDo6U2tpcFdvcmRzKTsKKworICAgIFFfQVNTRVJUKHZhbGlkKCkp
OworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHZpcnR1YWwgQ2FsY3VsYXRpbmdDdXJzb3Im
IG5leHRXb3JkUG9zaXRpb24gKCkgeworICAgIEthdGVMaW5lTGF5b3V0UHRyIHRoaXNMaW5lID0g
bV92aS0+Y2FjaGUoKS0+bGluZShsaW5lKCkpOworICAgIGlmICghdGhpc0xpbmUtPmlzVmFsaWQo
KSkgeworICAgICAga1dhcm5pbmcoKSA8PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlkIGxheW91
dCBmb3IgbGluZSAiIDw8IGxpbmUoKTsKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAg
ICBpZiAobV9jb2x1bW4gPT0gdGhpc0xpbmUtPmxlbmd0aCgpKSB7CisgICAgICAvLyBIYXZlIGNv
bWUgdG8gdGhlIGVuZCBvZiBhIGxpbmUKKyAgICAgIGlmIChsaW5lKCkgPCBtX3ZpLT5kb2MoKS0+
bGluZXMoKSAtIDEpIHsKKyAgICAgICAgLy8gTm90IGVuZCBvZiB0aGUgZG9jdW1lbnQKKworICAg
ICAgICAvLyBBZHZhbmNlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZQorICAgICAg
ICBtX2NvbHVtbiA9IDA7CisgICAgICAgIHNldExpbmUobGluZSgpICsgMSk7CisKKyAgICAgICAg
Ly8gUmV0cmlldmUgdGhlIG5leHQgdGV4dCByYW5nZQorICAgICAgICB0aGlzTGluZSA9IG1fdmkt
PmNhY2hlKCktPmxpbmUobGluZSgpKTsKKyAgICAgICAgaWYgKCF0aGlzTGluZS0+aXNWYWxpZCgp
KSB7CisgICAgICAgICAga1dhcm5pbmcoKSA8PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlkIGxh
eW91dCBmb3IgbGluZSAiIDw8IGxpbmUoKTsKKyAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
ICAgIH0KKworICAgICAgfQorICAgIH0KKworICAgIG1fY29sdW1uID0gdGhpc0xpbmUtPmxheW91
dCgpLT5uZXh0Q3Vyc29yUG9zaXRpb24obV9jb2x1bW4sIFFUZXh0TGF5b3V0OjpTa2lwV29yZHMp
OworCisgICAgUV9BU1NFUlQodmFsaWQoKSk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisjZW5k
aWYKIH07CiAKIHZvaWQgS2F0ZVZpZXdJbnRlcm5hbDo6bW92ZUNoYXIoIEthdGVWaWV3SW50ZXJu
YWw6OkJpYXMgYmlhcywgYm9vbCBzZWwgKQpAQCAtMTEzNSw2ICsxMjA1LDEzIEBACiAgIC8vIGFu
ZCBza2lwIGFsbCBwcmVjZWRpbmcgY2hhcmFjdGVycyB0aGF0IGZhbGwgaW50byB0aGlzIGNsYXNz
LgogICAvLyBUaGUgY29kZSBhc3N1bWVzIHRoYXQgc3BhY2UgaXMgbmV2ZXIgcGFydCBvZiB0aGUg
d29yZCBjaGFyYWN0ZXIgY2xhc3MuCiAKKyNpZiBRVF9WRVJTSU9OID49IDB4MDQwNDAwCisKKyAg
Ly8gVXNpbmcgc2tpcFdvcmRzIG1vZGUgb2YgUVRleHRMYXlvdXQKKyAgYy5wcmV2aW91c1dvcmRQ
b3NpdGlvbiAoKTsKKworI2Vsc2UKKwogICBLYXRlSGlnaGxpZ2h0aW5nKiBoID0gZG9jKCktPmhp
Z2hsaWdodCgpOwogICBpZiggIWMuYXRFZGdlKCBsZWZ0ICkgKSB7CiAKQEAgLTExNjIsNiArMTIz
OSw4IEBACiAgICAgfQogICB9CiAKKyNlbmRpZgorCiAgIHVwZGF0ZVNlbGVjdGlvbiggYywgc2Vs
ICk7CiAgIHVwZGF0ZUN1cnNvciggYyApOwogfQpAQCAtMTE3OCw2ICsxMjU3LDEzIEBACiAgIC8v
IElmIHRoZSBza2lwcGVkIGNoYXJhY3RlcnMgYXJlIGZvbGxvd2VkIGJ5IHNwYWNlLCB3ZSBza2lw
IHRoYXQgdG9vLgogICAvLyBUaGUgY29kZSBhc3N1bWVzIHRoYXQgc3BhY2UgaXMgbmV2ZXIgcGFy
dCBvZiB0aGUgd29yZCBjaGFyYWN0ZXIgY2xhc3MuCiAKKyNpZiBRVF9WRVJTSU9OID49IDB4MDQw
NDAwCisKKyAgLy8gVXNpbmcgc2tpcFdvcmRzIG1vZGUgb2YgUVRleHRMYXlvdXQKKyAgYy5uZXh0
V29yZFBvc2l0aW9uICgpOworCisjZWxzZQorCiAgIEthdGVIaWdobGlnaHRpbmcqIGggPSBkb2Mo
KS0+aGlnaGxpZ2h0KCk7CiAgIGlmKCBjLmF0RWRnZSggcmlnaHQgKSApCiAgIHsKQEAgLTEyMDMs
NiArMTI4OSw4IEBACiAgIHdoaWxlKCAhYy5hdEVkZ2UoIHJpZ2h0ICkgJiYgZG9jKCktPmxpbmUo
IGMubGluZSgpIClbIGMuY29sdW1uKCkgXS5pc1NwYWNlKCkgKQogICAgICsrYzsKIAorI2VuZGlm
CisKICAgdXBkYXRlU2VsZWN0aW9uKCBjLCBzZWwgKTsKICAgdXBkYXRlQ3Vyc29yKCBjICk7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67527</attachid>
            <date>2012-01-07 03:28:45 +0000</date>
            <delta_ts>2012-01-07 03:28:45 +0000</delta_ts>
            <desc>Fixed Thai-related problems in Kate (Word break and cursor movement)</desc>
            <filename>kate-4.7.3-thai.patch</filename>
            <type>text/plain</type>
            <size>7690</size>
            <attacher name="Pattara Kiatisevi">ott</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5yIGthdGUtNC43LjMub3JpL3BhcnQvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNwcCBr
YXRlLTQuNy4zL3BhcnQvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNwcAotLS0ga2F0ZS00LjcuMy5v
cmkvcGFydC9kb2N1bWVudC9rYXRlZG9jdW1lbnQuY3BwCTIwMTEtMDgtMjIgMjA6MjQ6MTUuMDAw
MDAwMDAwICswNzAwCisrKyBrYXRlLTQuNy4zL3BhcnQvZG9jdW1lbnQva2F0ZWRvY3VtZW50LmNw
cAkyMDEyLTAxLTA0IDE3OjMwOjU3LjAwMDAwMDAwMCArMDcwMApAQCAtOTUwLDE1ICs5NTAsMTIg
QEAKICAgICAgIC8vIFRoaXMgY291bGQgYmUgYSBwcmlvcml0eSAoc2V0dGluZykgaW4gdGhlIGhs
L2ZpbGV0eXBlL2RvY3VtZW50CiAgICAgICBpbnQgeiA9IDA7CiAgICAgICBpbnQgbncgPSAwOyAv
LyBhbHRlcm5hdGl2ZSBwb3NpdGlvbiwgYSBub24gd29yZCBjaGFyYWN0ZXIKLSAgICAgIGZvciAo
ej1zZWFyY2hTdGFydDsgeiA+IDA7IHotLSkKLSAgICAgIHsKLSAgICAgICAgaWYgKHQuYXQoeiku
aXNTcGFjZSgpKSBicmVhazsKLSAgICAgICAgaWYgKCAhIG53ICYmIGhpZ2hsaWdodCgpLT5jYW5C
cmVha0F0KCB0LmF0KHopICwgbC0+YXR0cmlidXRlKHopICkgKQotICAgICAgICBudyA9IHo7Ci0g
ICAgICB9CisgICAgICBRVGV4dExheW91dCBjdXJsaW5lKCBsLT5zdHJpbmcoKSApOworICAgICAg
eiA9IG53ID0gY3VybGluZS5wcmV2aW91c0N1cnNvclBvc2l0aW9uKCBzZWFyY2hTdGFydCwgUVRl
eHRMYXlvdXQ6OlNraXBXb3JkcyApOworCiAKICAgICAgIGJvb2wgcmVtb3ZlVHJhaWxpbmdTcGFj
ZSA9IGZhbHNlOwotICAgICAgaWYgKHogPiAwKQorICAgICAgaWYgKHogPT0gMCkKICAgICAgIHsK
ICAgICAgICAgLy8gU28gd2h5IGRvbid0IHdlIGp1c3QgcmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFj
ZSByaWdodCBhd2F5PwogICAgICAgICAvLyBXZWxsLCB0aGUgKHZpZXcncykgY3Vyc29yIG1heSBi
ZSBkaXJlY3RseSBpbiBmcm9udCBvZiB0aGF0IHNwYWNlCmRpZmYgLXVOciBrYXRlLTQuNy4zLm9y
aS9wYXJ0L3ZpZXcva2F0ZXZpZXcuY3BwIGthdGUtNC43LjMvcGFydC92aWV3L2thdGV2aWV3LmNw
cAotLS0ga2F0ZS00LjcuMy5vcmkvcGFydC92aWV3L2thdGV2aWV3LmNwcAkyMDExLTA4LTIyIDIw
OjI0OjE1LjAwMDAwMDAwMCArMDcwMAorKysga2F0ZS00LjcuMy9wYXJ0L3ZpZXcva2F0ZXZpZXcu
Y3BwCTIwMTItMDEtMDQgMTc6MzA6NTcuMDAwMDAwMDAwICswNzAwCkBAIC0xOTA5LDE4ICsxOTA5
LDI1IEBACiAKIHZvaWQgS2F0ZVZpZXc6OnNlbGVjdFdvcmQoIGNvbnN0IEtUZXh0RWRpdG9yOjpD
dXJzb3ImIGN1cnNvciApCiB7Ci0gIGludCBzdGFydCwgZW5kLCBsZW47CisgIGludCBzdGFydCwg
ZW5kOworICBjb25zdCBRU3RyaW5nIHdvcmRTZXAgPSAoIi4sPyE6Oy08PltdKCl7fT0vXHQiKTsK
KyAgUUNoYXIgY2g7CiAKLSAgS2F0ZTo6VGV4dExpbmUgdGV4dExpbmUgPSBtX2RvYy0+cGxhaW5L
YXRlVGV4dExpbmUoY3Vyc29yLmxpbmUoKSk7CisgIEthdGVMaW5lTGF5b3V0UHRyIGN1ckxpbmUg
PSBtX3ZpZXdJbnRlcm5hbC0+Y2FjaGUoKS0+bGluZSggY3Vyc29yLmxpbmUoKSApOwogCi0gIGlm
ICghdGV4dExpbmUpCi0gICAgcmV0dXJuOworICBzdGFydCA9IGN1cnNvci5jb2x1bW4oKTsKIAot
ICBsZW4gPSB0ZXh0TGluZS0+bGVuZ3RoKCk7Ci0gIHN0YXJ0ID0gZW5kID0gY3Vyc29yLmNvbHVt
bigpOwotICB3aGlsZSAoc3RhcnQgPiAwICYmIG1fZG9jLT5oaWdobGlnaHQoKS0+aXNJbldvcmQo
dGV4dExpbmUtPmF0KHN0YXJ0IC0gMSksIHRleHRMaW5lLT5hdHRyaWJ1dGUoc3RhcnQgLSAxKSkp
IHN0YXJ0LS07Ci0gIHdoaWxlIChlbmQgPCBsZW4gJiYgbV9kb2MtPmhpZ2hsaWdodCgpLT5pc0lu
V29yZCh0ZXh0TGluZS0+YXQoZW5kKSwgdGV4dExpbmUtPmF0dHJpYnV0ZShzdGFydCAtIDEpKSkg
ZW5kKys7Ci0gIGlmIChlbmQgPD0gc3RhcnQpIHJldHVybjsKKyAgY2ggPSBjdXJMaW5lLT5sYXlv
dXQoKS0+dGV4dCgpW3N0YXJ0IC0gMV07CisgIHN0YXJ0IC09IHdvcmRTZXAuY29udGFpbnMoY2gp
ID8gMSA6IDA7CisgIGNoID0gY3VyTGluZS0+bGF5b3V0KCktPnRleHQoKVtzdGFydCAtIDFdOwor
ICBzdGFydCArPSAoY2ggPT0gUUxhdGluMUNoYXIoJyAnKSkgPyAxIDogMDsKKworICBzdGFydCA9
IGN1ckxpbmUtPmxheW91dCgpLT5wcmV2aW91c0N1cnNvclBvc2l0aW9uKCBzdGFydCwgUVRleHRM
YXlvdXQ6OlNraXBXb3Jkcyk7CisgIGVuZCA9IGN1ckxpbmUtPmxheW91dCgpLT5uZXh0Q3Vyc29y
UG9zaXRpb24oIHN0YXJ0LCBRVGV4dExheW91dDo6U2tpcFdvcmRzICk7CisKKyAgY2ggPSBjdXJM
aW5lLT5sYXlvdXQoKS0+dGV4dCgpW2VuZCAtIDFdOworICBpZiAoIHdvcmRTZXAuY29udGFpbnMo
Y2gpIHx8IGNoID09IFFMYXRpbjFDaGFyKCcgJykgKQorICAgIC0tZW5kOwogCiAgIHNldFNlbGVj
dGlvbiAoS1RleHRFZGl0b3I6OlJhbmdlKGN1cnNvci5saW5lKCksIHN0YXJ0LCBjdXJzb3IubGlu
ZSgpLCBlbmQpKTsKIH0KZGlmZiAtdU5yIGthdGUtNC43LjMub3JpL3BhcnQvdmlldy9rYXRldmll
d2ludGVybmFsLmNwcCBrYXRlLTQuNy4zL3BhcnQvdmlldy9rYXRldmlld2ludGVybmFsLmNwcAot
LS0ga2F0ZS00LjcuMy5vcmkvcGFydC92aWV3L2thdGV2aWV3aW50ZXJuYWwuY3BwCTIwMTEtMTAt
MDIgMTk6NDk6MDcuMDAwMDAwMDAwICswNzAwCisrKyBrYXRlLTQuNy4zL3BhcnQvdmlldy9rYXRl
dmlld2ludGVybmFsLmNwcAkyMDEyLTAxLTA0IDE3OjMwOjU3LjAwMDAwMDAwMCArMDcwMApAQCAt
NzkwLDYgKzc5MCw5IEBACiAKIHZvaWQgS2F0ZVZpZXdJbnRlcm5hbDo6ZG9EZWxldGUoKQogewor
ICAvLyBJZiBubyBzZWxlY3Rpb24gdGhlbiBzZWxlY3Qgb25lIGNlbGwgZm9yIGRlbGV0ZSBjZWxs
IGluc3RlYWQgb2YgY2hhcgorCWlmICggIW1fdmlldy0+Y29uZmlnKCktPnBlcnNpc3RlbnRTZWxl
Y3Rpb24oKSAmJiAhbV92aWV3LT5zZWxlY3Rpb24oKSApCisJCWN1cnNvclJpZ2h0KCB0cnVlICk7
CiAgIGRvYygpLT5kZWwoIG1fdmlldywgbV9jdXJzb3IgKTsKIH0KIApAQCAtOTY0LDYgKzk2Nyw3
MCBAQAogICB2aXJ0dWFsIENhbGN1bGF0aW5nQ3Vyc29yJiBvcGVyYXRvci09KCBpbnQgbiApIHsK
ICAgICByZXR1cm4gb3BlcmF0b3IrPSggLW4gKTsKICAgfQorICB2aXJ0dWFsIENhbGN1bGF0aW5n
Q3Vyc29yJiBwcmV2aW91c1dvcmRQb3NpdGlvbiAoKSB7CisgICAgS2F0ZUxpbmVMYXlvdXRQdHIg
dGhpc0xpbmUgPSBtX3ZpLT5jYWNoZSgpLT5saW5lKGxpbmUoKSk7CisgICAgaWYgKCF0aGlzTGlu
ZS0+aXNWYWxpZCgpKSB7CisgICAgICBrV2FybmluZygpIDw8ICJEaWQgbm90IHJldHJpZXZlIGEg
dmFsaWQgbGF5b3V0IGZvciBsaW5lICIgPDwgbGluZSgpOworICAgICAgcmV0dXJuICp0aGlzOwor
ICAgIH0KKworICAgIGlmIChtX2NvbHVtbiA9PSAwKSB7CisgICAgICAvLyBIYXZlIGNvbWUgdG8g
dGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudAorICAgICAgaWYgKGxpbmUoKSAhPSAwKSB7CisKKyAg
ICAgICAgLy8gU3RhcnQgZ29pbmcgYmFjayB0byB0aGUgZW5kIG9mIHRoZSBsYXN0IGxpbmUKKyAg
ICAgICAgc2V0TGluZShsaW5lKCkgLSAxKTsKKworICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgbmV4
dCB0ZXh0IHJhbmdlCisgICAgICAgIHRoaXNMaW5lID0gbV92aS0+Y2FjaGUoKS0+bGluZShsaW5l
KCkpOworICAgICAgICBpZiAoIXRoaXNMaW5lLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICBrV2Fy
bmluZygpIDw8ICJEaWQgbm90IHJldHJpZXZlIGEgdmFsaWQgbGF5b3V0IGZvciBsaW5lICIgPDwg
bGluZSgpOworICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IEZpbmlzaCBnb2luZyBiYWNrIHRvIHRoZSBlbmQgb2YgdGhlIGxhc3QgbGluZQorICAgICAgICBt
X2NvbHVtbiA9IHRoaXNMaW5lLT5sZW5ndGgoKTsKKworICAgICAgfQorICAgIH0KKworICAgIG1f
Y29sdW1uID0gdGhpc0xpbmUtPmxheW91dCgpLT5wcmV2aW91c0N1cnNvclBvc2l0aW9uKG1fY29s
dW1uLCBRVGV4dExheW91dDo6U2tpcFdvcmRzKTsKKworICAgIFFfQVNTRVJUKHZhbGlkKCkpOwor
ICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHZpcnR1YWwgQ2FsY3VsYXRpbmdDdXJzb3ImIG5l
eHRXb3JkUG9zaXRpb24gKCkgeworICAgIEthdGVMaW5lTGF5b3V0UHRyIHRoaXNMaW5lID0gbV92
aS0+Y2FjaGUoKS0+bGluZShsaW5lKCkpOworICAgIGlmICghdGhpc0xpbmUtPmlzVmFsaWQoKSkg
eworICAgICAga1dhcm5pbmcoKSA8PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlkIGxheW91dCBm
b3IgbGluZSAiIDw8IGxpbmUoKTsKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBp
ZiAobV9jb2x1bW4gPT0gdGhpc0xpbmUtPmxlbmd0aCgpKSB7CisgICAgICAvLyBIYXZlIGNvbWUg
dG8gdGhlIGVuZCBvZiBhIGxpbmUKKyAgICAgIGlmIChsaW5lKCkgPCBtX3ZpLT5kb2MoKS0+bGlu
ZXMoKSAtIDEpIHsKKyAgICAgICAgLy8gTm90IGVuZCBvZiB0aGUgZG9jdW1lbnQKKworICAgICAg
ICAvLyBBZHZhbmNlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZQorICAgICAgICBt
X2NvbHVtbiA9IDA7CisgICAgICAgIHNldExpbmUobGluZSgpICsgMSk7CisKKyAgICAgICAgLy8g
UmV0cmlldmUgdGhlIG5leHQgdGV4dCByYW5nZQorICAgICAgICB0aGlzTGluZSA9IG1fdmktPmNh
Y2hlKCktPmxpbmUobGluZSgpKTsKKyAgICAgICAgaWYgKCF0aGlzTGluZS0+aXNWYWxpZCgpKSB7
CisgICAgICAgICAga1dhcm5pbmcoKSA8PCAiRGlkIG5vdCByZXRyaWV2ZSBhIHZhbGlkIGxheW91
dCBmb3IgbGluZSAiIDw8IGxpbmUoKTsKKyAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAg
IH0KKworICAgICAgfQorICAgIH0KKworICAgIG1fY29sdW1uID0gdGhpc0xpbmUtPmxheW91dCgp
LT5uZXh0Q3Vyc29yUG9zaXRpb24obV9jb2x1bW4sIFFUZXh0TGF5b3V0OjpTa2lwV29yZHMpOwor
CisgICAgUV9BU1NFUlQodmFsaWQoKSk7CisgICAgcmV0dXJuICp0aGlzOworICB9CiB9OwogCiBj
bGFzcyBXcmFwcGluZ0N1cnNvciA6IHB1YmxpYyBDYWxjdWxhdGluZ0N1cnNvciB7CkBAIC0xMDcw
LDcgKzExMzcsNyBAQAogCiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OndvcmRMZWZ0ICggYm9vbCBz
ZWwgKQogewotICBXcmFwcGluZ0N1cnNvciBjKCB0aGlzLCBtX2N1cnNvciApOworICBCb3VuZGVk
Q3Vyc29yIGMoIHRoaXMsIG1fY3Vyc29yICk7CiAKICAgLy8gRmlyc3Qgd2Ugc2tpcCBiYWNrd2Fy
ZHMgYWxsIHNwYWNlLgogICAvLyBUaGVuIHdlIGxvb2sgdXAgaW50byB3aGljaCBjYXRlZ29yeSB0
aGUgY3VycmVudCBwb3NpdGlvbiBmYWxsczoKQEAgLTEwODAsMzIgKzExNDcsOCBAQAogICAvLyBh
bmQgc2tpcCBhbGwgcHJlY2VkaW5nIGNoYXJhY3RlcnMgdGhhdCBmYWxsIGludG8gdGhpcyBjbGFz
cy4KICAgLy8gVGhlIGNvZGUgYXNzdW1lcyB0aGF0IHNwYWNlIGlzIG5ldmVyIHBhcnQgb2YgdGhl
IHdvcmQgY2hhcmFjdGVyIGNsYXNzLgogCi0gIEthdGVIaWdobGlnaHRpbmcqIGggPSBkb2MoKS0+
aGlnaGxpZ2h0KCk7Ci0gIGlmKCAhYy5hdEVkZ2UoIGxlZnQgKSApIHsKLQotICAgIHdoaWxlKCAh
Yy5hdEVkZ2UoIGxlZnQgKSAmJiBkb2MoKS0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSAt
IDEgXS5pc1NwYWNlKCkgKQotICAgICAgLS1jOwotICB9Ci0gIGlmKCBjLmF0RWRnZSggbGVmdCAp
ICkKLSAgewotICAgIC0tYzsKLSAgfQotICBlbHNlIGlmKCBoLT5pc0luV29yZCggZG9jKCktPmxp
bmUoIGMubGluZSgpIClbIGMuY29sdW1uKCkgLSAxIF0gKSApCi0gIHsKLSAgICB3aGlsZSggIWMu
YXRFZGdlKCBsZWZ0ICkgJiYgaC0+aXNJbldvcmQoIGRvYygpLT5saW5lKCBjLmxpbmUoKSApWyBj
LmNvbHVtbigpIC0gMSBdICkgKQotICAgICAgLS1jOwotICB9Ci0gIGVsc2UKLSAgewotICAgIHdo
aWxlKCAhYy5hdEVkZ2UoIGxlZnQgKQotICAgICAgICAgICAmJiAhaC0+aXNJbldvcmQoIGRvYygp
LT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIC0gMSBdICkKLSAgICAgICAgICAgLy8gaW4g
b3JkZXIgdG8gc3RheSBzeW1tZXRyaWMgdG8gd29yZExlZnQoKQotICAgICAgICAgICAvLyB3ZSBt
dXN0IG5vdCBza2lwIHNwYWNlIHByZWNlZGluZyBhIG5vbi13b3JkIHNlcXVlbmNlCi0gICAgICAg
ICAgICYmICFkb2MoKS0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSAtIDEgXS5pc1NwYWNl
KCkgKQotICAgIHsKLSAgICAgIC0tYzsKLSAgICB9Ci0gIH0KKyAgLy8gVXNpbmcgc2tpcFdvcmRz
IG1vZGUgb2YgUVRleHRMYXlvdXQKKyAgYy5wcmV2aW91c1dvcmRQb3NpdGlvbiAoKTs7CiAKICAg
dXBkYXRlU2VsZWN0aW9uKCBjLCBzZWwgKTsKICAgdXBkYXRlQ3Vyc29yKCBjICk7CkBAIC0xMTEz
LDcgKzExNTYsNyBAQAogCiB2b2lkIEthdGVWaWV3SW50ZXJuYWw6OndvcmRSaWdodCggYm9vbCBz
ZWwgKQogewotICBXcmFwcGluZ0N1cnNvciBjKCB0aGlzLCBtX2N1cnNvciApOworICBCb3VuZGVk
Q3Vyc29yIGMoIHRoaXMsIG1fY3Vyc29yICk7CiAKICAgLy8gV2UgbG9vayB1cCBpbnRvIHdoaWNo
IGNhdGVnb3J5IHRoZSBjdXJyZW50IHBvc2l0aW9uIGZhbGxzOgogICAvLyAxLiBhICJ3b3JkIiBj
aGFyYWN0ZXIKQEAgLTExMjMsMzAgKzExNjYsOCBAQAogICAvLyBJZiB0aGUgc2tpcHBlZCBjaGFy
YWN0ZXJzIGFyZSBmb2xsb3dlZCBieSBzcGFjZSwgd2Ugc2tpcCB0aGF0IHRvby4KICAgLy8gVGhl
IGNvZGUgYXNzdW1lcyB0aGF0IHNwYWNlIGlzIG5ldmVyIHBhcnQgb2YgdGhlIHdvcmQgY2hhcmFj
dGVyIGNsYXNzLgogCi0gIEthdGVIaWdobGlnaHRpbmcqIGggPSBkb2MoKS0+aGlnaGxpZ2h0KCk7
Ci0gIGlmKCBjLmF0RWRnZSggcmlnaHQgKSApCi0gIHsKLSAgICArK2M7Ci0gIH0KLSAgZWxzZSBp
ZiggaC0+aXNJbldvcmQoIGRvYygpLT5saW5lKCBjLmxpbmUoKSApWyBjLmNvbHVtbigpIF0gKSAp
Ci0gIHsKLSAgICB3aGlsZSggIWMuYXRFZGdlKCByaWdodCApICYmIGgtPmlzSW5Xb3JkKCBkb2Mo
KS0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSBdICkgKQotICAgICAgKytjOwotICB9Ci0g
IGVsc2UKLSAgewotICAgIHdoaWxlKCAhYy5hdEVkZ2UoIHJpZ2h0ICkKLSAgICAgICAgICAgJiYg
IWgtPmlzSW5Xb3JkKCBkb2MoKS0+bGluZSggYy5saW5lKCkgKVsgYy5jb2x1bW4oKSBdICkKLSAg
ICAgICAgICAgLy8gd2UgbXVzdCBub3Qgc2tpcCBzcGFjZSwgYmVjYXVzZSBpZiB0aGF0IHNwYWNl
IGlzIGZvbGxvd2VkCi0gICAgICAgICAgIC8vIGJ5IG1vcmUgbm9uLXdvcmQgY2hhcmFjdGVycywg
d2Ugd291bGQgc2tpcCB0aGVtLCB0b28KLSAgICAgICAgICAgJiYgIWRvYygpLT5saW5lKCBjLmxp
bmUoKSApWyBjLmNvbHVtbigpIF0uaXNTcGFjZSgpICkKLSAgICB7Ci0gICAgICArK2M7Ci0gICAg
fQotICB9Ci0KLSAgd2hpbGUoICFjLmF0RWRnZSggcmlnaHQgKSAmJiBkb2MoKS0+bGluZSggYy5s
aW5lKCkgKVsgYy5jb2x1bW4oKSBdLmlzU3BhY2UoKSApCi0gICAgKytjOworICAvLyBVc2luZyBz
a2lwV29yZHMgbW9kZSBvZiBRVGV4dExheW91dAorICBjLm5leHRXb3JkUG9zaXRpb24gKCk7CiAK
ICAgdXBkYXRlU2VsZWN0aW9uKCBjLCBzZWwgKTsKICAgdXBkYXRlQ3Vyc29yKCBjICk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>