<?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>140757</bug_id>
          
          <creation_ts>2015-01-21 20:42:42 -0800</creation_ts>
          <short_desc>Simple line layout: Move leading whitespace handling from removeTrailingWhitespace() to initializeNewLine().</short_desc>
          <delta_ts>2015-01-22 22:26:29 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063266</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-01-21 20:42:42 -0800</bug_when>
    <thetext>This is in preparation to make FlowContents as iterator class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063267</commentid>
    <comment_count>1</comment_count>
      <attachid>245112</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-21 20:43:50 -0800</bug_when>
    <thetext>Created attachment 245112
WIP patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063537</commentid>
    <comment_count>2</comment_count>
      <attachid>245183</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-22 16:38:45 -0800</bug_when>
    <thetext>Created attachment 245183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063581</commentid>
    <comment_count>3</comment_count>
      <attachid>245198</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-22 20:03:25 -0800</bug_when>
    <thetext>Created attachment 245198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063583</commentid>
    <comment_count>4</comment_count>
      <attachid>245198</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-22 20:08:01 -0800</bug_when>
    <thetext>Comment on attachment 245198
Patch

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

&gt; Source/WebCore/rendering/SimpleLineLayout.cpp:334
&gt; +    // Remove collapsed whitespace, or non-collapsed pre-wrap whitepsace, unless it&apos;s the only content on the line -so removing the whitesapce would produce an empty line.
&gt; +    if (!(style.collapseWhitespace || (preWrap(style) &amp;&amp; !lineState.hasWhitespaceOnly())))

This is bit difficult to read with all the !s. Maybe have a sensibly named boolean helper?

&gt; Source/WebCore/rendering/SimpleLineLayout.cpp:385
&gt; +    if (overflowedFragment.isEmpty()) {
&gt;          unsigned spaceCount = 0;
&gt; -        lineState.jumpTo(flowContents.style().collapseWhitespace ? flowContents.findNextNonWhitespacePosition(previousLine.position, spaceCount) : previousLine.position, 0);
&gt; +        lineState.jumpTo(style.collapseWhitespace ? flowContents.findNextNonWhitespacePosition(linePositon, spaceCount) : linePositon, 0);
&gt; +    } else if (lineState.fits(overflowedFragment.width))
&gt; +        lineState.addUncommitted(overflowedFragment);
&gt; +    else {
&gt; +        // Start over with this fragment.
&gt; +        lineState.jumpTo(overflowedFragment.start, 0);
&gt;      }
&gt;      return lineState;

This would read better with early returns. No need for else branches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063588</commentid>
    <comment_count>5</comment_count>
      <attachid>245200</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-22 20:31:00 -0800</bug_when>
    <thetext>Created attachment 245200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063608</commentid>
    <comment_count>6</comment_count>
      <attachid>245200</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 22:26:25 -0800</bug_when>
    <thetext>Comment on attachment 245200
Patch

Clearing flags on attachment: 245200

Committed r178983: &lt;http://trac.webkit.org/changeset/178983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063609</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 22:26:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245112</attachid>
            <date>2015-01-21 20:43:50 -0800</date>
            <delta_ts>2015-01-22 16:38:43 -0800</delta_ts>
            <desc>WIP patch.</desc>
            <filename>WIP.txt</filename>
            <type>text/plain</type>
            <size>14495</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAppbmRleCA5
YmIzODcyLi5hODU4NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2lt
cGxlTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxp
bmVMYXlvdXQuY3BwCkBAIC0yMjcsMTkgKzIyNyw3IEBAIHN0YXRpYyBmbG9hdCBjb21wdXRlTGlu
ZUxlZnQoRVRleHRBbGlnbiB0ZXh0QWxpZ24sIGZsb2F0IGF2YWlsYWJsZVdpZHRoLCBmbG9hdCBj
CiB9CiAKIHN0cnVjdCBMaW5lU3RhdGUgewotICAgIExpbmVTdGF0ZSgpCi0gICAgICAgIDogYXZh
aWxhYmxlV2lkdGgoMCkKLSAgICAgICAgLCBsb2dpY2FsTGVmdE9mZnNldCgwKQotICAgICAgICAs
IGxpbmVTdGFydFJ1bkluZGV4KDApCi0gICAgICAgICwgdW5jb21taXR0ZWRTdGFydCgwKQotICAg
ICAgICAsIHVuY29tbWl0dGVkRW5kKDApCi0gICAgICAgICwgdW5jb21taXR0ZWRXaWR0aCgwKQot
ICAgICAgICAsIGNvbW1pdHRlZFdpZHRoKDApCi0gICAgICAgICwgY29tbWl0dGVkTG9naWNhbFJp
Z2h0KDApCi0gICAgICAgICwgcG9zaXRpb24oMCkKLSAgICAgICAgLCB0cmFpbGluZ1doaXRlc3Bh
Y2VXaWR0aCgwKQotICAgIHsKLSAgICB9CisgICAgTGluZVN0YXRlKCkgPSBkZWZhdWx0OwogCiAg
ICAgdm9pZCBjb21taXRBbmRDcmVhdGVSdW4oTGF5b3V0OjpSdW5WZWN0b3ImIGxpbmVSdW5zKQog
ICAgIHsKQEAgLTI1MCw5ICsyMzgsMTMgQEAgc3RydWN0IExpbmVTdGF0ZSB7CiAgICAgICAgIC8v
IE1vdmUgdW5jb21taXR0ZWQgdG8gY29tbWl0dGVkLgogICAgICAgICBjb21taXR0ZWRXaWR0aCAr
PSB1bmNvbW1pdHRlZFdpZHRoOwogICAgICAgICBjb21taXR0ZWRMb2dpY2FsUmlnaHQgKz0gY29t
bWl0dGVkV2lkdGg7CisgICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gdHJhaWxpbmdV
bmNvbWl0dGVkV2hpdGVzcGFjZVdpZHRoOworICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VMZW5n
dGggPSB0cmFpbGluZ1VuY29taXR0ZWRXaGl0ZXNwYWNlTGVuZ3RoOwogCiAgICAgICAgIHVuY29t
bWl0dGVkU3RhcnQgPSB1bmNvbW1pdHRlZEVuZDsKICAgICAgICAgdW5jb21taXR0ZWRXaWR0aCA9
IDA7CisgICAgICAgIHRyYWlsaW5nVW5jb21pdHRlZFdoaXRlc3BhY2VXaWR0aCA9IDA7CisgICAg
ICAgIHRyYWlsaW5nVW5jb21pdHRlZFdoaXRlc3BhY2VMZW5ndGggPSAwOwogICAgIH0KIAogICAg
IHZvaWQgYWRkVW5jb21taXR0ZWQoY29uc3QgRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQmIGZy
YWdtZW50KQpAQCAtMjYxLDggKzI1Myw4IEBAIHN0cnVjdCBMaW5lU3RhdGUgewogICAgICAgICB1
bmNvbW1pdHRlZFdpZHRoICs9IGZyYWdtZW50LndpZHRoOwogICAgICAgICB1bmNvbW1pdHRlZEVu
ZCA9IGZyYWdtZW50LmVuZDsKICAgICAgICAgcG9zaXRpb24gPSB1bmNvbW1pdHRlZEVuZDsKLSAg
ICAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSBmcmFnbWVudC50eXBlID09IEZsb3dDb250
ZW50czo6VGV4dEZyYWdtZW50OjpXaGl0ZXNwYWNlID8gZnJhZ21lbnQud2lkdGggOiAwOwotICAg
ICAgICB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGggPSBmcmFnbWVudC50eXBlID09IEZsb3dDb250
ZW50czo6VGV4dEZyYWdtZW50OjpXaGl0ZXNwYWNlID8gdW5jb21pdHRlZEZyYWdtZW50TGVuZ3Ro
ICA6IDA7CisgICAgICAgIHRyYWlsaW5nVW5jb21pdHRlZFdoaXRlc3BhY2VXaWR0aCA9IGZyYWdt
ZW50LnR5cGUgPT0gRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQ6OldoaXRlc3BhY2UgPyBmcmFn
bWVudC53aWR0aCA6IDA7CisgICAgICAgIHRyYWlsaW5nVW5jb21pdHRlZFdoaXRlc3BhY2VMZW5n
dGggPSBmcmFnbWVudC50eXBlID09IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50OjpXaGl0ZXNw
YWNlID8gdW5jb21pdHRlZEZyYWdtZW50TGVuZ3RoICA6IDA7CiAgICAgfQogCiAgICAgdm9pZCBh
ZGRVbmNvbW1pdHRlZFdoaXRlc3BhY2UoZmxvYXQgd2hpdGVzcGFjZVdpZHRoKQpAQCAtMjcwLDE0
ICsyNjIsMTQgQEAgc3RydWN0IExpbmVTdGF0ZSB7CiAgICAgICAgIGFkZFVuY29tbWl0dGVkKEZs
b3dDb250ZW50czo6VGV4dEZyYWdtZW50KHVuY29tbWl0dGVkRW5kLCB1bmNvbW1pdHRlZEVuZCAr
IDEsIHdoaXRlc3BhY2VXaWR0aCwgdHJ1ZSkpOwogICAgIH0KIAotICAgIHZvaWQganVtcFRvKHVu
c2lnbmVkIG5ld1Bvc2l0b24sIGZsb2F0IGxvZ2ljYWxSaWdodCkKKyAgICB2b2lkIHJlc2V0TGlu
ZVRvKHVuc2lnbmVkIG5ld1Bvc2l0b24sIGZsb2F0IGxvZ2ljYWxSaWdodCkKICAgICB7CiAgICAg
ICAgIHBvc2l0aW9uID0gbmV3UG9zaXRvbjsKKyAgICAgICAgY29tbWl0dGVkTG9naWNhbFJpZ2h0
ID0gbG9naWNhbFJpZ2h0OwogCiAgICAgICAgIHVuY29tbWl0dGVkU3RhcnQgPSBuZXdQb3NpdG9u
OwogICAgICAgICB1bmNvbW1pdHRlZEVuZCA9IG5ld1Bvc2l0b247CiAgICAgICAgIHVuY29tbWl0
dGVkV2lkdGggPSAwOwotICAgICAgICBjb21taXR0ZWRMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmln
aHQ7CiAgICAgfQogCiAgICAgZmxvYXQgd2lkdGgoKSBjb25zdApAQCAtMjkwLDEwMiArMjgyLDEw
MSBAQCBzdHJ1Y3QgTGluZVN0YXRlIHsKICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVdpZHRoID49
IHdpZHRoKCkgKyBleHRyYTsKICAgICB9CiAKLSAgICB2b2lkIHJlbW92ZUNvbW1pdHRlZFRyYWls
aW5nV2hpdGVzcGFjZSgpCisgICAgdm9pZCByZXNldFRyYWlsaW5nV2hpdGVzcGFjZSgpCiAgICAg
ewotICAgICAgICBBU1NFUlQoIXVuY29tbWl0dGVkV2lkdGgpOwogICAgICAgICBjb21taXR0ZWRX
aWR0aCAtPSB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsKICAgICAgICAgY29tbWl0dGVkTG9naWNh
bFJpZ2h0IC09IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoOwotICAgIH0KLQotICAgIHZvaWQgcmVz
ZXRUcmFpbGluZ1doaXRlc3BhY2UoKQotICAgIHsKICAgICAgICAgdHJhaWxpbmdXaGl0ZXNwYWNl
V2lkdGggPSAwOwogICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGggPSAwOwogICAgIH0K
IAotICAgIGZsb2F0IGF2YWlsYWJsZVdpZHRoOwotICAgIGZsb2F0IGxvZ2ljYWxMZWZ0T2Zmc2V0
OwotICAgIHVuc2lnbmVkIGxpbmVTdGFydFJ1bkluZGV4OyAvLyBUaGUgcnVuIHRoYXQgdGhlIGxp
bmUgc3RhcnRzIHdpdGguCi0KLSAgICB1bnNpZ25lZCB1bmNvbW1pdHRlZFN0YXJ0OwotICAgIHVu
c2lnbmVkIHVuY29tbWl0dGVkRW5kOwotICAgIGZsb2F0IHVuY29tbWl0dGVkV2lkdGg7Ci0gICAg
ZmxvYXQgY29tbWl0dGVkV2lkdGg7Ci0gICAgZmxvYXQgY29tbWl0dGVkTG9naWNhbFJpZ2h0OyAv
LyBMYXN0IGNvbW1pdHRlZCBYIChjb29yZGluYXRlKSBwb3NpdGlvbi4KKyAgICBib29sIGhhc1do
aXRlc3BhY2VPbmx5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0cmFpbGluZ1doaXRl
c3BhY2VXaWR0aCAmJiBjb21taXR0ZWRXaWR0aCA9PSB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsK
KyAgICB9CiAKLSAgICB1bnNpZ25lZCBwb3NpdGlvbjsKKyAgICBmbG9hdCBhdmFpbGFibGVXaWR0
aCA9IDA7CisgICAgZmxvYXQgbG9naWNhbExlZnRPZmZzZXQgPSAwOworICAgIHVuc2lnbmVkIGxp
bmVTdGFydFJ1bkluZGV4ID0gMDsgLy8gVGhlIHJ1biB0aGF0IHRoZSBsaW5lIHN0YXJ0cyB3aXRo
LgogCi0gICAgZmxvYXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGg7IC8vIFVzZSB0aGlzIHRvIHJl
bW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIHdpdGhvdXQgcmUtbWVzdXJpbmcgdGhlIHRleHQuCi0g
ICAgZmxvYXQgdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOworICAgIHVuc2lnbmVkIHVuY29tbWl0
dGVkU3RhcnQgPSAwOworICAgIHVuc2lnbmVkIHVuY29tbWl0dGVkRW5kID0gMDsKKyAgICBmbG9h
dCB1bmNvbW1pdHRlZFdpZHRoID0gMDsKKyAgICBmbG9hdCBjb21taXR0ZWRXaWR0aCA9IDA7Cisg
ICAgZmxvYXQgY29tbWl0dGVkTG9naWNhbFJpZ2h0ID0gMDsgLy8gTGFzdCBjb21taXR0ZWQgWCAo
Y29vcmRpbmF0ZSkgcG9zaXRpb24uCisgICAgZmxvYXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgg
PSAwOyAvLyBVc2UgdGhpcyB0byByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSB3aXRob3V0IHJl
LW1lc3VyaW5nIHRoZSB0ZXh0LgorICAgIGZsb2F0IHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9
IDA7CiAKKyAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7CiAgICAgRmxvd0NvbnRlbnRzOjpUZXh0
RnJhZ21lbnQgb3ZlZmxvd2VkRnJhZ21lbnQ7CisgICAgYm9vbCBjYW5Ib2xkVGhlRmlyc3RDaGFy
YWN0ZXIgPSB0cnVlOworCitwcml2YXRlOgorICAgIGZsb2F0IHRyYWlsaW5nVW5jb21pdHRlZFdo
aXRlc3BhY2VXaWR0aCA9IDA7CisgICAgZmxvYXQgdHJhaWxpbmdVbmNvbWl0dGVkV2hpdGVzcGFj
ZUxlbmd0aCA9IDA7CiB9OwogCitzdGF0aWMgYm9vbCBwcmVXcmFwKGNvbnN0IEZsb3dDb250ZW50
czo6U3R5bGUmIHN0eWxlKQoreworICAgIHJldHVybiBzdHlsZS53cmFwTGluZXMgJiYgIXN0eWxl
LmNvbGxhcHNlV2hpdGVzcGFjZTsKK30KKwogc3RhdGljIHZvaWQgcmVtb3ZlVHJhaWxpbmdXaGl0
ZXNwYWNlKExpbmVTdGF0ZSYgbGluZVN0YXRlLCBMYXlvdXQ6OlJ1blZlY3RvciYgbGluZVJ1bnMs
IGNvbnN0IEZsb3dDb250ZW50cyYgZmxvd0NvbnRlbnRzKQogeworICAgIGlmICghbGluZVN0YXRl
LnRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3Qg
YXV0byYgc3R5bGUgPSBmbG93Q29udGVudHMuc3R5bGUoKTsKLSAgICBib29sIHByZVdyYXAgPSBz
dHlsZS53cmFwTGluZXMgJiYgIXN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZTsKLSAgICAvLyBUcmFp
bGluZyB3aGl0ZXNwYWNlIGdldHMgcmVtb3ZlZCB3aGVuIHdlIGVpdGhlciBjb2xsYXBzZSB3aGl0
ZXNwYWNlIG9yIHByZS13cmFwIGlzIHByZXNlbnQuCi0gICAgaWYgKCEoc3R5bGUuY29sbGFwc2VX
aGl0ZXNwYWNlIHx8IHByZVdyYXApKSB7CisgICAgLy8gUmVtb3ZlIGNvbGxhcHNlZCB3aGl0ZXNw
YWNlLCBvciBub24tY29sbGFwc2VkIHByZS13cmFwIHdoaXRlcHNhY2UsIHVubGVzcyBpdCdzIHRo
ZSBvbmx5IHRleHQgb24gdGhlIGxpbmUgLXNvIHJlbW92aW5nIHRoZSB3aGl0ZXNhcGNlIHdvdWxk
IHByb2R1Y2UgYW4gZW1wdHkgbGluZS4KKyAgICBpZiAoIShzdHlsZS5jb2xsYXBzZVdoaXRlc3Bh
Y2UgfHwgKHByZVdyYXAoc3R5bGUpICYmICFsaW5lU3RhdGUuaGFzV2hpdGVzcGFjZU9ubHkoKSkp
KSB7CiAgICAgICAgIGxpbmVTdGF0ZS5yZXNldFRyYWlsaW5nV2hpdGVzcGFjZSgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKGxpbmVSdW5zLnNpemUoKSk7CiAgICAgUnVu
JiBsYXN0UnVuID0gbGluZVJ1bnMubGFzdCgpOwotCi0gICAgdW5zaWduZWQgbGFzdFBvc2l0aW9u
ID0gbGluZVN0YXRlLnBvc2l0aW9uOwotICAgIGJvb2wgdHJhaWxpbmdQcmVXcmFwV2hpdGVzcGFj
ZU5lZWRzVG9CZVJlbW92ZWQgPSBmYWxzZTsKLSAgICAvLyBXaGVuIHByZS13cmFwIGlzIHByZXNl
bnQsIHRyYWlsaW5nIHdoaXRlc3BhY2UgbmVlZHMgdG8gYmUgcmVtb3ZlZDoKLSAgICAvLyAxLiBm
cm9tIHRoZSAibmV4dCBsaW5lIjogd2hlbiBhdCBsZWFzdCB0aGUgZmlyc3QgY2hhcmF0ZXIgZml0
cy4gV2hlbiBldmVuIHRoZSBmaXJzdCB3aGl0ZXNwYWNlIGlzIHdpZGVyIHRoYXQgdGhlIGF2YWls
YWJsZSB3aWR0aCwKLSAgICAvLyB3ZSBkb24ndCByZW1vdmUgYW55IHdoaXRlc3BhY2UgYXQgYWxs
LgotICAgIC8vIDIuIGZyb20gdGhpcyBsaW5lOiByZW1vdmUgd2hpdGVzcGFjZSwgdW5sZXNzIGl0
J3MgdGhlIG9ubHkgZnJhZ21lbnQgb24gdGhlIGxpbmUgLXNvIHJlbW92aW5nIHRoZSB3aGl0ZXNh
cGNlIHdvdWxkIHByb2R1Y2UgYW4gZW1wdHkgbGluZS4KLSAgICBpZiAocHJlV3JhcCkgewotICAg
ICAgICBpZiAobGluZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50LnR5cGUgPT0gRmxvd0NvbnRlbnRz
OjpUZXh0RnJhZ21lbnQ6OldoaXRlc3BhY2UgJiYgIWxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVu
dC5pc0VtcHR5KCkgJiYgbGluZVN0YXRlLmF2YWlsYWJsZVdpZHRoID49IGxpbmVTdGF0ZS5jb21t
aXR0ZWRXaWR0aCkgewotICAgICAgICAgICAgbGluZVN0YXRlLnBvc2l0aW9uID0gbGluZVN0YXRl
Lm92ZWZsb3dlZEZyYWdtZW50LmVuZDsKLSAgICAgICAgICAgIGxpbmVTdGF0ZS5vdmVmbG93ZWRG
cmFnbWVudCA9IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50KCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKGxpbmVTdGF0ZS50cmFpbGluZ1doaXRlc3BhY2VMZW5ndGgpIHsKLSAgICAgICAgICAg
IC8vIENoZWNrIGlmIHdlJ3ZlIGdvdCBvbmx5IHdoaXRlc3BhY2Ugb24gdGhpcyBsaW5lLgotICAg
ICAgICAgICAgdHJhaWxpbmdQcmVXcmFwV2hpdGVzcGFjZU5lZWRzVG9CZVJlbW92ZWQgPSAhKGxp
bmVTdGF0ZS5jb21taXR0ZWRXaWR0aCA9PSBsaW5lU3RhdGUudHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGgpOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChsaW5lU3RhdGUudHJhaWxpbmdXaGl0ZXNw
YWNlTGVuZ3RoICYmIChzdHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgfHwgdHJhaWxpbmdQcmVXcmFw
V2hpdGVzcGFjZU5lZWRzVG9CZVJlbW92ZWQpKSB7Ci0gICAgICAgIGxhc3RSdW4ubG9naWNhbFJp
Z2h0IC09IGxpbmVTdGF0ZS50cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsKLSAgICAgICAgbGFzdFJ1
bi5lbmQgLT0gbGluZVN0YXRlLnRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aDsKLSAgICAgICAgaWYg
KGxhc3RSdW4uc3RhcnQgPT0gbGFzdFJ1bi5lbmQpCi0gICAgICAgICAgICBsaW5lUnVucy5yZW1v
dmVMYXN0KCk7Ci0gICAgICAgIGxpbmVTdGF0ZS5yZW1vdmVDb21taXR0ZWRUcmFpbGluZ1doaXRl
c3BhY2UoKTsKLSAgICB9Ci0KLSAgICAvLyBJZiB3ZSBza2lwcGVkIGFueSB3aGl0ZXNwYWNlIGFu
ZCBub3cgdGhlIGxpbmUgZW5kIGlzIGEgaGFyZCBuZXdsaW5lLCBza2lwIHRoZSBuZXdsaW5lIHRv
byBhcyB3ZSBhcmUgd3JhcHBpbmcgdGhlIGxpbmUgaGVyZSBhbHJlYWR5LgotICAgIGlmIChsYXN0
UG9zaXRpb24gIT0gbGluZVN0YXRlLnBvc2l0aW9uICYmICFmbG93Q29udGVudHMuaXNFbmQobGlu
ZVN0YXRlLnBvc2l0aW9uKSAmJiBmbG93Q29udGVudHMuaXNMaW5lQnJlYWsobGluZVN0YXRlLnBv
c2l0aW9uKSkKLSAgICAgICAgKytsaW5lU3RhdGUucG9zaXRpb247CisgICAgbGFzdFJ1bi5sb2dp
Y2FsUmlnaHQgLT0gbGluZVN0YXRlLnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoOworICAgIGxhc3RS
dW4uZW5kIC09IGxpbmVTdGF0ZS50cmFpbGluZ1doaXRlc3BhY2VMZW5ndGg7CisgICAgaWYgKGxh
c3RSdW4uc3RhcnQgPT0gbGFzdFJ1bi5lbmQpCisgICAgICAgIGxpbmVSdW5zLnJlbW92ZUxhc3Qo
KTsKKyAgICBsaW5lU3RhdGUucmVzZXRUcmFpbGluZ1doaXRlc3BhY2UoKTsKIH0KIAogc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZU5ld0xpbmUoTGluZVN0YXRlJiBsaW5lU3RhdGUsIGNvbnN0IEZsb3dD
b250ZW50cyYgZmxvd0NvbnRlbnRzLCB1bnNpZ25lZCBsaW5lU3RhcnRSdW5JbmRleCkKIHsKICAg
ICBsaW5lU3RhdGUubGluZVN0YXJ0UnVuSW5kZXggPSBsaW5lU3RhcnRSdW5JbmRleDsKLSAgICAv
LyBTa2lwIGxlYWRpbmcgd2hpdGVzcGFjZSBpZiBjb2xsYXBzaW5nIHdoaXRlc3BhY2UsIHVubGVz
cyB0aGVyZSdzIGFuIHVuY29tbWl0dGVkIGZyYWdtZW50IHB1c2hlZCBmcm9tIHRoZSBwcmV2aW91
cyBsaW5lLgotICAgIC8vIEZJWE1FOiBCZSBzbWFydGVyIHdoZW4gdGhlIHJ1biBmcm9tIHRoZSBw
cmV2aW91cyBsaW5lIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLiBSaWdodCBub3csIHdl
IGp1c3QgcmVwcm9jZXNzIGl0LgotICAgIGlmIChsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQu
d2lkdGgpIHsKLSAgICAgICAgaWYgKGxpbmVTdGF0ZS5maXRzKGxpbmVTdGF0ZS5vdmVmbG93ZWRG
cmFnbWVudC53aWR0aCkpCi0gICAgICAgICAgICBsaW5lU3RhdGUuYWRkVW5jb21taXR0ZWQobGlu
ZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbGlu
ZVN0YXRlLmp1bXBUbyhsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQuc3RhcnQsIDApOyAvLyBT
dGFydCBvdmVyIHdpdGggdGhpcyBmcmFnbWVudC4KKyAgICAvLyBTa2lwIGFueSBjb2xsYXBzaW5n
IGxlYWRpbmcgd2hpdGVzcGFjZSB1bmxlc3MgaXQgaXMgcHVzaGVkIGZyb20gdGhlIHByZXZpb3Vz
IGxpbmUuCisgICAgaWYgKCFsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQuaXNFbXB0eSgpKSB7
CisgICAgICAgIC8vIFNwZWNpYWwgb3ZlcmZsb3cgcHJlLXdyYXAgZnJhZ21lbnQgaGFuZGxpbmc6
IERlbGV0ZSB0aGUgb3ZlcmZsb3cgd2hpdGVzcGFjZSBmcmFnbWVudCBpZiB3ZSBtYW5hZ2VkIHRv
IGZpdCBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9uIHRoZSBwcmV2aW91cyBsaW5lLgorICAgICAg
ICAvLyBXaGVuIHRoZSBsaW5lIGlzIHRvbyBzaG9ydCB0byBmaXQgb25lIGNoYXJhY3RlciAodGhv
dWdodCBpdCBzdGlsbCBzdGF5cyBvbiB0aGUgbGluZSkgd2UganVzdCByZXByZW9jZXNzIHRoZSBv
dmVyZmxvdyB3aGl0ZXBzcGFjZSBjb250ZW50LgorICAgICAgICBpZiAocHJlV3JhcChmbG93Q29u
dGVudHMuc3R5bGUoKSkgJiYgbGluZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50LnR5cGUgPT0gRmxv
d0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQ6OldoaXRlc3BhY2UgJiYgIWxpbmVTdGF0ZS5jYW5Ib2xk
VGhlRmlyc3RDaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIGxpbmVTdGF0ZS5wb3NpdGlvbiA9IGxp
bmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudC5lbmQ7CisgICAgICAgICAgICAvLyBDaGVjayBpZiB0
aGUgbGluZSBlbmQgaXMgYSBoYXJkIG5ld2xpbmUgbm93IHRoYXQgd2Ugc2tpcHBlZCB3aGl0ZXNw
YWNlIGFuZCBza2lwIHRoZSBuZXdsaW5lIHRvbyBhcyB3ZSB3cmFwcGVkIHRoZSBsaW5lIGhlcmUg
YWxyZWFkeS4KKyAgICAgICAgICAgIGlmIChmbG93Q29udGVudHMuaXNMaW5lQnJlYWsobGluZVN0
YXRlLnBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgICArK2xpbmVTdGF0ZS5wb3NpdGlvbjsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBCZSBzbWFydGVyIHdoZW4gdGhl
IHJ1biBmcm9tIHRoZSBwcmV2aW91cyBsaW5lIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5l
LiBSaWdodCBub3csIHdlIGp1c3QgcmVwcm9jZXNzIGl0LgorICAgICAgICAgICAgaWYgKGxpbmVT
dGF0ZS5maXRzKGxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudC53aWR0aCkpCisgICAgICAgICAg
ICAgICAgbGluZVN0YXRlLmFkZFVuY29tbWl0dGVkKGxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVu
dCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVN0YXRlLnJlc2V0TGlu
ZVRvKGxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudC5zdGFydCwgMCk7IC8vIFN0YXJ0IG92ZXIg
d2l0aCB0aGlzIGZyYWdtZW50LgorICAgICAgICB9CisgICAgICAgIGxpbmVTdGF0ZS5vdmVmbG93
ZWRGcmFnbWVudCA9IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50KCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgdW5zaWduZWQgc3BhY2VDb3VudCA9IDA7Ci0gICAgICAgIGxpbmVTdGF0ZS5qdW1w
VG8oZmxvd0NvbnRlbnRzLnN0eWxlKCkuY29sbGFwc2VXaGl0ZXNwYWNlID8gZmxvd0NvbnRlbnRz
LmZpbmROZXh0Tm9uV2hpdGVzcGFjZVBvc2l0aW9uKGxpbmVTdGF0ZS5wb3NpdGlvbiwgc3BhY2VD
b3VudCkgOiBsaW5lU3RhdGUucG9zaXRpb24sIDApOworICAgICAgICBsaW5lU3RhdGUucmVzZXRM
aW5lVG8oZmxvd0NvbnRlbnRzLnN0eWxlKCkuY29sbGFwc2VXaGl0ZXNwYWNlID8gZmxvd0NvbnRl
bnRzLmZpbmROZXh0Tm9uV2hpdGVzcGFjZVBvc2l0aW9uKGxpbmVTdGF0ZS5wb3NpdGlvbiwgc3Bh
Y2VDb3VudCkgOiBsaW5lU3RhdGUucG9zaXRpb24sIDApOwogICAgIH0KLSAgICBsaW5lU3RhdGUu
b3ZlZmxvd2VkRnJhZ21lbnQgPSBGbG93Q29udGVudHM6OlRleHRGcmFnbWVudCgpOworICAgIGxp
bmVTdGF0ZS5jYW5Ib2xkVGhlRmlyc3RDaGFyYWN0ZXIgPSB0cnVlOwogfQogCi1zdGF0aWMgRmxv
d0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQgc3BsaXRGcmFnbWVudFRvRml0TGluZShGbG93Q29udGVu
dHM6OlRleHRGcmFnbWVudCYgZnJhZ21lbnRUb1NwbGl0LCBmbG9hdCBhdmFpbGFibGVXaWR0aCwg
Ym9vbCBrZWVwQXRMZWFzdE9uZUNoYXJhY3RlciwgY29uc3QgRmxvd0NvbnRlbnRzJiBmbG93Q29u
dGVudHMpCitzdGF0aWMgRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQgc3BsaXRGcmFnbWVudFRv
Rml0TGluZShGbG93Q29udGVudHM6OlRleHRGcmFnbWVudCYgZnJhZ21lbnRUb1NwbGl0LCBmbG9h
dCBhdmFpbGFibGVXaWR0aCwgYm9vbCBrZWVwQXRMZWFzdE9uZUNoYXJhY3RlciwgYm9vbCYgY2Fu
SG9sZFRoZUZpcnN0Q2hhcmFjdGVyLCBjb25zdCBGbG93Q29udGVudHMmIGZsb3dDb250ZW50cykK
IHsKICAgICAvLyBGYXN0IHBhdGggZm9yIHNpbmdsZSBjaGFyIGZyYWdtZW50cy4KICAgICBpZiAo
ZnJhZ21lbnRUb1NwbGl0LnN0YXJ0ICsgMSA9PSBmcmFnbWVudFRvU3BsaXQuZW5kKSB7Ci0gICAg
ICAgIGlmIChrZWVwQXRMZWFzdE9uZUNoYXJhY3RlcikKKyAgICAgICAgaWYgKGtlZXBBdExlYXN0
T25lQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICBjYW5Ib2xkVGhlRmlyc3RDaGFyYWN0ZXIgPSBm
YWxzZTsKICAgICAgICAgICAgIHJldHVybiBGbG93Q29udGVudHM6OlRleHRGcmFnbWVudCgpOwor
ICAgICAgICB9CiAKICAgICAgICAgRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQgZnJhZ21lbnRG
b3JOZXh0TGluZShmcmFnbWVudFRvU3BsaXQpOwogICAgICAgICBmcmFnbWVudFRvU3BsaXQuZW5k
ID0gZnJhZ21lbnRUb1NwbGl0LnN0YXJ0OwpAQCAtNDEwLDEzICs0MDEsMTYgQEAgc3RhdGljIEZs
b3dDb250ZW50czo6VGV4dEZyYWdtZW50IHNwbGl0RnJhZ21lbnRUb0ZpdExpbmUoRmxvd0NvbnRl
bnRzOjpUZXh0RnJhZ20KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChrZWVwQXRMZWFzdE9u
ZUNoYXJhY3RlciAmJiByaWdodCA9PSBmcmFnbWVudFRvU3BsaXQuc3RhcnQpCisgICAgaWYgKGtl
ZXBBdExlYXN0T25lQ2hhcmFjdGVyICYmIHJpZ2h0ID09IGZyYWdtZW50VG9TcGxpdC5zdGFydCkg
eworICAgICAgICBjYW5Ib2xkVGhlRmlyc3RDaGFyYWN0ZXIgPSBmYWxzZTsKICAgICAgICAgKyty
aWdodDsKKyAgICB9CiAgICAgRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQgZnJhZ21lbnRGb3JO
ZXh0TGluZShmcmFnbWVudFRvU3BsaXQpOwogICAgIGZyYWdtZW50VG9TcGxpdC5lbmQgPSByaWdo
dDsKLSAgICBmcmFnbWVudFRvU3BsaXQud2lkdGggPSBmcmFnbWVudFRvU3BsaXQuaXNFbXB0eSgp
ID8gMCA6IGZsb3dDb250ZW50cy50ZXh0V2lkdGgoZnJhZ21lbnRUb1NwbGl0LnN0YXJ0LCByaWdo
dCwgMCk7CisgICAgZnJhZ21lbnRUb1NwbGl0LndpZHRoID0gZnJhZ21lbnRUb1NwbGl0LmlzRW1w
dHkoKSA/IDAgOiBmbG93Q29udGVudHMudGV4dFdpZHRoKGZyYWdtZW50VG9TcGxpdC5zdGFydCwg
ZnJhZ21lbnRUb1NwbGl0LmVuZCwgMCk7CiAKICAgICBmcmFnbWVudEZvck5leHRMaW5lLnN0YXJ0
ID0gZnJhZ21lbnRUb1NwbGl0LmVuZDsKKyAgICAvLyBGSVhNRToga2VybmluZy4KICAgICBmcmFn
bWVudEZvck5leHRMaW5lLndpZHRoIC09IGZyYWdtZW50VG9TcGxpdC53aWR0aDsKICAgICByZXR1
cm4gZnJhZ21lbnRGb3JOZXh0TGluZTsKIH0KQEAgLTQ0Nyw5ICs0NDEsOSBAQCBzdGF0aWMgYm9v
bCBjcmVhdGVMaW5lUnVucyhMaW5lU3RhdGUmIGxpbmVTdGF0ZSwgTGF5b3V0OjpSdW5WZWN0b3Im
IGxpbmVSdW5zLCBjbwogICAgICAgICAgICAgICAgIC8vIFdoaXRlc3BhY2UgY29sbGFwc2UgaXMg
b246IHdoaXRlc3BhY2UgdGhhdCBkb2Vzbid0IGZpdCBpcyBzaW1wbHkgc2tpcHBlZC4KICAgICAg
ICAgICAgICAgICBsaW5lU3RhdGUucG9zaXRpb24gPSBmcmFnbWVudC5lbmQ7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGZyYWdtZW50LnR5cGUgPT0gRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQ6
OldoaXRlc3BhY2UgfHwgKChpc0ZpcnN0RnJhZ21lbnQgJiYgc3R5bGUuYnJlYWtXb3JkT25PdmVy
ZmxvdykgfHwgIXN0eWxlLndyYXBMaW5lcykpIHsgLy8gIXN0eWxlLndyYXBMaW5lczogYnVnMTM4
MTAyKHByZXNlcnZlIGV4aXN0aW5nIGJlaGF2aW9yKQotICAgICAgICAgICAgICAgIC8vIFdoaXRl
c3BhY2UgY29sbGFwc2UgaXMgb2ZmIG9yIG5vbi13aGl0ZXNwYWNlIGNvbnRlbnQuIHNwbGl0IHRo
ZSBmcmFnbWVudDsgKG1vZGlmaWVkKWZyYWdtZW50IC0+IHRoaXMgbGluZVN0YXRlLCBvdmVmbG93
ZWRGcmFnbWVudCAtPiBuZXh0IGxpbmUuCisgICAgICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSBj
b2xsYXBzZSBpcyBvZmYgb3Igbm9uLXdoaXRlc3BhY2UgY29udGVudC4gc3BsaXQgdGhlIGZyYWdt
ZW50OyAobW9kaWZpZWQpZnJhZ21lbnQgLT4gdGhpcyBsaW5lLCBvdmVmbG93ZWRGcmFnbWVudCAt
PiBuZXh0IGxpbmUuCiAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGlzIGlzIHRoZSBvbmx5IChm
aXJzdCkgZnJhZ21lbnQsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgc3RheXMgb24gdGhlIGxpbmUsIGV2
ZW4gaWYgaXQgZG9lcyBub3QgZml0LgotICAgICAgICAgICAgICAgIGxpbmVTdGF0ZS5vdmVmbG93
ZWRGcmFnbWVudCA9IHNwbGl0RnJhZ21lbnRUb0ZpdExpbmUoZnJhZ21lbnQsIGxpbmVTdGF0ZS5h
dmFpbGFibGVXaWR0aCAtIGxpbmVTdGF0ZS53aWR0aCgpLCBpc0ZpcnN0RnJhZ21lbnQsIGZsb3dD
b250ZW50cyk7CisgICAgICAgICAgICAgICAgbGluZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50ID0g
c3BsaXRGcmFnbWVudFRvRml0TGluZShmcmFnbWVudCwgbGluZVN0YXRlLmF2YWlsYWJsZVdpZHRo
IC0gbGluZVN0YXRlLndpZHRoKCksIGlzRmlyc3RGcmFnbWVudCwgbGluZVN0YXRlLmNhbkhvbGRU
aGVGaXJzdENoYXJhY3RlciwgZmxvd0NvbnRlbnRzKTsKICAgICAgICAgICAgICAgICBpZiAoIWZy
YWdtZW50LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBXaGl0ZXNwYWNlIGZy
YWdtZW50cyBjYW4gZ2V0IHB1c2hlZCBlbnRpcmVseSB0byB0aGUgbmV4dCBsaW5lLgogICAgICAg
ICAgICAgICAgICAgICBsaW5lU3RhdGUuYWRkVW5jb21taXR0ZWQoZnJhZ21lbnQpOwpAQCAtNDY5
LDcgKzQ2Myw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZUxpbmVSdW5zKExpbmVTdGF0ZSYgbGluZVN0
YXRlLCBMYXlvdXQ6OlJ1blZlY3RvciYgbGluZVJ1bnMsIGNvCiAgICAgICAgICAgICBsaW5lU3Rh
dGUuYWRkVW5jb21taXR0ZWRXaGl0ZXNwYWNlKHN0eWxlLnNwYWNlV2lkdGgpOwogICAgICAgICAg
ICAgbGluZVN0YXRlLmNvbW1pdEFuZENyZWF0ZVJ1bihsaW5lUnVucyk7CiAgICAgICAgICAgICAv
LyBBbmQgc2tpcCB0aGUgY29sbGFwc2VkIHdoaXRlc3BhY2UuCi0gICAgICAgICAgICBsaW5lU3Rh
dGUuanVtcFRvKGZyYWdtZW50LmVuZCwgbGluZVN0YXRlLndpZHRoKCkgKyBmcmFnbWVudC53aWR0
aCAtIHN0eWxlLnNwYWNlV2lkdGgpOworICAgICAgICAgICAgbGluZVN0YXRlLnJlc2V0TGluZVRv
KGZyYWdtZW50LmVuZCwgbGluZVN0YXRlLndpZHRoKCkgKyBmcmFnbWVudC53aWR0aCAtIHN0eWxl
LnNwYWNlV2lkdGgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGxpbmVTdGF0ZS5hZGRV
bmNvbW1pdHRlZChmcmFnbWVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRlbnRzLmgKaW5kZXggNjQzNThhZi4u
M2UxNzgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRGbG93Q29udGVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZsb3dDb250ZW50cy5oCkBAIC0xMjIsNiArMTIyLDggQEAgaW5saW5lIFVDaGFy
IEZsb3dDb250ZW50czo6Y2hhcmFjdGVyQXQodW5zaWduZWQgcG9zaXRpb24pIGNvbnN0CiAKIGlu
bGluZSBib29sIEZsb3dDb250ZW50czo6aXNMaW5lQnJlYWsodW5zaWduZWQgcG9zaXRpb24pIGNv
bnN0CiB7CisgICAgaWYgKGlzRW5kKHBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiBtX3N0eWxlLnByZXNlcnZlTmV3bGluZSAmJiBjaGFyYWN0ZXJBdChwb3NpdGlv
bikgPT0gJ1xuJzsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245183</attachid>
            <date>2015-01-22 16:38:45 -0800</date>
            <delta_ts>2015-01-22 20:03:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140757-20150122163853.patch</filename>
            <type>text/plain</type>
            <size>7729</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBkNDA2ZWM0ZGU1YTVl
MzljYmY2MTE4MDZhMDQxNTYyZTcxYTIzNy4uM2ZiMjFlNGIxYjFlZjM5ODQ3MGI4Y2RmMzk4NGJm
MmRkYmY1YjZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE1LTAxLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBNb3ZlIGxlYWRpbmcgd2hpdGVzcGFjZSBoYW5kbGluZyBmcm9tIHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpIHRvIGluaXRpYWxpemVOZXdMaW5lKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAgcGF0Y2guCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpwcmVXcmFwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojppbml0aWFsaXplTmV3TGlu
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OkZsb3dDb250ZW50czo6aXNMaW5l
QnJlYWspOgorCisyMDE1LTAxLTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisK
ICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBSZXNldCBMaW5lU3RhdGUgd2hlbiBzdGFydGlu
ZyBhIG5ldyBsaW5lLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQwNzg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1w
bGVMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5
b3V0LmNwcAppbmRleCAwNDdkN2IyZjBiOWI2OGZiZWNhOTc3NWJjNGFiZjJmNzkwYzQwNmFiLi5l
YjdjZGE4ZmYzZmEwOTRkODZjMmEyYjI3YTk0MWM0ZGJkOTE4NDlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCkBAIC0zMTQsNDAgKzMxNCwyOCBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHVuY29taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5n
dGggeyAwIH07CiB9OwogCitzdGF0aWMgYm9vbCBwcmVXcmFwKGNvbnN0IEZsb3dDb250ZW50czo6
U3R5bGUmIHN0eWxlKQoreworICAgIHJldHVybiBzdHlsZS53cmFwTGluZXMgJiYgIXN0eWxlLmNv
bGxhcHNlV2hpdGVzcGFjZTsKK30KKyAgICAKIHN0YXRpYyB2b2lkIHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZShMaW5lU3RhdGUmIGxpbmVTdGF0ZSwgTGF5b3V0OjpSdW5WZWN0b3ImIGxpbmVSdW5z
LCBjb25zdCBGbG93Q29udGVudHMmIGZsb3dDb250ZW50cykKIHsKKyAgICBpZiAoIWxpbmVTdGF0
ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGgpCisgICAgICAgIHJldHVybjsKKyAg
ICAKICAgICBjb25zdCBhdXRvJiBzdHlsZSA9IGZsb3dDb250ZW50cy5zdHlsZSgpOwotICAgIGJv
b2wgcHJlV3JhcCA9IHN0eWxlLndyYXBMaW5lcyAmJiAhc3R5bGUuY29sbGFwc2VXaGl0ZXNwYWNl
OwotICAgIC8vIFRyYWlsaW5nIHdoaXRlc3BhY2UgZ2V0cyByZW1vdmVkIHdoZW4gd2UgZWl0aGVy
IGNvbGxhcHNlIHdoaXRlc3BhY2Ugb3IgcHJlLXdyYXAgaXMgcHJlc2VudC4KLSAgICBpZiAoIShz
dHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgfHwgcHJlV3JhcCkpCisgICAgLy8gUmVtb3ZlIGNvbGxh
cHNlZCB3aGl0ZXNwYWNlLCBvciBub24tY29sbGFwc2VkIHByZS13cmFwIHdoaXRlcHNhY2UsIHVu
bGVzcyBpdCdzIHRoZSBvbmx5IGNvbnRlbnQgb24gdGhlIGxpbmUgLXNvIHJlbW92aW5nIHRoZSB3
aGl0ZXNhcGNlIHdvdWxkIHByb2R1Y2UgYW4gZW1wdHkgbGluZS4KKyAgICBpZiAoIShzdHlsZS5j
b2xsYXBzZVdoaXRlc3BhY2UgfHwgKHByZVdyYXAoc3R5bGUpICYmICFsaW5lU3RhdGUuaGFzV2hp
dGVzcGFjZU9ubHkoKSkpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobGluZVJ1bnMu
c2l6ZSgpKTsKICAgICBSdW4mIGxhc3RSdW4gPSBsaW5lUnVucy5sYXN0KCk7Ci0KLSAgICB1bnNp
Z25lZCBsYXN0UG9zaXRpb24gPSBsaW5lU3RhdGUucG9zaXRpb247Ci0gICAgYm9vbCB0cmFpbGlu
Z1ByZVdyYXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCA9IGZhbHNlOwotICAgIGlmIChwcmVX
cmFwKSB7Ci0gICAgICAgIC8vIFNwZWNpYWwgb3ZlcmZsb3cgcHJlLXdyYXAgZnJhZ21lbnQgaGFu
ZGxpbmc6IElnbm9yZSB0aGUgb3ZlcmZsb3cgd2hpdGVzcGFjZSBmcmFnbWVudCBpZiB3ZSBtYW5h
Z2VkIHRvIGZpdCBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9uIHRoaXMgbGluZS4KLSAgICAgICAg
Ly8gV2hlbiB0aGUgbGluZSBpcyB0b28gc2hvcnQgdG8gZml0IG9uZSBjaGFyYWN0ZXIgKHRob3Vn
aHQgaXQgc3RpbGwgc3RheXMgb24gdGhlIGxpbmUpIHdlIGtlZXAgdGhlIG92ZXJmbG93IHdoaXRl
c3BhY2UgY29udGVudCBhcyBpdCBpcy4KLSAgICAgICAgaWYgKGxpbmVTdGF0ZS5vdmVmbG93ZWRG
cmFnbWVudC50eXBlID09IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50OjpXaGl0ZXNwYWNlICYm
ICFsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQuaXNFbXB0eSgpICYmIGxpbmVTdGF0ZS5hdmFp
bGFibGVXaWR0aCA+PSBsaW5lU3RhdGUuY29tbWl0dGVkV2lkdGgpIHsKLSAgICAgICAgICAgIGxp
bmVTdGF0ZS5wb3NpdGlvbiA9IGxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudC5lbmQ7Ci0gICAg
ICAgICAgICBsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQgPSBGbG93Q29udGVudHM6OlRleHRG
cmFnbWVudCgpOwotICAgICAgICB9Ci0gICAgICAgIC8vIFJlbW92ZSB3aGl0ZXNwYWNlLCB1bmxl
c3MgaXQncyB0aGUgb25seSBmcmFnbWVudCBvbiB0aGUgbGluZSAtc28gcmVtb3ZpbmcgdGhlIHdo
aXRlc2FwY2Ugd291bGQgcHJvZHVjZSBhbiBlbXB0eSBsaW5lLgotICAgICAgICB0cmFpbGluZ1By
ZVdyYXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCA9ICFsaW5lU3RhdGUuaGFzV2hpdGVzcGFj
ZU9ubHkoKTsKLSAgICB9Ci0gICAgaWYgKGxpbmVTdGF0ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRl
c3BhY2VMZW5ndGggJiYgKHN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSB8fCB0cmFpbGluZ1ByZVdy
YXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCkpIHsKLSAgICAgICAgbGFzdFJ1bi5sb2dpY2Fs
UmlnaHQgLT0gbGluZVN0YXRlLmNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoOwotICAg
ICAgICBsYXN0UnVuLmVuZCAtPSBsaW5lU3RhdGUuY29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNwYWNl
TGVuZ3RoOwotICAgICAgICBpZiAobGFzdFJ1bi5zdGFydCA9PSBsYXN0UnVuLmVuZCkKLSAgICAg
ICAgICAgIGxpbmVSdW5zLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgbGluZVN0YXRlLnJlbW92ZVRy
YWlsaW5nV2hpdGVzcGFjZSgpOwotICAgIH0KLQotICAgIC8vIElmIHdlIHNraXBwZWQgYW55IHdo
aXRlc3BhY2UgYW5kIG5vdyB0aGUgbGluZSBlbmQgaXMgYSBoYXJkIG5ld2xpbmUsIHNraXAgdGhl
IG5ld2xpbmUgdG9vIGFzIHdlIGFyZSB3cmFwcGluZyB0aGUgbGluZSBoZXJlIGFscmVhZHkuCi0g
ICAgaWYgKGxhc3RQb3NpdGlvbiAhPSBsaW5lU3RhdGUucG9zaXRpb24gJiYgIWZsb3dDb250ZW50
cy5pc0VuZChsaW5lU3RhdGUucG9zaXRpb24pICYmIGZsb3dDb250ZW50cy5pc0xpbmVCcmVhayhs
aW5lU3RhdGUucG9zaXRpb24pKQotICAgICAgICArK2xpbmVTdGF0ZS5wb3NpdGlvbjsKKyAgICBs
YXN0UnVuLmxvZ2ljYWxSaWdodCAtPSBsaW5lU3RhdGUuY29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGg7CisgICAgbGFzdFJ1bi5lbmQgLT0gbGluZVN0YXRlLmNvbW1pdHRlZFRyYWlsaW5n
V2hpdGVzcGFjZUxlbmd0aDsKKyAgICBpZiAobGFzdFJ1bi5zdGFydCA9PSBsYXN0UnVuLmVuZCkK
KyAgICAgICAgbGluZVJ1bnMucmVtb3ZlTGFzdCgpOworICAgIGxpbmVTdGF0ZS5yZW1vdmVUcmFp
bGluZ1doaXRlc3BhY2UoKTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlTGluZUNvbnN0cmFpbnMo
Y29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93LCBmbG9hdCYgYXZhaWxhYmxlV2lkdGgsIGZsb2F0
JiBsb2dpY2FsTGVmdE9mZnNldCkKQEAgLTM2NSwxOCArMzUzLDMxIEBAIHN0YXRpYyBMaW5lU3Rh
dGUgaW5pdGlhbGl6ZU5ld0xpbmUoY29uc3QgTGluZVN0YXRlJiBwcmV2aW91c0xpbmUsIGNvbnN0
IFJlbmRlckJsCiAgICAgbGluZVN0YXRlLmp1bXBUbyhwcmV2aW91c0xpbmUucG9zaXRpb24sIDAp
OwogICAgIGxpbmVTdGF0ZS5saW5lU3RhcnRSdW5JbmRleCA9IGxpbmVTdGFydFJ1bkluZGV4Owog
ICAgIHVwZGF0ZUxpbmVDb25zdHJhaW5zKGZsb3csIGxpbmVTdGF0ZS5hdmFpbGFibGVXaWR0aCwg
bGluZVN0YXRlLmxvZ2ljYWxMZWZ0T2Zmc2V0KTsKLSAgICAvLyBTa2lwIGxlYWRpbmcgd2hpdGVz
cGFjZSBpZiBjb2xsYXBzaW5nIHdoaXRlc3BhY2UsIHVubGVzcyB0aGVyZSdzIGFuIHVuY29tbWl0
dGVkIGZyYWdtZW50IHB1c2hlZCBmcm9tIHRoZSBwcmV2aW91cyBsaW5lLgotICAgIC8vIEZJWE1F
OiBCZSBzbWFydGVyIHdoZW4gdGhlIHJ1biBmcm9tIHRoZSBwcmV2aW91cyBsaW5lIGRvZXMgbm90
IGZpdCB0aGUgY3VycmVudCBsaW5lLiBSaWdodCBub3csIHdlIGp1c3QgcmVwcm9jZXNzIGl0Lgot
ICAgIGlmIChwcmV2aW91c0xpbmUub3ZlZmxvd2VkRnJhZ21lbnQud2lkdGgpIHsKLSAgICAgICAg
aWYgKGxpbmVTdGF0ZS5maXRzKHByZXZpb3VzTGluZS5vdmVmbG93ZWRGcmFnbWVudC53aWR0aCkp
Ci0gICAgICAgICAgICBsaW5lU3RhdGUuYWRkVW5jb21taXR0ZWQocHJldmlvdXNMaW5lLm92ZWZs
b3dlZEZyYWdtZW50KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBTdGFydCBvdmVy
IHdpdGggdGhpcyBmcmFnbWVudC4KLSAgICAgICAgICAgIGxpbmVTdGF0ZS5qdW1wVG8ocHJldmlv
dXNMaW5lLm92ZWZsb3dlZEZyYWdtZW50LnN0YXJ0LCAwKTsKKworICAgIC8vIEhhbmRsZSBvdmVy
Zmxvd24gZnJhZ21lbnQgZnJvbSBwcmV2aW91cyBsaW5lLgorICAgIEZsb3dDb250ZW50czo6VGV4
dEZyYWdtZW50IG92ZXJmbG93ZWRGcmFnbWVudCA9IHByZXZpb3VzTGluZS5vdmVmbG93ZWRGcmFn
bWVudDsKKyAgICB1bnNpZ25lZCBsaW5lUG9zaXRvbiA9IGxpbmVTdGF0ZS5wb3NpdGlvbjsKKyAg
ICAKKyAgICAvLyBTcGVjaWFsIG92ZXJmbG93IHByZS13cmFwIHdoaXRlc3BhY2UgaGFuZGxpbmc6
IElnbm9yZSB0aGUgb3ZlcmZsb3cgd2hpdGVzcGFjZSBpZiB3ZSBtYW5hZ2VkIHRvIGZpdCBhdCBs
ZWFzdCBvbmUgY2hhcmFjdGVyIG9uIHRoZSBwcmV2aW91cyBsaW5lLgorICAgIC8vIFdoZW4gdGhl
IGxpbmUgaXMgdG9vIHNob3J0IHRvIGZpdCBvbmUgY2hhcmFjdGVyICh0aG91Z2h0IGl0IHN0aWxs
IHN0YXlzIG9uIHRoZSBsaW5lKSB3ZSBjb250aW51ZSB3aXRoIHRoZSBvdmVyZmxvdyB3aGl0ZXNw
YWNlIGNvbnRlbnQgb24gdGhpcyBsaW5lLgorICAgIGlmIChwcmVXcmFwKGZsb3dDb250ZW50cy5z
dHlsZSgpKSAmJiBvdmVyZmxvd2VkRnJhZ21lbnQudHlwZSA9PSBGbG93Q29udGVudHM6OlRleHRG
cmFnbWVudDo6V2hpdGVzcGFjZSkgeworICAgICAgICBpZiAocHJldmlvdXNMaW5lLmF2YWlsYWJs
ZVdpZHRoID49IHByZXZpb3VzTGluZS5jb21taXR0ZWRXaWR0aCkgeworICAgICAgICAgICAgbGlu
ZVBvc2l0b24gPSBvdmVyZmxvd2VkRnJhZ21lbnQuZW5kOworICAgICAgICAgICAgb3ZlcmZsb3dl
ZEZyYWdtZW50ID0gRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQoKTsKKyAgICAgICAgICAgIC8v
IElmIHNraXBwaW5nIHRoZSB3aGl0ZXNwYWNlIHB1dHMgdXMgb24gYSBoYXJkIG5ld2xpbmUsIHNr
aXAgdGhlIG5ld2xpbmUgdG9vIGFzIHdlIGFscmVhZHkgd3JhcHBlZCB0aGUgbGluZS4KKyAgICAg
ICAgICAgIGlmIChmbG93Q29udGVudHMuaXNMaW5lQnJlYWsobGluZVBvc2l0b24pKQorICAgICAg
ICAgICAgICAgICsrbGluZVBvc2l0b247CiAgICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIH0K
KworICAgIGlmIChvdmVyZmxvd2VkRnJhZ21lbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIHVuc2ln
bmVkIHNwYWNlQ291bnQgPSAwOwotICAgICAgICBsaW5lU3RhdGUuanVtcFRvKGZsb3dDb250ZW50
cy5zdHlsZSgpLmNvbGxhcHNlV2hpdGVzcGFjZSA/IGZsb3dDb250ZW50cy5maW5kTmV4dE5vbldo
aXRlc3BhY2VQb3NpdGlvbihwcmV2aW91c0xpbmUucG9zaXRpb24sIHNwYWNlQ291bnQpIDogcHJl
dmlvdXNMaW5lLnBvc2l0aW9uLCAwKTsKKyAgICAgICAgbGluZVN0YXRlLmp1bXBUbyhmbG93Q29u
dGVudHMuc3R5bGUoKS5jb2xsYXBzZVdoaXRlc3BhY2UgPyBmbG93Q29udGVudHMuZmluZE5leHRO
b25XaGl0ZXNwYWNlUG9zaXRpb24obGluZVBvc2l0b24sIHNwYWNlQ291bnQpIDogbGluZVBvc2l0
b24sIDApOworICAgIH0gZWxzZSBpZiAobGluZVN0YXRlLmZpdHMob3ZlcmZsb3dlZEZyYWdtZW50
LndpZHRoKSkKKyAgICAgICAgbGluZVN0YXRlLmFkZFVuY29tbWl0dGVkKG92ZXJmbG93ZWRGcmFn
bWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFN0YXJ0IG92ZXIgd2l0aCB0aGlzIGZyYWdt
ZW50LgorICAgICAgICBsaW5lU3RhdGUuanVtcFRvKG92ZXJmbG93ZWRGcmFnbWVudC5zdGFydCwg
MCk7CiAgICAgfQogICAgIHJldHVybiBsaW5lU3RhdGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaAppbmRleCA2
NDM1OGFmZjVhMDQxNDU1MTA2OTQzMDkyYjZkYjYwMTkxYWNlMzBmLi4zZTE3ODNiMjQ0N2ZlYTQz
NmY5MTViZWMxOGFkNjVjMDk0NTRjNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRlbnRzLmgKQEAgLTEyMiw2ICsxMjIs
OCBAQCBpbmxpbmUgVUNoYXIgRmxvd0NvbnRlbnRzOjpjaGFyYWN0ZXJBdCh1bnNpZ25lZCBwb3Np
dGlvbikgY29uc3QKIAogaW5saW5lIGJvb2wgRmxvd0NvbnRlbnRzOjppc0xpbmVCcmVhayh1bnNp
Z25lZCBwb3NpdGlvbikgY29uc3QKIHsKKyAgICBpZiAoaXNFbmQocG9zaXRpb24pKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIG1fc3R5bGUucHJlc2VydmVOZXdsaW5lICYmIGNo
YXJhY3RlckF0KHBvc2l0aW9uKSA9PSAnXG4nOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245198</attachid>
            <date>2015-01-22 20:03:25 -0800</date>
            <delta_ts>2015-01-22 20:30:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140757-20150122200333.patch</filename>
            <type>text/plain</type>
            <size>8824</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4OTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxYzI3ZmE5MDI3NmUw
NzIwZDliMDViMmIyNzU0YzgyNTYyZDg0MC4uZmZlNTk5M2ZkNzU5NDdjNjQ5NjliMDdiYzZlMTVh
ZTViYWU3OTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBNb3ZlIGxlYWRpbmcgd2hpdGVzcGFjZSBoYW5kbGluZyBmcm9tIHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpIHRvIGluaXRpYWxpemVOZXdMaW5lKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVja2luZyBpZiBvdmVyZmxvd2VkIHByZS13cmFw
IHdoaXRlc3BhY2UgbmVlZHMgdG8gYmUgaWdub3JlZCBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhl
IHRyYWlsaW5nIHdoaXRlc3BhY2UgaGFuZGxpbmcuCisgICAgICAgIE1vdmUgaXQgdG8gaW5pdGlh
bGl6ZU5ld0xpbmUoKS4gCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpwcmVXcmFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUxpbmVMYXlvdXQ6OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVMaW5lTGF5b3V0Ojppbml0aWFsaXplTmV3TGluZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUxpbmVMYXlvdXQ6OkZsb3dDb250ZW50czo6aXNMaW5lQnJlYWspOgorCiAyMDE1LTAxLTIy
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1lZGlh
IGNvbnRyb2xzIGRpc2FwcGVhciB3aGVuIGxvYWRpbmcgYSBITFMgbGl2ZSBzdHJlYW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAppbmRleCAwNDdkN2Iy
ZjBiOWI2OGZiZWNhOTc3NWJjNGFiZjJmNzkwYzQwNmFiLi5iYWIyMDk5NmY0ZTZlNmI2MjlmZGIy
NTZkMDk4ZjM3MDg4ODcyMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXQuY3BwCkBAIC0yMzgsNiArMjM4LDggQEAgc3RydWN0IExpbmVTdGF0ZSB7CiAg
ICAgICAgIGNvbW1pdHRlZExvZ2ljYWxSaWdodCArPSBjb21taXR0ZWRXaWR0aDsKICAgICAgICAg
Y29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSB1bmNvbWl0dGVkVHJhaWxpbmdXaGl0
ZXNwYWNlV2lkdGg7CiAgICAgICAgIGNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9
IHVuY29taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGg7CisgICAgICAgIGlmICghbV9maXJz
dENoYXJhY3RlckZpdHMpCisgICAgICAgICAgICBtX2ZpcnN0Q2hhcmFjdGVyRml0cyA9IHVuY29t
bWl0dGVkU3RhcnQgKyAxID4gdW5jb21taXR0ZWRFbmQgfHwgY29tbWl0dGVkV2lkdGggPD0gYXZh
aWxhYmxlV2lkdGg7CiAKICAgICAgICAgdW5jb21taXR0ZWRTdGFydCA9IHVuY29tbWl0dGVkRW5k
OwogICAgICAgICB1bmNvbW1pdHRlZFdpZHRoID0gMDsKQEAgLTMwNiw2ICszMDgsOSBAQCBzdHJ1
Y3QgTGluZVN0YXRlIHsKICAgICBmbG9hdCBjb21taXR0ZWRMb2dpY2FsUmlnaHQgeyAwIH07IC8v
IExhc3QgY29tbWl0dGVkIFggKGNvb3JkaW5hdGUpIHBvc2l0aW9uLgogICAgIGZsb2F0IGNvbW1p
dHRlZFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoIHsgMCB9OyAvLyBVc2UgdGhpcyB0byByZW1vdmUg
dHJhaWxpbmcgd2hpdGVzcGFjZSB3aXRob3V0IHJlLW1lc3VyaW5nIHRoZSB0ZXh0LgogICAgIHVu
c2lnbmVkIGNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCB7IDAgfTsKKyAgICAvLyBI
YXZpbmcgb25lIGNoYXJhY3RlciBvbiB0aGUgbGluZSBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFu
IGl0IGFjdHVhbGx5IGZpdHMuCisgICAgLy8gRmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBmaXJzdCBm
cmFnbWVudCBtaWdodCBiZSBmb3JjZWQgb24gdG8gdGhlIGN1cnJlbnQgbGluZSBldmVuIGlmIGl0
IGRvZXMgbm90IGZpdC4KKyAgICBib29sIG1fZmlyc3RDaGFyYWN0ZXJGaXRzIHsgZmFsc2UgfTsK
IAogICAgIEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50IG92ZWZsb3dlZEZyYWdtZW50OwogCkBA
IC0zMTQsNDAgKzMxOSwyOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHVuY29taXR0ZWRUcmFp
bGluZ1doaXRlc3BhY2VMZW5ndGggeyAwIH07CiB9OwogCitzdGF0aWMgYm9vbCBwcmVXcmFwKGNv
bnN0IEZsb3dDb250ZW50czo6U3R5bGUmIHN0eWxlKQoreworICAgIHJldHVybiBzdHlsZS53cmFw
TGluZXMgJiYgIXN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZTsKK30KKyAgICAKIHN0YXRpYyB2b2lk
IHJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZShMaW5lU3RhdGUmIGxpbmVTdGF0ZSwgTGF5b3V0OjpS
dW5WZWN0b3ImIGxpbmVSdW5zLCBjb25zdCBGbG93Q29udGVudHMmIGZsb3dDb250ZW50cykKIHsK
KyAgICBpZiAoIWxpbmVTdGF0ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGgpCisg
ICAgICAgIHJldHVybjsKKyAgICAKICAgICBjb25zdCBhdXRvJiBzdHlsZSA9IGZsb3dDb250ZW50
cy5zdHlsZSgpOwotICAgIGJvb2wgcHJlV3JhcCA9IHN0eWxlLndyYXBMaW5lcyAmJiAhc3R5bGUu
Y29sbGFwc2VXaGl0ZXNwYWNlOwotICAgIC8vIFRyYWlsaW5nIHdoaXRlc3BhY2UgZ2V0cyByZW1v
dmVkIHdoZW4gd2UgZWl0aGVyIGNvbGxhcHNlIHdoaXRlc3BhY2Ugb3IgcHJlLXdyYXAgaXMgcHJl
c2VudC4KLSAgICBpZiAoIShzdHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgfHwgcHJlV3JhcCkpCisg
ICAgLy8gUmVtb3ZlIGNvbGxhcHNlZCB3aGl0ZXNwYWNlLCBvciBub24tY29sbGFwc2VkIHByZS13
cmFwIHdoaXRlcHNhY2UsIHVubGVzcyBpdCdzIHRoZSBvbmx5IGNvbnRlbnQgb24gdGhlIGxpbmUg
LXNvIHJlbW92aW5nIHRoZSB3aGl0ZXNhcGNlIHdvdWxkIHByb2R1Y2UgYW4gZW1wdHkgbGluZS4K
KyAgICBpZiAoIShzdHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgfHwgKHByZVdyYXAoc3R5bGUpICYm
ICFsaW5lU3RhdGUuaGFzV2hpdGVzcGFjZU9ubHkoKSkpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQobGluZVJ1bnMuc2l6ZSgpKTsKICAgICBSdW4mIGxhc3RSdW4gPSBsaW5lUnVucy5s
YXN0KCk7Ci0KLSAgICB1bnNpZ25lZCBsYXN0UG9zaXRpb24gPSBsaW5lU3RhdGUucG9zaXRpb247
Ci0gICAgYm9vbCB0cmFpbGluZ1ByZVdyYXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCA9IGZh
bHNlOwotICAgIGlmIChwcmVXcmFwKSB7Ci0gICAgICAgIC8vIFNwZWNpYWwgb3ZlcmZsb3cgcHJl
LXdyYXAgZnJhZ21lbnQgaGFuZGxpbmc6IElnbm9yZSB0aGUgb3ZlcmZsb3cgd2hpdGVzcGFjZSBm
cmFnbWVudCBpZiB3ZSBtYW5hZ2VkIHRvIGZpdCBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9uIHRo
aXMgbGluZS4KLSAgICAgICAgLy8gV2hlbiB0aGUgbGluZSBpcyB0b28gc2hvcnQgdG8gZml0IG9u
ZSBjaGFyYWN0ZXIgKHRob3VnaHQgaXQgc3RpbGwgc3RheXMgb24gdGhlIGxpbmUpIHdlIGtlZXAg
dGhlIG92ZXJmbG93IHdoaXRlc3BhY2UgY29udGVudCBhcyBpdCBpcy4KLSAgICAgICAgaWYgKGxp
bmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudC50eXBlID09IEZsb3dDb250ZW50czo6VGV4dEZyYWdt
ZW50OjpXaGl0ZXNwYWNlICYmICFsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQuaXNFbXB0eSgp
ICYmIGxpbmVTdGF0ZS5hdmFpbGFibGVXaWR0aCA+PSBsaW5lU3RhdGUuY29tbWl0dGVkV2lkdGgp
IHsKLSAgICAgICAgICAgIGxpbmVTdGF0ZS5wb3NpdGlvbiA9IGxpbmVTdGF0ZS5vdmVmbG93ZWRG
cmFnbWVudC5lbmQ7Ci0gICAgICAgICAgICBsaW5lU3RhdGUub3ZlZmxvd2VkRnJhZ21lbnQgPSBG
bG93Q29udGVudHM6OlRleHRGcmFnbWVudCgpOwotICAgICAgICB9Ci0gICAgICAgIC8vIFJlbW92
ZSB3aGl0ZXNwYWNlLCB1bmxlc3MgaXQncyB0aGUgb25seSBmcmFnbWVudCBvbiB0aGUgbGluZSAt
c28gcmVtb3ZpbmcgdGhlIHdoaXRlc2FwY2Ugd291bGQgcHJvZHVjZSBhbiBlbXB0eSBsaW5lLgot
ICAgICAgICB0cmFpbGluZ1ByZVdyYXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCA9ICFsaW5l
U3RhdGUuaGFzV2hpdGVzcGFjZU9ubHkoKTsKLSAgICB9Ci0gICAgaWYgKGxpbmVTdGF0ZS5jb21t
aXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGggJiYgKHN0eWxlLmNvbGxhcHNlV2hpdGVzcGFj
ZSB8fCB0cmFpbGluZ1ByZVdyYXBXaGl0ZXNwYWNlTmVlZHNUb0JlUmVtb3ZlZCkpIHsKLSAgICAg
ICAgbGFzdFJ1bi5sb2dpY2FsUmlnaHQgLT0gbGluZVN0YXRlLmNvbW1pdHRlZFRyYWlsaW5nV2hp
dGVzcGFjZVdpZHRoOwotICAgICAgICBsYXN0UnVuLmVuZCAtPSBsaW5lU3RhdGUuY29tbWl0dGVk
VHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOwotICAgICAgICBpZiAobGFzdFJ1bi5zdGFydCA9PSBs
YXN0UnVuLmVuZCkKLSAgICAgICAgICAgIGxpbmVSdW5zLnJlbW92ZUxhc3QoKTsKLSAgICAgICAg
bGluZVN0YXRlLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwotICAgIH0KLQotICAgIC8vIElm
IHdlIHNraXBwZWQgYW55IHdoaXRlc3BhY2UgYW5kIG5vdyB0aGUgbGluZSBlbmQgaXMgYSBoYXJk
IG5ld2xpbmUsIHNraXAgdGhlIG5ld2xpbmUgdG9vIGFzIHdlIGFyZSB3cmFwcGluZyB0aGUgbGlu
ZSBoZXJlIGFscmVhZHkuCi0gICAgaWYgKGxhc3RQb3NpdGlvbiAhPSBsaW5lU3RhdGUucG9zaXRp
b24gJiYgIWZsb3dDb250ZW50cy5pc0VuZChsaW5lU3RhdGUucG9zaXRpb24pICYmIGZsb3dDb250
ZW50cy5pc0xpbmVCcmVhayhsaW5lU3RhdGUucG9zaXRpb24pKQotICAgICAgICArK2xpbmVTdGF0
ZS5wb3NpdGlvbjsKKyAgICBsYXN0UnVuLmxvZ2ljYWxSaWdodCAtPSBsaW5lU3RhdGUuY29tbWl0
dGVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGg7CisgICAgbGFzdFJ1bi5lbmQgLT0gbGluZVN0YXRl
LmNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aDsKKyAgICBpZiAobGFzdFJ1bi5zdGFy
dCA9PSBsYXN0UnVuLmVuZCkKKyAgICAgICAgbGluZVJ1bnMucmVtb3ZlTGFzdCgpOworICAgIGxp
bmVTdGF0ZS5yZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsKIH0KIAogc3RhdGljIHZvaWQgdXBk
YXRlTGluZUNvbnN0cmFpbnMoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93LCBmbG9hdCYgYXZh
aWxhYmxlV2lkdGgsIGZsb2F0JiBsb2dpY2FsTGVmdE9mZnNldCkKQEAgLTM2NSwxOCArMzU4LDI5
IEBAIHN0YXRpYyBMaW5lU3RhdGUgaW5pdGlhbGl6ZU5ld0xpbmUoY29uc3QgTGluZVN0YXRlJiBw
cmV2aW91c0xpbmUsIGNvbnN0IFJlbmRlckJsCiAgICAgbGluZVN0YXRlLmp1bXBUbyhwcmV2aW91
c0xpbmUucG9zaXRpb24sIDApOwogICAgIGxpbmVTdGF0ZS5saW5lU3RhcnRSdW5JbmRleCA9IGxp
bmVTdGFydFJ1bkluZGV4OwogICAgIHVwZGF0ZUxpbmVDb25zdHJhaW5zKGZsb3csIGxpbmVTdGF0
ZS5hdmFpbGFibGVXaWR0aCwgbGluZVN0YXRlLmxvZ2ljYWxMZWZ0T2Zmc2V0KTsKLSAgICAvLyBT
a2lwIGxlYWRpbmcgd2hpdGVzcGFjZSBpZiBjb2xsYXBzaW5nIHdoaXRlc3BhY2UsIHVubGVzcyB0
aGVyZSdzIGFuIHVuY29tbWl0dGVkIGZyYWdtZW50IHB1c2hlZCBmcm9tIHRoZSBwcmV2aW91cyBs
aW5lLgotICAgIC8vIEZJWE1FOiBCZSBzbWFydGVyIHdoZW4gdGhlIHJ1biBmcm9tIHRoZSBwcmV2
aW91cyBsaW5lIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLiBSaWdodCBub3csIHdlIGp1
c3QgcmVwcm9jZXNzIGl0LgotICAgIGlmIChwcmV2aW91c0xpbmUub3ZlZmxvd2VkRnJhZ21lbnQu
d2lkdGgpIHsKLSAgICAgICAgaWYgKGxpbmVTdGF0ZS5maXRzKHByZXZpb3VzTGluZS5vdmVmbG93
ZWRGcmFnbWVudC53aWR0aCkpCi0gICAgICAgICAgICBsaW5lU3RhdGUuYWRkVW5jb21taXR0ZWQo
cHJldmlvdXNMaW5lLm92ZWZsb3dlZEZyYWdtZW50KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAvLyBTdGFydCBvdmVyIHdpdGggdGhpcyBmcmFnbWVudC4KLSAgICAgICAgICAgIGxpbmVT
dGF0ZS5qdW1wVG8ocHJldmlvdXNMaW5lLm92ZWZsb3dlZEZyYWdtZW50LnN0YXJ0LCAwKTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZSB7CisKKyAgICAvLyBIYW5kbGUgb3ZlcmZsb3dlZCBmcmFnbWVu
dCBmcm9tIHByZXZpb3VzIGxpbmUuCisgICAgYXV0byBvdmVyZmxvd2VkRnJhZ21lbnQgPSBwcmV2
aW91c0xpbmUub3ZlZmxvd2VkRnJhZ21lbnQ7CisgICAgdW5zaWduZWQgbGluZVBvc2l0b24gPSBw
cmV2aW91c0xpbmUucG9zaXRpb247CisgICAgLy8gU3BlY2lhbCBvdmVyZmxvdyBwcmUtd3JhcCB3
aGl0ZXNwYWNlIGhhbmRsaW5nOiBpZ25vcmUgdGhlIG92ZXJmbG93ZWQgd2hpdGVzcGFjZSBpZiB3
ZSBtYW5hZ2VkIHRvIGZpdCBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9uIHRoZSBwcmV2aW91cyBs
aW5lLgorICAgIC8vIFdoZW4gdGhlIGxpbmUgaXMgdG9vIHNob3J0IHRvIGZpdCBvbmUgY2hhcmFj
dGVyICh0aG91Z2h0IGl0IHN0aWxsIHN0YXlzIG9uIHRoZSBsaW5lKSB3ZSBjb250aW51ZSB3aXRo
IHRoZSBvdmVyZmxvdyB3aGl0ZXNwYWNlIGNvbnRlbnQgb24gdGhpcyBsaW5lLgorICAgIGNvbnN0
IGF1dG8mIHN0eWxlID0gZmxvd0NvbnRlbnRzLnN0eWxlKCk7CisgICAgaWYgKG92ZXJmbG93ZWRG
cmFnbWVudC50eXBlID09IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50OjpXaGl0ZXNwYWNlICYm
IHByZVdyYXAoc3R5bGUpICYmIHByZXZpb3VzTGluZS5tX2ZpcnN0Q2hhcmFjdGVyRml0cykgewor
ICAgICAgICBsaW5lUG9zaXRvbiA9IG92ZXJmbG93ZWRGcmFnbWVudC5lbmQ7CisgICAgICAgIG92
ZXJmbG93ZWRGcmFnbWVudCA9IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50KCk7CisgICAgICAg
IC8vIElmIHNraXBwaW5nIHRoZSB3aGl0ZXNwYWNlIHB1dHMgdXMgb24gYSBoYXJkIG5ld2xpbmUs
IHNraXAgdGhlIG5ld2xpbmUgdG9vIGFzIHdlIGFscmVhZHkgd3JhcHBlZCB0aGUgbGluZS4KKyAg
ICAgICAgaWYgKGZsb3dDb250ZW50cy5pc0xpbmVCcmVhayhsaW5lUG9zaXRvbikpCisgICAgICAg
ICAgICArK2xpbmVQb3NpdG9uOworICAgIH0KKworICAgIGlmIChvdmVyZmxvd2VkRnJhZ21lbnQu
aXNFbXB0eSgpKSB7CiAgICAgICAgIHVuc2lnbmVkIHNwYWNlQ291bnQgPSAwOwotICAgICAgICBs
aW5lU3RhdGUuanVtcFRvKGZsb3dDb250ZW50cy5zdHlsZSgpLmNvbGxhcHNlV2hpdGVzcGFjZSA/
IGZsb3dDb250ZW50cy5maW5kTmV4dE5vbldoaXRlc3BhY2VQb3NpdGlvbihwcmV2aW91c0xpbmUu
cG9zaXRpb24sIHNwYWNlQ291bnQpIDogcHJldmlvdXNMaW5lLnBvc2l0aW9uLCAwKTsKKyAgICAg
ICAgbGluZVN0YXRlLmp1bXBUbyhzdHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgPyBmbG93Q29udGVu
dHMuZmluZE5leHROb25XaGl0ZXNwYWNlUG9zaXRpb24obGluZVBvc2l0b24sIHNwYWNlQ291bnQp
IDogbGluZVBvc2l0b24sIDApOworICAgIH0gZWxzZSBpZiAobGluZVN0YXRlLmZpdHMob3ZlcmZs
b3dlZEZyYWdtZW50LndpZHRoKSkKKyAgICAgICAgbGluZVN0YXRlLmFkZFVuY29tbWl0dGVkKG92
ZXJmbG93ZWRGcmFnbWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFN0YXJ0IG92ZXIgd2l0
aCB0aGlzIGZyYWdtZW50LgorICAgICAgICBsaW5lU3RhdGUuanVtcFRvKG92ZXJmbG93ZWRGcmFn
bWVudC5zdGFydCwgMCk7CiAgICAgfQogICAgIHJldHVybiBsaW5lU3RhdGU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVu
dHMuaAppbmRleCA2NDM1OGFmZjVhMDQxNDU1MTA2OTQzMDkyYjZkYjYwMTkxYWNlMzBmLi4zZTE3
ODNiMjQ0N2ZlYTQzNmY5MTViZWMxOGFkNjVjMDk0NTRjNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRlbnRzLmgKQEAg
LTEyMiw2ICsxMjIsOCBAQCBpbmxpbmUgVUNoYXIgRmxvd0NvbnRlbnRzOjpjaGFyYWN0ZXJBdCh1
bnNpZ25lZCBwb3NpdGlvbikgY29uc3QKIAogaW5saW5lIGJvb2wgRmxvd0NvbnRlbnRzOjppc0xp
bmVCcmVhayh1bnNpZ25lZCBwb3NpdGlvbikgY29uc3QKIHsKKyAgICBpZiAoaXNFbmQocG9zaXRp
b24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIG1fc3R5bGUucHJlc2VydmVO
ZXdsaW5lICYmIGNoYXJhY3RlckF0KHBvc2l0aW9uKSA9PSAnXG4nOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245200</attachid>
            <date>2015-01-22 20:31:00 -0800</date>
            <delta_ts>2015-01-22 22:26:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140757-20150122203108.patch</filename>
            <type>text/plain</type>
            <size>8955</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4OTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxYzI3ZmE5MDI3NmUw
NzIwZDliMDViMmIyNzU0YzgyNTYyZDg0MC4uZTVmNjhjZjI2MTA3YzJlNDFhNjMwNWUxZmRjODFm
MmM2NmU0NmRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBNb3ZlIGxlYWRpbmcgd2hpdGVzcGFjZSBoYW5kbGluZyBmcm9tIHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpIHRvIGluaXRpYWxpemVOZXdMaW5lKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBDaGVja2luZyBpZiBvdmVyZmxvd2VkIHByZS13cmFw
IHdoaXRlc3BhY2UgbmVlZHMgdG8gYmUgaWdub3JlZCBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhl
IHRyYWlsaW5nIHdoaXRlc3BhY2UgaGFuZGxpbmcuCisgICAgICAgIE1vdmUgaXQgdG8gaW5pdGlh
bGl6ZU5ld0xpbmUoKS4gCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpwcmVXcmFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUxpbmVMYXlvdXQ6OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVMaW5lTGF5b3V0Ojppbml0aWFsaXplTmV3TGluZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUxpbmVMYXlvdXQ6OkZsb3dDb250ZW50czo6aXNMaW5lQnJlYWspOgorCiAyMDE1LTAxLTIy
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1lZGlh
IGNvbnRyb2xzIGRpc2FwcGVhciB3aGVuIGxvYWRpbmcgYSBITFMgbGl2ZSBzdHJlYW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAppbmRleCAwNDdkN2Iy
ZjBiOWI2OGZiZWNhOTc3NWJjNGFiZjJmNzkwYzQwNmFiLi40MGVmNTg3NDlhYmM4N2I0NDk0MmY5
MmRjODZhMGUyNjI4NDM0NzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXQuY3BwCkBAIC0yMzgsNiArMjM4LDggQEAgc3RydWN0IExpbmVTdGF0ZSB7CiAg
ICAgICAgIGNvbW1pdHRlZExvZ2ljYWxSaWdodCArPSBjb21taXR0ZWRXaWR0aDsKICAgICAgICAg
Y29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSB1bmNvbWl0dGVkVHJhaWxpbmdXaGl0
ZXNwYWNlV2lkdGg7CiAgICAgICAgIGNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9
IHVuY29taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGg7CisgICAgICAgIGlmICghbV9maXJz
dENoYXJhY3RlckZpdHMpCisgICAgICAgICAgICBtX2ZpcnN0Q2hhcmFjdGVyRml0cyA9IHVuY29t
bWl0dGVkU3RhcnQgKyAxID4gdW5jb21taXR0ZWRFbmQgfHwgY29tbWl0dGVkV2lkdGggPD0gYXZh
aWxhYmxlV2lkdGg7CiAKICAgICAgICAgdW5jb21taXR0ZWRTdGFydCA9IHVuY29tbWl0dGVkRW5k
OwogICAgICAgICB1bmNvbW1pdHRlZFdpZHRoID0gMDsKQEAgLTMwNiw2ICszMDgsOSBAQCBzdHJ1
Y3QgTGluZVN0YXRlIHsKICAgICBmbG9hdCBjb21taXR0ZWRMb2dpY2FsUmlnaHQgeyAwIH07IC8v
IExhc3QgY29tbWl0dGVkIFggKGNvb3JkaW5hdGUpIHBvc2l0aW9uLgogICAgIGZsb2F0IGNvbW1p
dHRlZFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoIHsgMCB9OyAvLyBVc2UgdGhpcyB0byByZW1vdmUg
dHJhaWxpbmcgd2hpdGVzcGFjZSB3aXRob3V0IHJlLW1lc3VyaW5nIHRoZSB0ZXh0LgogICAgIHVu
c2lnbmVkIGNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCB7IDAgfTsKKyAgICAvLyBI
YXZpbmcgb25lIGNoYXJhY3RlciBvbiB0aGUgbGluZSBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFu
IGl0IGFjdHVhbGx5IGZpdHMuCisgICAgLy8gRmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBmaXJzdCBm
cmFnbWVudCBtaWdodCBiZSBmb3JjZWQgb24gdG8gdGhlIGN1cnJlbnQgbGluZSBldmVuIGlmIGl0
IGRvZXMgbm90IGZpdC4KKyAgICBib29sIG1fZmlyc3RDaGFyYWN0ZXJGaXRzIHsgZmFsc2UgfTsK
IAogICAgIEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50IG92ZWZsb3dlZEZyYWdtZW50OwogCkBA
IC0zMTQsNDAgKzMxOSwzMiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHVuY29taXR0ZWRUcmFp
bGluZ1doaXRlc3BhY2VMZW5ndGggeyAwIH07CiB9OwogCitzdGF0aWMgYm9vbCBwcmVXcmFwKGNv
bnN0IEZsb3dDb250ZW50czo6U3R5bGUmIHN0eWxlKQoreworICAgIHJldHVybiBzdHlsZS53cmFw
TGluZXMgJiYgIXN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZTsKK30KKyAgICAKIHN0YXRpYyB2b2lk
IHJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZShMaW5lU3RhdGUmIGxpbmVTdGF0ZSwgTGF5b3V0OjpS
dW5WZWN0b3ImIGxpbmVSdW5zLCBjb25zdCBGbG93Q29udGVudHMmIGZsb3dDb250ZW50cykKIHsK
KyAgICBpZiAoIWxpbmVTdGF0ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGgpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBSZW1vdmUgY29sbGFwc2VkIHdoaXRlc3BhY2Us
IG9yIG5vbi1jb2xsYXBzZWQgcHJlLXdyYXAgd2hpdGVzcGFjZSwgdW5sZXNzIGl0J3MgdGhlIG9u
bHkgY29udGVudCBvbiB0aGUgbGluZSAtc28gcmVtb3ZpbmcgdGhlIHdoaXRlc2FwY2Ugd291bGQg
cHJvZHVjZSBhbiBlbXB0eSBsaW5lLgogICAgIGNvbnN0IGF1dG8mIHN0eWxlID0gZmxvd0NvbnRl
bnRzLnN0eWxlKCk7Ci0gICAgYm9vbCBwcmVXcmFwID0gc3R5bGUud3JhcExpbmVzICYmICFzdHls
ZS5jb2xsYXBzZVdoaXRlc3BhY2U7Ci0gICAgLy8gVHJhaWxpbmcgd2hpdGVzcGFjZSBnZXRzIHJl
bW92ZWQgd2hlbiB3ZSBlaXRoZXIgY29sbGFwc2Ugd2hpdGVzcGFjZSBvciBwcmUtd3JhcCBpcyBw
cmVzZW50LgotICAgIGlmICghKHN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSB8fCBwcmVXcmFwKSkK
KyAgICBib29sIGNvbGxhcHNlV2hpdGVzcGFjZSA9IHN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSB8
IHByZVdyYXAoc3R5bGUpOworICAgIGlmICghY29sbGFwc2VXaGl0ZXNwYWNlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAocHJlV3JhcChzdHlsZSkgJiYgbGluZVN0YXRlLmhhc1doaXRlc3Bh
Y2VPbmx5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChsaW5lUnVucy5zaXplKCkp
OwogICAgIFJ1biYgbGFzdFJ1biA9IGxpbmVSdW5zLmxhc3QoKTsKLQotICAgIHVuc2lnbmVkIGxh
c3RQb3NpdGlvbiA9IGxpbmVTdGF0ZS5wb3NpdGlvbjsKLSAgICBib29sIHRyYWlsaW5nUHJlV3Jh
cFdoaXRlc3BhY2VOZWVkc1RvQmVSZW1vdmVkID0gZmFsc2U7Ci0gICAgaWYgKHByZVdyYXApIHsK
LSAgICAgICAgLy8gU3BlY2lhbCBvdmVyZmxvdyBwcmUtd3JhcCBmcmFnbWVudCBoYW5kbGluZzog
SWdub3JlIHRoZSBvdmVyZmxvdyB3aGl0ZXNwYWNlIGZyYWdtZW50IGlmIHdlIG1hbmFnZWQgdG8g
Zml0IGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgb24gdGhpcyBsaW5lLgotICAgICAgICAvLyBXaGVu
IHRoZSBsaW5lIGlzIHRvbyBzaG9ydCB0byBmaXQgb25lIGNoYXJhY3RlciAodGhvdWdodCBpdCBz
dGlsbCBzdGF5cyBvbiB0aGUgbGluZSkgd2Uga2VlcCB0aGUgb3ZlcmZsb3cgd2hpdGVzcGFjZSBj
b250ZW50IGFzIGl0IGlzLgotICAgICAgICBpZiAobGluZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50
LnR5cGUgPT0gRmxvd0NvbnRlbnRzOjpUZXh0RnJhZ21lbnQ6OldoaXRlc3BhY2UgJiYgIWxpbmVT
dGF0ZS5vdmVmbG93ZWRGcmFnbWVudC5pc0VtcHR5KCkgJiYgbGluZVN0YXRlLmF2YWlsYWJsZVdp
ZHRoID49IGxpbmVTdGF0ZS5jb21taXR0ZWRXaWR0aCkgewotICAgICAgICAgICAgbGluZVN0YXRl
LnBvc2l0aW9uID0gbGluZVN0YXRlLm92ZWZsb3dlZEZyYWdtZW50LmVuZDsKLSAgICAgICAgICAg
IGxpbmVTdGF0ZS5vdmVmbG93ZWRGcmFnbWVudCA9IEZsb3dDb250ZW50czo6VGV4dEZyYWdtZW50
KCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gUmVtb3ZlIHdoaXRlc3BhY2UsIHVubGVzcyBpdCdz
IHRoZSBvbmx5IGZyYWdtZW50IG9uIHRoZSBsaW5lIC1zbyByZW1vdmluZyB0aGUgd2hpdGVzYXBj
ZSB3b3VsZCBwcm9kdWNlIGFuIGVtcHR5IGxpbmUuCi0gICAgICAgIHRyYWlsaW5nUHJlV3JhcFdo
aXRlc3BhY2VOZWVkc1RvQmVSZW1vdmVkID0gIWxpbmVTdGF0ZS5oYXNXaGl0ZXNwYWNlT25seSgp
OwotICAgIH0KLSAgICBpZiAobGluZVN0YXRlLmNvbW1pdHRlZFRyYWlsaW5nV2hpdGVzcGFjZUxl
bmd0aCAmJiAoc3R5bGUuY29sbGFwc2VXaGl0ZXNwYWNlIHx8IHRyYWlsaW5nUHJlV3JhcFdoaXRl
c3BhY2VOZWVkc1RvQmVSZW1vdmVkKSkgewotICAgICAgICBsYXN0UnVuLmxvZ2ljYWxSaWdodCAt
PSBsaW5lU3RhdGUuY29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGg7Ci0gICAgICAgIGxh
c3RSdW4uZW5kIC09IGxpbmVTdGF0ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VMZW5ndGg7
Ci0gICAgICAgIGlmIChsYXN0UnVuLnN0YXJ0ID09IGxhc3RSdW4uZW5kKQotICAgICAgICAgICAg
bGluZVJ1bnMucmVtb3ZlTGFzdCgpOwotICAgICAgICBsaW5lU3RhdGUucmVtb3ZlVHJhaWxpbmdX
aGl0ZXNwYWNlKCk7Ci0gICAgfQotCi0gICAgLy8gSWYgd2Ugc2tpcHBlZCBhbnkgd2hpdGVzcGFj
ZSBhbmQgbm93IHRoZSBsaW5lIGVuZCBpcyBhIGhhcmQgbmV3bGluZSwgc2tpcCB0aGUgbmV3bGlu
ZSB0b28gYXMgd2UgYXJlIHdyYXBwaW5nIHRoZSBsaW5lIGhlcmUgYWxyZWFkeS4KLSAgICBpZiAo
bGFzdFBvc2l0aW9uICE9IGxpbmVTdGF0ZS5wb3NpdGlvbiAmJiAhZmxvd0NvbnRlbnRzLmlzRW5k
KGxpbmVTdGF0ZS5wb3NpdGlvbikgJiYgZmxvd0NvbnRlbnRzLmlzTGluZUJyZWFrKGxpbmVTdGF0
ZS5wb3NpdGlvbikpCi0gICAgICAgICsrbGluZVN0YXRlLnBvc2l0aW9uOworICAgIGxhc3RSdW4u
bG9naWNhbFJpZ2h0IC09IGxpbmVTdGF0ZS5jb21taXR0ZWRUcmFpbGluZ1doaXRlc3BhY2VXaWR0
aDsKKyAgICBsYXN0UnVuLmVuZCAtPSBsaW5lU3RhdGUuY29tbWl0dGVkVHJhaWxpbmdXaGl0ZXNw
YWNlTGVuZ3RoOworICAgIGlmIChsYXN0UnVuLnN0YXJ0ID09IGxhc3RSdW4uZW5kKQorICAgICAg
ICBsaW5lUnVucy5yZW1vdmVMYXN0KCk7CisgICAgbGluZVN0YXRlLnJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVMaW5lQ29uc3RyYWlucyhjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmIGZsb3csIGZsb2F0JiBhdmFpbGFibGVXaWR0aCwgZmxvYXQmIGxvZ2lj
YWxMZWZ0T2Zmc2V0KQpAQCAtMzY1LDE5ICszNjIsMzQgQEAgc3RhdGljIExpbmVTdGF0ZSBpbml0
aWFsaXplTmV3TGluZShjb25zdCBMaW5lU3RhdGUmIHByZXZpb3VzTGluZSwgY29uc3QgUmVuZGVy
QmwKICAgICBsaW5lU3RhdGUuanVtcFRvKHByZXZpb3VzTGluZS5wb3NpdGlvbiwgMCk7CiAgICAg
bGluZVN0YXRlLmxpbmVTdGFydFJ1bkluZGV4ID0gbGluZVN0YXJ0UnVuSW5kZXg7CiAgICAgdXBk
YXRlTGluZUNvbnN0cmFpbnMoZmxvdywgbGluZVN0YXRlLmF2YWlsYWJsZVdpZHRoLCBsaW5lU3Rh
dGUubG9naWNhbExlZnRPZmZzZXQpOwotICAgIC8vIFNraXAgbGVhZGluZyB3aGl0ZXNwYWNlIGlm
IGNvbGxhcHNpbmcgd2hpdGVzcGFjZSwgdW5sZXNzIHRoZXJlJ3MgYW4gdW5jb21taXR0ZWQgZnJh
Z21lbnQgcHVzaGVkIGZyb20gdGhlIHByZXZpb3VzIGxpbmUuCi0gICAgLy8gRklYTUU6IEJlIHNt
YXJ0ZXIgd2hlbiB0aGUgcnVuIGZyb20gdGhlIHByZXZpb3VzIGxpbmUgZG9lcyBub3QgZml0IHRo
ZSBjdXJyZW50IGxpbmUuIFJpZ2h0IG5vdywgd2UganVzdCByZXByb2Nlc3MgaXQuCi0gICAgaWYg
KHByZXZpb3VzTGluZS5vdmVmbG93ZWRGcmFnbWVudC53aWR0aCkgewotICAgICAgICBpZiAobGlu
ZVN0YXRlLmZpdHMocHJldmlvdXNMaW5lLm92ZWZsb3dlZEZyYWdtZW50LndpZHRoKSkKLSAgICAg
ICAgICAgIGxpbmVTdGF0ZS5hZGRVbmNvbW1pdHRlZChwcmV2aW91c0xpbmUub3ZlZmxvd2VkRnJh
Z21lbnQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIFN0YXJ0IG92ZXIgd2l0aCB0
aGlzIGZyYWdtZW50LgotICAgICAgICAgICAgbGluZVN0YXRlLmp1bXBUbyhwcmV2aW91c0xpbmUu
b3ZlZmxvd2VkRnJhZ21lbnQuc3RhcnQsIDApOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKwor
ICAgIC8vIEhhbmRsZSBvdmVyZmxvd2VkIGZyYWdtZW50IGZyb20gcHJldmlvdXMgbGluZS4KKyAg
ICBhdXRvIG92ZXJmbG93ZWRGcmFnbWVudCA9IHByZXZpb3VzTGluZS5vdmVmbG93ZWRGcmFnbWVu
dDsKKyAgICB1bnNpZ25lZCBsaW5lUG9zaXRvbiA9IHByZXZpb3VzTGluZS5wb3NpdGlvbjsKKyAg
ICAvLyBTcGVjaWFsIG92ZXJmbG93IHByZS13cmFwIHdoaXRlc3BhY2UgaGFuZGxpbmc6IGlnbm9y
ZSB0aGUgb3ZlcmZsb3dlZCB3aGl0ZXNwYWNlIGlmIHdlIG1hbmFnZWQgdG8gZml0IGF0IGxlYXN0
IG9uZSBjaGFyYWN0ZXIgb24gdGhlIHByZXZpb3VzIGxpbmUuCisgICAgLy8gV2hlbiB0aGUgbGlu
ZSBpcyB0b28gc2hvcnQgdG8gZml0IG9uZSBjaGFyYWN0ZXIgKHRob3VnaHQgaXQgc3RpbGwgc3Rh
eXMgb24gdGhlIGxpbmUpIHdlIGNvbnRpbnVlIHdpdGggdGhlIG92ZXJmbG93IHdoaXRlc3BhY2Ug
Y29udGVudCBvbiB0aGlzIGxpbmUuCisgICAgY29uc3QgYXV0byYgc3R5bGUgPSBmbG93Q29udGVu
dHMuc3R5bGUoKTsKKyAgICBpZiAob3ZlcmZsb3dlZEZyYWdtZW50LnR5cGUgPT0gRmxvd0NvbnRl
bnRzOjpUZXh0RnJhZ21lbnQ6OldoaXRlc3BhY2UgJiYgcHJlV3JhcChzdHlsZSkgJiYgcHJldmlv
dXNMaW5lLm1fZmlyc3RDaGFyYWN0ZXJGaXRzKSB7CisgICAgICAgIGxpbmVQb3NpdG9uID0gb3Zl
cmZsb3dlZEZyYWdtZW50LmVuZDsKKyAgICAgICAgb3ZlcmZsb3dlZEZyYWdtZW50ID0gRmxvd0Nv
bnRlbnRzOjpUZXh0RnJhZ21lbnQoKTsKKyAgICAgICAgLy8gSWYgc2tpcHBpbmcgdGhlIHdoaXRl
c3BhY2UgcHV0cyB1cyBvbiBhIGhhcmQgbmV3bGluZSwgc2tpcCB0aGUgbmV3bGluZSB0b28gYXMg
d2UgYWxyZWFkeSB3cmFwcGVkIHRoZSBsaW5lLgorICAgICAgICBpZiAoZmxvd0NvbnRlbnRzLmlz
TGluZUJyZWFrKGxpbmVQb3NpdG9uKSkKKyAgICAgICAgICAgICsrbGluZVBvc2l0b247CisgICAg
fQorCisgICAgaWYgKG92ZXJmbG93ZWRGcmFnbWVudC5pc0VtcHR5KCkpIHsKICAgICAgICAgdW5z
aWduZWQgc3BhY2VDb3VudCA9IDA7Ci0gICAgICAgIGxpbmVTdGF0ZS5qdW1wVG8oZmxvd0NvbnRl
bnRzLnN0eWxlKCkuY29sbGFwc2VXaGl0ZXNwYWNlID8gZmxvd0NvbnRlbnRzLmZpbmROZXh0Tm9u
V2hpdGVzcGFjZVBvc2l0aW9uKHByZXZpb3VzTGluZS5wb3NpdGlvbiwgc3BhY2VDb3VudCkgOiBw
cmV2aW91c0xpbmUucG9zaXRpb24sIDApOworICAgICAgICBsaW5lU3RhdGUuanVtcFRvKHN0eWxl
LmNvbGxhcHNlV2hpdGVzcGFjZSA/IGZsb3dDb250ZW50cy5maW5kTmV4dE5vbldoaXRlc3BhY2VQ
b3NpdGlvbihsaW5lUG9zaXRvbiwgc3BhY2VDb3VudCkgOiBsaW5lUG9zaXRvbiwgMCk7CisgICAg
ICAgIHJldHVybiBsaW5lU3RhdGU7CisgICAgfQorCisgICAgaWYgKGxpbmVTdGF0ZS5maXRzKG92
ZXJmbG93ZWRGcmFnbWVudC53aWR0aCkpIHsKKyAgICAgICAgbGluZVN0YXRlLmFkZFVuY29tbWl0
dGVkKG92ZXJmbG93ZWRGcmFnbWVudCk7CisgICAgICAgIHJldHVybiBsaW5lU3RhdGU7CiAgICAg
fQorCisgICAgLy8gU3RhcnQgb3ZlciB3aXRoIHRoaXMgZnJhZ21lbnQuCisgICAgbGluZVN0YXRl
Lmp1bXBUbyhvdmVyZmxvd2VkRnJhZ21lbnQuc3RhcnQsIDApOwogICAgIHJldHVybiBsaW5lU3Rh
dGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5l
TGF5b3V0Rmxvd0NvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGlu
ZUxheW91dEZsb3dDb250ZW50cy5oCmluZGV4IDY0MzU4YWZmNWEwNDE0NTUxMDY5NDMwOTJiNmRi
NjAxOTFhY2UzMGYuLjNlMTc4M2IyNDQ3ZmVhNDM2ZjkxNWJlYzE4YWQ2NWMwOTQ1NGM0M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0Nv
bnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRG
bG93Q29udGVudHMuaApAQCAtMTIyLDYgKzEyMiw4IEBAIGlubGluZSBVQ2hhciBGbG93Q29udGVu
dHM6OmNoYXJhY3RlckF0KHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdAogCiBpbmxpbmUgYm9vbCBG
bG93Q29udGVudHM6OmlzTGluZUJyZWFrKHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdAogeworICAg
IGlmIChpc0VuZChwb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bV9zdHlsZS5wcmVzZXJ2ZU5ld2xpbmUgJiYgY2hhcmFjdGVyQXQocG9zaXRpb24pID09ICdcbic7
CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>