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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>57938</bug_id>
          
          <creation_ts>2011-04-06 03:23:19 -0700</creation_ts>
          <short_desc>Add member functions for determining line/paragraph separation to InlineIterator</short_desc>
          <delta_ts>2011-04-06 05:13:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>380250</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 03:23:19 -0700</bug_when>
    <thetext>These checks are currently done by calling into public member variables of InlineIterator, and should be cleaned up.

Also adding &quot;preservesNewline&quot; to RenderObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380255</commentid>
    <comment_count>1</comment_count>
      <attachid>88392</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 04:16:37 -0700</bug_when>
    <thetext>Created attachment 88392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380259</commentid>
    <comment_count>2</comment_count>
      <attachid>88392</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-06 04:39:12 -0700</bug_when>
    <thetext>Comment on attachment 88392
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=88392&amp;action=review

&gt; Source/WebCore/rendering/InlineIterator.h:71
&gt; +    inline bool isHardTextLinebreak()

Since this is a member function of an iterator, would atHardTextLinebreak makes more sense?  But what does hard text line break really mean?  Is this terminology used elsewhere?  Maybe atPreservedLineBreak makes more sense?

&gt; Source/WebCore/rendering/InlineIterator.h:77
&gt; +    inline bool isParagraphSeparator()

Ditto: s/is/at/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380263</commentid>
    <comment_count>3</comment_count>
      <attachid>88392</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 04:46:39 -0700</bug_when>
    <thetext>Comment on attachment 88392
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=88392&amp;action=review

&gt;&gt; Source/WebCore/rendering/InlineIterator.h:71
&gt;&gt; +    inline bool isHardTextLinebreak()
&gt; 
&gt; Since this is a member function of an iterator, would atHardTextLinebreak makes more sense?  But what does hard text line break really mean?  Is this terminology used elsewhere?  Maybe atPreservedLineBreak makes more sense?

At sounds fine. HardLineBreak is the terminology used in BidiResolver (see: createBidiRunsForLine). Though we don&apos;t yet support it, when we add support for Unicode Paragraph Separators (https://bugs.webkit.org/show_bug.cgi?id=53203), this won&apos;t just be applicable to preserved newline characters.

How about atTextParagraphSeparator, as this is how it will be treated when running Unicode BiDi algorithm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380268</commentid>
    <comment_count>4</comment_count>
      <attachid>88396</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 04:56:36 -0700</bug_when>
    <thetext>Created attachment 88396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380274</commentid>
    <comment_count>5</comment_count>
      <attachid>88396</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 05:13:05 -0700</bug_when>
    <thetext>Comment on attachment 88396
Patch

Clearing flags on attachment: 88396

Committed r83038: &lt;http://trac.webkit.org/changeset/83038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380275</commentid>
    <comment_count>6</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-06 05:13:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88392</attachid>
            <date>2011-04-06 04:16:37 -0700</date>
            <delta_ts>2011-04-06 04:56:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57938-20110406141634.patch</filename>
            <type>text/plain</type>
            <size>5934</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzMDM3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMDYgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtZW1iZXIgZnVuY3Rpb25zIGZvciBkZXRlcm1pbmlu
ZyBsaW5lL3BhcmFncmFwaCBzZXBhcmF0aW9uIHRvIElubGluZUl0ZXJhdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkzOAorCisgICAgICAgIEFk
ZGluZyBpc0hhcmRUZXh0TGluZUJyZWFrIGFuZCBpc1BhcmFncmFwaFNlcGFyYXRvciBpbmxpbmUg
Y29udmVuaWVuY2UgZnVuY3Rpb25zIHRvCisgICAgICAgIElubGluZUl0ZXJhdG9yLCB3aGVyZSBp
dCBtYWtlcyBmYXIgbW9yZSBzZW5zZSBmb3IgdGhlbSB0byBiZS4gQWxzbyBtb3ZpbmcKKyAgICAg
ICAgc2hvdWxkUHJlc2VydmVOZXdsaW5lIHRvIFJlbmRlck9iamVjdCBhbmQgcmVuYW1pbmcgaXQg
cHJlc2VydmVzTmV3bGluZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhpcyBwcm92aWRl
cyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVJdGVy
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OmlzSGFyZFRleHRMaW5l
YnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OmlzUGFyYWdyYXBoU2Vw
YXJhdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXF1aXJlc0xpbmVCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OnByZXNlcnZlc05ld2xpbmUpOgorCiAyMDExLTA0LTA1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCShyZXZpc2lv
biA4Mjk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbmNyZW1l
bnQoSW5saW5lQmlkaVJlc29sdmVyKiA9IDApOwogICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKIAor
ICAgIGlubGluZSBib29sIGlzSGFyZFRleHRMaW5lYnJlYWsoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fb2JqICYmIG1fb2JqLT5wcmVzZXJ2ZXNOZXdsaW5lKCkgJiYgbV9vYmotPmlzVGV4dCgp
ICYmIHRvUmVuZGVyVGV4dChtX29iaiktPnRleHRMZW5ndGgoKQorICAgICAgICAgICAgJiYgIXRv
UmVuZGVyVGV4dChtX29iaiktPmlzV29yZEJyZWFrKCkgJiYgdG9SZW5kZXJUZXh0KG1fb2JqKS0+
Y2hhcmFjdGVycygpW21fcG9zXSA9PSAnXG4nOworICAgIH0KKyAgICAKKyAgICBpbmxpbmUgYm9v
bCBpc1BhcmFncmFwaFNlcGFyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb2JqICYm
IG1fb2JqLT5pc0JSKCkpIHx8IGlzSGFyZFRleHRMaW5lYnJlYWsoKTsKKyAgICB9CisKICAgICBV
Q2hhciBjdXJyZW50KCkgY29uc3Q7CiAgICAgQUxXQVlTX0lOTElORSBXVEY6OlVuaWNvZGU6OkRp
cmVjdGlvbiBkaXJlY3Rpb24oKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDgyOTQ0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzODgsMTYgKzEzODgsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hv
dWxkQ29sbGFwc2VXaGl0ZVNwCiAgICAgcmV0dXJuIHN0eWxlLT5jb2xsYXBzZVdoaXRlU3BhY2Uo
KSB8fCAoc3R5bGUtPndoaXRlU3BhY2UoKSA9PSBQUkVfV1JBUCAmJiAoIWlzTGluZUVtcHR5IHx8
ICFwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNo
b3VsZFByZXNlcnZlTmV3bGluZShSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSNpZiBFTkFCTEUo
U1ZHKQotICAgIGlmIChvYmplY3QtPmlzU1ZHSW5saW5lVGV4dCgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiBvYmplY3QtPnN0eWxlKCktPnByZXNlcnZlTmV3
bGluZSgpOwotfQotCiBzdGF0aWMgYm9vbCBpbmxpbmVGbG93UmVxdWlyZXNMaW5lQm94KFJlbmRl
cklubGluZSogZmxvdykKIHsKICAgICAvLyBGSVhNRTogUmlnaHQgbm93LCB3ZSBvbmx5IGFsbG93
IGxpbmUgYm94ZXMgZm9yIGlubGluZXMgdGhhdCBhcmUgdHJ1bHkgZW1wdHkuCkBAIC0xNDE4LDcg
KzE0MDgsNyBAQCBib29sIFJlbmRlckJsb2NrOjpyZXF1aXJlc0xpbmVCb3goY29uc3QgCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgVUNoYXIgY3VycmVudCA9IGl0LmN1cnJlbnQoKTsKLSAg
ICByZXR1cm4gY3VycmVudCAhPSAnICcgJiYgY3VycmVudCAhPSAnXHQnICYmIGN1cnJlbnQgIT0g
c29mdEh5cGhlbiAmJiAoY3VycmVudCAhPSAnXG4nIHx8IHNob3VsZFByZXNlcnZlTmV3bGluZShp
dC5tX29iaikpIAorICAgIHJldHVybiBjdXJyZW50ICE9ICcgJyAmJiBjdXJyZW50ICE9ICdcdCcg
JiYgY3VycmVudCAhPSBzb2Z0SHlwaGVuICYmIChjdXJyZW50ICE9ICdcbicgfHwgaXQubV9vYmot
PnByZXNlcnZlc05ld2xpbmUoKSkgCiAgICAgICAgICAgICAmJiAhc2tpcE5vbkJyZWFraW5nU3Bh
Y2UoaXQsIGlzTGluZUVtcHR5LCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpOwogfQogCkBAIC0x
OTI2LDcgKzE5MTYsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5l
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoeXBoZW5hdGVkKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsQnJlYWsubV9v
YmogJiYgc2hvdWxkUHJlc2VydmVOZXdsaW5lKGxCcmVhay5tX29iaikgJiYgbEJyZWFrLm1fb2Jq
LT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm1fb2JqKS0+dGV4dExlbmd0aCgpICYm
ICF0b1JlbmRlclRleHQobEJyZWFrLm1fb2JqKS0+aXNXb3JkQnJlYWsoKSAmJiB0b1JlbmRlclRl
eHQobEJyZWFrLm1fb2JqKS0+Y2hhcmFjdGVycygpW2xCcmVhay5tX3Bvc10gPT0gJ1xuJykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsQnJlYWsuaXNIYXJkVGV4dExpbmVicmVh
aygpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RvcHBlZElnbm9y
aW5nU3BhY2VzICYmIHBvcyA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFdlIG5lZWQgdG8gc3RvcCByaWdodCBiZWZvcmUgdGhlIG5ld2xpbmUgYW5kIHRoZW4g
c3RhcnQgdXAgYWdhaW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRN
aWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5lSXRlcmF0b3IoMCwgbywgcG9zIC0gMSkp
OyAvLyBTdG9wCkBAIC0yMDU3LDcgKzIwNDcsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lCiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQqIG5leHRUZXh0
ID0gdG9SZW5kZXJUZXh0KG5leHQpOwogICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFRleHQt
PnRleHRMZW5ndGgoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgYyA9IG5leHRU
ZXh0LT5jaGFyYWN0ZXJzKClbMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAn
ICcgfHwgYyA9PSAnXHQnIHx8IChjID09ICdcbicgJiYgIXNob3VsZFByZXNlcnZlTmV3bGluZShu
ZXh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQn
IHx8IChjID09ICdcbicgJiYgIW5leHQtPnByZXNlcnZlc05ld2xpbmUoKSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5leHQgaXRlbSBvbiB0aGUgbGluZSBpcyB0ZXh0
LCBhbmQgaWYgd2UgZGlkIG5vdCBlbmQgd2l0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIGEgc3BhY2UsIHRoZW4gdGhlIG5leHQgdGV4dCBydW4gY29udGludWVzIG91ciB3b3JkIChh
bmQgc28gaXQgbmVlZHMgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGFk
ZGluZyB0byB8dG1wV3wuICBKdXN0IHVwZGF0ZSBhbmQgY29udGludWUuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA4Mjk0NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDMz
LDYgKzQzMyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzVHJhbnNmb3JtOyB9CiAgICAgYm9vbCBoYXNNYXNrKCkgY29uc3QgeyByZXR1cm4g
c3R5bGUoKSAmJiBzdHlsZSgpLT5oYXNNYXNrKCk7IH0KIAorICAgIGlubGluZSBib29sIHByZXNl
cnZlc05ld2xpbmUoKSBjb25zdDsKICAgICB2b2lkIGRyYXdMaW5lRm9yQm94U2lkZShHcmFwaGlj
c0NvbnRleHQqLCBpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIsIEJveFNpZGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IsIEVCb3JkZXJTdHlsZSwgaW50IGFkamJ3MSwg
aW50IGFkamJ3Mik7CiAjaWYgSEFWRShQQVRIX0JBU0VEX0JPUkRFUl9SQURJVVNfRFJBV0lORykK
QEAgLTEwMzcsNiArMTAzOCwxNiBAQCBpbmxpbmUgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcmtDb250
YWluaW5nCiAgICAgICAgIGxhc3QtPnNjaGVkdWxlUmVsYXlvdXQoKTsKIH0KIAoraW5saW5lIGJv
b2wgUmVuZGVyT2JqZWN0OjpwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
U1ZHKQorICAgIGlmIChpc1NWR0lubGluZVRleHQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCisgICAgICAgIAorICAgIHJldHVybiBzdHlsZSgpLT5wcmVzZXJ2ZU5ld2xpbmUoKTsK
K30KKwogaW5saW5lIHZvaWQgbWFrZU1hdHJpeFJlbmRlcmFibGUoVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCwgYm9vbCBoYXMzRFJlbmRlcmluZykKIHsKICNpZiAhRU5BQkxFKDNEX1JFTkRF
UklORykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88396</attachid>
            <date>2011-04-06 04:56:36 -0700</date>
            <delta_ts>2011-04-06 05:13:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57938-20110406145633.patch</filename>
            <type>text/plain</type>
            <size>5959</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzMDM3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMDYgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtZW1iZXIgZnVuY3Rpb25zIGZvciBkZXRlcm1pbmlu
ZyBsaW5lL3BhcmFncmFwaCBzZXBhcmF0aW9uIHRvIElubGluZUl0ZXJhdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkzOAorCisgICAgICAgIEFk
ZGluZyBhdFRleHRQYXJhZ3JhcGhTZXBhcmF0b3IgYW5kIGF0UGFyYWdyYXBoU2VwYXJhdG9yIGlu
bGluZSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8KKyAgICAgICAgSW5saW5lSXRlcmF0b3IsIHdo
ZXJlIGl0IG1ha2VzIGZhciBtb3JlIHNlbnNlIGZvciB0aGVtIHRvIGJlLiBBbHNvIG1vdmluZwor
ICAgICAgICBzaG91bGRQcmVzZXJ2ZU5ld2xpbmUgdG8gUmVuZGVyT2JqZWN0IGFuZCByZW5hbWlu
ZyBpdCBwcmVzZXJ2ZXNOZXdsaW5lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIHBy
b3ZpZGVzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZUl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6YXRUZXh0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjphdFBh
cmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVxdWlyZXNMaW5lQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0OjpwcmVzZXJ2ZXNOZXdsaW5lKToKKwogMjAxMS0wNC0wNSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVs
IEZlbGRtYW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRlcmF0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRlcmF0b3Iu
aAkocmV2aXNpb24gODMwMzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRl
cmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsMTcgQEAgcHVibGljOgogICAgIHZv
aWQgaW5jcmVtZW50KElubGluZUJpZGlSZXNvbHZlciogPSAwKTsKICAgICBib29sIGF0RW5kKCkg
Y29uc3Q7CiAKKyAgICBpbmxpbmUgYm9vbCBhdFRleHRQYXJhZ3JhcGhTZXBhcmF0b3IoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fb2JqICYmIG1fb2JqLT5wcmVzZXJ2ZXNOZXdsaW5lKCkgJiYg
bV9vYmotPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChtX29iaiktPnRleHRMZW5ndGgoKQorICAg
ICAgICAgICAgJiYgIXRvUmVuZGVyVGV4dChtX29iaiktPmlzV29yZEJyZWFrKCkgJiYgdG9SZW5k
ZXJUZXh0KG1fb2JqKS0+Y2hhcmFjdGVycygpW21fcG9zXSA9PSAnXG4nOworICAgIH0KKyAgICAK
KyAgICBpbmxpbmUgYm9vbCBhdFBhcmFncmFwaFNlcGFyYXRvcigpCisgICAgeworICAgICAgICBy
ZXR1cm4gKG1fb2JqICYmIG1fb2JqLT5pc0JSKCkpIHx8IGF0VGV4dFBhcmFncmFwaFNlcGFyYXRv
cigpOworICAgIH0KKwogICAgIFVDaGFyIGN1cnJlbnQoKSBjb25zdDsKICAgICBBTFdBWVNfSU5M
SU5FIFdURjo6VW5pY29kZTo6RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAkocmV2aXNpb24gODMwMzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4OCwxNiArMTM4OCw2IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRDb2xsYXBzZVdoaXRlU3AKICAgICByZXR1cm4gc3R5bGUt
PmNvbGxhcHNlV2hpdGVTcGFjZSgpIHx8IChzdHlsZS0+d2hpdGVTcGFjZSgpID09IFBSRV9XUkFQ
ICYmICghaXNMaW5lRW1wdHkgfHwgIXByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSkpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkUHJlc2VydmVOZXdsaW5lKFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotI2lmIEVOQUJMRShTVkcpCi0gICAgaWYgKG9iamVjdC0+aXNTVkdJbmxpbmVUZXh0
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIG9iamVjdC0+
c3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCk7Ci19Ci0KIHN0YXRpYyBib29sIGlubGluZUZsb3dS
ZXF1aXJlc0xpbmVCb3goUmVuZGVySW5saW5lKiBmbG93KQogewogICAgIC8vIEZJWE1FOiBSaWdo
dCBub3csIHdlIG9ubHkgYWxsb3cgbGluZSBib3hlcyBmb3IgaW5saW5lcyB0aGF0IGFyZSB0cnVs
eSBlbXB0eS4KQEAgLTE0MTgsNyArMTQwOCw3IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnJlcXVpcmVz
TGluZUJveChjb25zdCAKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBVQ2hhciBjdXJyZW50
ID0gaXQuY3VycmVudCgpOwotICAgIHJldHVybiBjdXJyZW50ICE9ICcgJyAmJiBjdXJyZW50ICE9
ICdcdCcgJiYgY3VycmVudCAhPSBzb2Z0SHlwaGVuICYmIChjdXJyZW50ICE9ICdcbicgfHwgc2hv
dWxkUHJlc2VydmVOZXdsaW5lKGl0Lm1fb2JqKSkgCisgICAgcmV0dXJuIGN1cnJlbnQgIT0gJyAn
ICYmIGN1cnJlbnQgIT0gJ1x0JyAmJiBjdXJyZW50ICE9IHNvZnRIeXBoZW4gJiYgKGN1cnJlbnQg
IT0gJ1xuJyB8fCBpdC5tX29iai0+cHJlc2VydmVzTmV3bGluZSgpKSAKICAgICAgICAgICAgICYm
ICFza2lwTm9uQnJlYWtpbmdTcGFjZShpdCwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tl
Q2xlYW5seSk7CiB9CiAKQEAgLTE5MTQsNyArMTkwNCw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRl
ckJsb2NrOjpmaW5kTmV4dExpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGh5cGhlbmF0ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVu
ZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGxCcmVhay5tX29iaiAmJiBzaG91bGRQcmVzZXJ2ZU5ld2xpbmUobEJyZWFrLm1f
b2JqKSAmJiBsQnJlYWsubV9vYmotPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsubV9v
YmopLT50ZXh0TGVuZ3RoKCkgJiYgIXRvUmVuZGVyVGV4dChsQnJlYWsubV9vYmopLT5pc1dvcmRC
cmVhaygpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsubV9vYmopLT5jaGFyYWN0ZXJzKClbbEJyZWFr
Lm1fcG9zXSA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVh
ay5hdFRleHRQYXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXN0b3BwZWRJZ25vcmluZ1NwYWNlcyAmJiBwb3MgPiAwKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHN0b3AgcmlnaHQgYmVm
b3JlIHRoZSBuZXdsaW5lIGFuZCB0aGVuIHN0YXJ0IHVwIGFnYWluLgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkTWlkcG9pbnQobGluZU1pZHBvaW50U3RhdGUsIElubGlu
ZUl0ZXJhdG9yKDAsIG8sIHBvcyAtIDEpKTsgLy8gU3RvcApAQCAtMjA1NSw3ICsyMDQ1LDcgQEAg
SW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJUZXh0KiBuZXh0VGV4dCA9IHRvUmVuZGVyVGV4dChuZXh0KTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG5leHRUZXh0LT50ZXh0TGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIFVDaGFyIGMgPSBuZXh0VGV4dC0+Y2hhcmFjdGVycygpWzBdOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCAoYyA9PSAnXG4nICYm
ICFzaG91bGRQcmVzZXJ2ZU5ld2xpbmUobmV4dCkpKQorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCAoYyA9PSAnXG4nICYmICFuZXh0LT5wcmVzZXJ2
ZXNOZXdsaW5lKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBuZXh0
IGl0ZW0gb24gdGhlIGxpbmUgaXMgdGV4dCwgYW5kIGlmIHdlIGRpZCBub3QgZW5kIHdpdGgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHNwYWNlLCB0aGVuIHRoZSBuZXh0IHRleHQg
cnVuIGNvbnRpbnVlcyBvdXIgd29yZCAoYW5kIHNvIGl0IG5lZWRzIHRvCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8ga2VlcCBhZGRpbmcgdG8gfHRtcFd8LiAgSnVzdCB1cGRhdGUgYW5k
IGNvbnRpbnVlLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAko
cmV2aXNpb24gODMwMzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzMyw2ICs0MzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYW5zZm9ybTsgfQogICAgIGJvb2wg
aGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkgJiYgc3R5bGUoKS0+aGFzTWFzaygpOyB9
CiAKKyAgICBpbmxpbmUgYm9vbCBwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3Q7CiAgICAgdm9pZCBk
cmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3NDb250ZXh0KiwgaW50IHgxLCBpbnQgeTEsIGludCB4
MiwgaW50IHkyLCBCb3hTaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLCBF
Qm9yZGVyU3R5bGUsIGludCBhZGpidzEsIGludCBhZGpidzIpOwogI2lmIEhBVkUoUEFUSF9CQVNF
RF9CT1JERVJfUkFESVVTX0RSQVdJTkcpCkBAIC0xMDM3LDYgKzEwMzgsMTYgQEAgaW5saW5lIHZv
aWQgUmVuZGVyT2JqZWN0OjptYXJrQ29udGFpbmluZwogICAgICAgICBsYXN0LT5zY2hlZHVsZVJl
bGF5b3V0KCk7CiB9CiAKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6cHJlc2VydmVzTmV3bGlu
ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFNWRykKKyAgICBpZiAoaXNTVkdJbmxpbmVUZXh0KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgICAgICAKKyAgICByZXR1cm4gc3R5
bGUoKS0+cHJlc2VydmVOZXdsaW5lKCk7Cit9CisKIGlubGluZSB2b2lkIG1ha2VNYXRyaXhSZW5k
ZXJhYmxlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGJvb2wgaGFzM0RSZW5kZXJpbmcp
CiB7CiAjaWYgIUVOQUJMRSgzRF9SRU5ERVJJTkcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>