<?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>137978</bug_id>
          
          <creation_ts>2014-10-22 12:30:53 -0700</creation_ts>
          <short_desc>Avoid repeated is&lt;MutableStyleProperties&gt;() checks in StyleProperties</short_desc>
          <delta_ts>2014-10-22 14:16:51 -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>CSS</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043528</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 12:30:53 -0700</bug_when>
    <thetext>We can reduce the amount of is&lt;MutableStyleProperties&gt;() checks in StyleProperties by removing the checks in each method of StyleProperties::PropertyReference, and replace them by a single check in StyleProperties::propertyAt().
We can also provide faster propertyCount() / propertyAt() / isEmpty() methods on MutableStyleProperties / ImmutableStyleProperties as a lot of callers use tight typing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043529</commentid>
    <comment_count>1</comment_count>
      <attachid>240290</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 12:38:10 -0700</bug_when>
    <thetext>Created attachment 240290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043536</commentid>
    <comment_count>2</comment_count>
      <attachid>240290</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-10-22 13:27:41 -0700</bug_when>
    <thetext>Comment on attachment 240290
Patch

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

r=me!

&gt; Source/WebCore/css/StyleProperties.cpp:114
&gt; +        for (unsigned i = 0; i &lt; immutableOther.propertyCount(); ++i)

I&apos;d cache the propertyCount() in a local.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043537</commentid>
    <comment_count>3</comment_count>
      <attachid>240290</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 13:28:55 -0700</bug_when>
    <thetext>Comment on attachment 240290
Patch

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

&gt;&gt; Source/WebCore/css/StyleProperties.cpp:114
&gt;&gt; +        for (unsigned i = 0; i &lt; immutableOther.propertyCount(); ++i)
&gt; 
&gt; I&apos;d cache the propertyCount() in a local.

In this case, I don&apos;t think there is a performance impact as it is inlined but OK, it is good practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043538</commentid>
    <comment_count>4</comment_count>
      <attachid>240292</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 13:31:14 -0700</bug_when>
    <thetext>Created attachment 240292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043550</commentid>
    <comment_count>5</comment_count>
      <attachid>240292</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 14:16:46 -0700</bug_when>
    <thetext>Comment on attachment 240292
Patch

Clearing flags on attachment: 240292

Committed r175067: &lt;http://trac.webkit.org/changeset/175067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043551</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 14:16:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240290</attachid>
            <date>2014-10-22 12:38:10 -0700</date>
            <delta_ts>2014-10-22 13:31:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137978-20141022123817.patch</filename>
            <type>text/plain</type>
            <size>11542</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJjMWYwYzM4Y2UwMzYz
NGNkMzE3ZGQxNWNhYmZkZDQxZGFhMjIwNi4uMTA0NTE5NmMyYTBlMzhmZTczYjIxNzNhOGU3OTYz
ZmY3YTIyOGU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTEwLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgcmVwZWF0ZWQgaXM8
TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKSBjaGVja3MgaW4gU3R5bGVQcm9wZXJ0aWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc5NzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdGhlIGFt
b3VudCBvZiBpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigpIGNoZWNrcyBpbgorICAgICAgICBT
dHlsZVByb3BlcnRpZXMgYnk6CisgICAgICAgIC0gUmVtb3ZpbmcgdGhlIGNoZWNrcyBpbiBlYWNo
IG1ldGhvZCBvZiBTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlLAorICAgICAgICAg
IGFuZCByZXBsYWNlIHRoZW0gYnkgYSBzaW5nbGUgY2hlY2sgaW4gU3R5bGVQcm9wZXJ0aWVzOjpw
cm9wZXJ0eUF0KCkuCisgICAgICAgIC0gUHJvdmlkaW5nIGZhc3RlciBwcm9wZXJ0eUNvdW50KCkg
LyBwcm9wZXJ0eUF0KCkgLyBpc0VtcHR5KCkgbWV0aG9kcyBvbgorICAgICAgICAgIE11dGFibGVT
dHlsZVByb3BlcnRpZXMgLyBJbW11dGFibGVTdHlsZVByb3BlcnRpZXMgYXMgYSBsb3Qgb2YgY2Fs
bGVycyB1c2UKKyAgICAgICAgICB0aWdodCB0eXBpbmcuCisgICAgICAgIC0gVXNpbmcgdGlnaHRl
ciB0eXBpbmcgYXQgY2FsbCBzaXRlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICBJZGVh
bGx5LCB3ZSBjb3VsZCBiZSBhYmxlIHRvIHVzZSBpdGVyYXRvcnMgaW5zdGVhZCBvZiBwcm9wZXJ0
eUNvdW50KCkgLworICAgICAgICBwcm9wZXJ0eUF0KCkgYnV0IHRoaXMgaXMgbm90IHRyaXZpYWwg
dG8gZG8gZWZmaWNpZW50bHkgYXMgdGhlCisgICAgICAgIHJlcHJlc2VudGF0aW9uIGluIG1lbW9y
eSBpcyBmdW5kYW1lbnRhbGx5IGRpZmZlcmVudCBmb3IgTXV0YWJsZVN0eWxlUHJvcGVydGllcwor
ICAgICAgICAvIEltbXV0YWJsZVN0eWxlUHJvcGVydGllcy4gV2UgbWF5IGJlIGFibGUgdG8gZG8g
YmV0dGVyIGxvbmdlciB0ZXJtLCBidXQKKyAgICAgICAgdGhpcyBpcyBhbHJlYWR5IG1vcmUgZWZm
aWNpZW50IHNob3J0IHRlcm0gYXQgbGVhc3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBi
ZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6Ok11dGFibGVTdHlsZVByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVy
ZW5jZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6UHJvcGVydHlS
ZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJl
ZmVyZW5jZTo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0
eVJlZmVyZW5jZTo6c2hvcnRoYW5kSUQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0
aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6aXNJbXBvcnRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6aXNJbmhlcml0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6aXNJbXBsaWNp
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNl
Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVm
ZXJlbmNlOjp0b0NTU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGll
czo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6
OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6aXNF
bXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OnByb3Bl
cnR5QXQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6cHJvcGVy
dHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5QXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0eUNvdW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5
TWV0YWRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQ
cm9wZXJ0eVJlZmVyZW5jZTo6cHJvcGVydHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlUHJvcGVydGll
c0luU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0
aWVzSW5FbGVtZW50RGVmYXVsdFN0eWxlKToKKwogMjAxNC0xMC0yMiAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdT
dHJlYW1lciBkZWJ1ZyBidWlsZCBhZnRlciByMTc1MDUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAppbmRleCBjMjgwZDk1MTBlNDgwMGMwZmQ1ZjViYWRkMGRjZjE3NWZlNWZj
NzEzLi5iMWYxMDI0YjNkNDY2YjM5MGY4OGQ3NTkxY2Y5ZDA1YmJkMmYxNzY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTA5LDkgKzEwOSwxMCBAQCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVy
dGllcyYgb3RoZXIpCiAgICAgaWYgKGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG90aGVyKSkK
ICAgICAgICAgbV9wcm9wZXJ0eVZlY3RvciA9IGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRp
ZXM+KG90aGVyKS5tX3Byb3BlcnR5VmVjdG9yOwogICAgIGVsc2UgewotICAgICAgICBtX3Byb3Bl
cnR5VmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkob3RoZXIucHJvcGVydHlDb3VudCgpKTsK
LSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG90aGVyLnByb3BlcnR5Q291bnQoKTsg
KytpKQotICAgICAgICAgICAgbV9wcm9wZXJ0eVZlY3Rvci51bmNoZWNrZWRBcHBlbmQob3RoZXIu
cHJvcGVydHlBdChpKS50b0NTU1Byb3BlcnR5KCkpOworICAgICAgICBjb25zdCBhdXRvJiBpbW11
dGFibGVPdGhlciA9IGRvd25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4ob3RoZXIpOwor
ICAgICAgICBtX3Byb3BlcnR5VmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoaW1tdXRhYmxl
T3RoZXIucHJvcGVydHlDb3VudCgpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGltbXV0YWJsZU90aGVyLnByb3BlcnR5Q291bnQoKTsgKytpKQorICAgICAgICAgICAgbV9wcm9w
ZXJ0eVZlY3Rvci51bmNoZWNrZWRBcHBlbmQoaW1tdXRhYmxlT3RoZXIucHJvcGVydHlBdChpKS50
b0NTU1Byb3BlcnR5KCkpOwogICAgIH0KIH0KIApAQCAtMTI1Nyw3ICsxMjU4LDcgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25zdAogICAg
IFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5hcHBlbmQoY3NzTmFtZSgpKTsKICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKLSAgICByZXN1bHQuYXBwZW5kKHByb3BlcnR5
VmFsdWUoKS0+Y3NzVGV4dCgpKTsKKyAgICByZXN1bHQuYXBwZW5kKG1fdmFsdWUtPmNzc1RleHQo
KSk7CiAgICAgaWYgKGlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuaAppbmRleCA3ZDkyN2M5Y2I0ZDc3NWZmN2M2YjkwNzkyNGRkYmIxZjNh
YzE5OTUyLi5kMWZmNmU3ZGFmYmQ4NDE5NDZhM2ZiMjU4MmM2ZjE3NDYwZGQ5MDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCkBAIC01NSw0MCArNTUsMzYgQEAgcHVibGljOgog
CiAgICAgY2xhc3MgUHJvcGVydHlSZWZlcmVuY2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgUHJv
cGVydHlSZWZlcmVuY2UoY29uc3QgU3R5bGVQcm9wZXJ0aWVzJiBwcm9wZXJ0eVNldCwgdW5zaWdu
ZWQgaW5kZXgpCi0gICAgICAgICAgICA6IG1fcHJvcGVydHlTZXQocHJvcGVydHlTZXQpCi0gICAg
ICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICBQ
cm9wZXJ0eVJlZmVyZW5jZShjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRhdGEmIG1ldGFkYXRhLCBj
b25zdCBDU1NWYWx1ZSogdmFsdWUpCisgICAgICAgICAgICA6IG1fbWV0YWRhdGEobWV0YWRhdGEp
CisgICAgICAgICAgICAsIG1fdmFsdWUodmFsdWUpCisgICAgICAgIHsgfQogCi0gICAgICAgIENT
U1Byb3BlcnR5SUQgaWQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlE
Pihwcm9wZXJ0eU1ldGFkYXRhKCkubV9wcm9wZXJ0eUlEKTsgfQotICAgICAgICBDU1NQcm9wZXJ0
eUlEIHNob3J0aGFuZElEKCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlNZXRhZGF0YSgpLnNob3J0
aGFuZElEKCk7IH0KKyAgICAgICAgQ1NTUHJvcGVydHlJRCBpZCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KG1fbWV0YWRhdGEubV9wcm9wZXJ0eUlEKTsgfQorICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHNob3J0aGFuZElEKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0
YS5zaG9ydGhhbmRJRCgpOyB9CiAKLSAgICAgICAgYm9vbCBpc0ltcG9ydGFudCgpIGNvbnN0IHsg
cmV0dXJuIHByb3BlcnR5TWV0YWRhdGEoKS5tX2ltcG9ydGFudDsgfQotICAgICAgICBib29sIGlz
SW5oZXJpdGVkKCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlNZXRhZGF0YSgpLm1faW5oZXJpdGVk
OyB9Ci0gICAgICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5TWV0
YWRhdGEoKS5tX2ltcGxpY2l0OyB9CisgICAgICAgIGJvb2wgaXNJbXBvcnRhbnQoKSBjb25zdCB7
IHJldHVybiBtX21ldGFkYXRhLm1faW1wb3J0YW50OyB9CisgICAgICAgIGJvb2wgaXNJbmhlcml0
ZWQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLm1faW5oZXJpdGVkOyB9CisgICAgICAgIGJv
b2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEubV9pbXBsaWNpdDsgfQog
CiAgICAgICAgIFN0cmluZyBjc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBjc3NUZXh0
KCkgY29uc3Q7CiAKLSAgICAgICAgY29uc3QgQ1NTVmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gcHJvcGVydHlWYWx1ZSgpOyB9CisgICAgICAgIGNvbnN0IENTU1ZhbHVlKiB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkg
dG8gcmVtb3ZlIHRoaXMgbXV0YWJsZSBvdmVybG9hZC4KLSAgICAgICAgQ1NTVmFsdWUqIHZhbHVl
KCkgeyByZXR1cm4gY29uc3RfY2FzdDxDU1NWYWx1ZSo+KHByb3BlcnR5VmFsdWUoKSk7IH0KKyAg
ICAgICAgQ1NTVmFsdWUqIHZhbHVlKCkgeyByZXR1cm4gY29uc3RfY2FzdDxDU1NWYWx1ZSo+KG1f
dmFsdWUpOyB9CiAKICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzLgotICAgICAgICBDU1NQ
cm9wZXJ0eSB0b0NTU1Byb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gQ1NTUHJvcGVydHkoaWQoKSwg
Y29uc3RfY2FzdDxDU1NWYWx1ZSo+KHByb3BlcnR5VmFsdWUoKSksIGlzSW1wb3J0YW50KCksIHBy
b3BlcnR5TWV0YWRhdGEoKS5tX2lzU2V0RnJvbVNob3J0aGFuZCwgcHJvcGVydHlNZXRhZGF0YSgp
Lm1faW5kZXhJblNob3J0aGFuZHNWZWN0b3IsIGlzSW1wbGljaXQoKSk7IH0KLSAgICAgICAgY29u
c3QgU3R5bGVQcm9wZXJ0eU1ldGFkYXRhJiBwcm9wZXJ0eU1ldGFkYXRhKCkgY29uc3Q7CisgICAg
ICAgIENTU1Byb3BlcnR5IHRvQ1NTUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBDU1NQcm9wZXJ0
eShpZCgpLCBjb25zdF9jYXN0PENTU1ZhbHVlKj4obV92YWx1ZSksIGlzSW1wb3J0YW50KCksIG1f
bWV0YWRhdGEubV9pc1NldEZyb21TaG9ydGhhbmQsIG1fbWV0YWRhdGEubV9pbmRleEluU2hvcnRo
YW5kc1ZlY3RvciwgaXNJbXBsaWNpdCgpKTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgY29u
c3QgQ1NTVmFsdWUqIHByb3BlcnR5VmFsdWUoKSBjb25zdDsKLQotICAgICAgICBjb25zdCBTdHls
ZVByb3BlcnRpZXMmIG1fcHJvcGVydHlTZXQ7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Cisg
ICAgICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSYgbV9tZXRhZGF0YTsKKyAgICAgICAg
Y29uc3QgQ1NTVmFsdWUqIG1fdmFsdWU7CiAgICAgfTsKIAogICAgIHVuc2lnbmVkIHByb3BlcnR5
Q291bnQoKSBjb25zdDsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKLSAgICBQcm9wZXJ0eVJl
ZmVyZW5jZSBwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBQcm9wZXJ0
eVJlZmVyZW5jZSgqdGhpcywgaW5kZXgpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gIXByb3BlcnR5Q291bnQoKTsgfQorICAgIFByb3BlcnR5UmVmZXJlbmNlIHByb3BlcnR5
QXQodW5zaWduZWQpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVy
dHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKQEAgLTE2MSw2ICsxNTcsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWY8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBjcmVhdGUoY29uc3Qg
Q1NTUHJvcGVydHkqIHByb3BlcnRpZXMsIHVuc2lnbmVkIGNvdW50LCBDU1NQYXJzZXJNb2RlKTsK
IAogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6
ZTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFwcm9wZXJ0eUNvdW50KCk7
IH0KKyAgICBQcm9wZXJ0eVJlZmVyZW5jZSBwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25z
dDsKIAogICAgIGNvbnN0IENTU1ZhbHVlKiogdmFsdWVBcnJheSgpIGNvbnN0OwogICAgIGNvbnN0
IFN0eWxlUHJvcGVydHlNZXRhZGF0YSogbWV0YWRhdGFBcnJheSgpIGNvbnN0OwpAQCAtMTkwLDYg
KzE4OCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB+TXV0YWJsZVN0eWxlUHJvcGVy
dGllcygpOwogCiAgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvcGVydHlWZWN0b3Iuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1
cm4gIXByb3BlcnR5Q291bnQoKTsgfQorICAgIFByb3BlcnR5UmVmZXJlbmNlIHByb3BlcnR5QXQo
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogCiAgICAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0
aW9uKiBjc3NTdHlsZURlY2xhcmF0aW9uKCk7CiAKQEAgLTIzNiwzMCArMjM2LDI5IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIFN0eWxlUHJvcGVydGllczsKIH07CiAKLWlubGluZSBjb25z
dCBTdHlsZVByb3BlcnR5TWV0YWRhdGEmIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVu
Y2U6OnByb3BlcnR5TWV0YWRhdGEoKSBjb25zdAoraW5saW5lIEltbXV0YWJsZVN0eWxlUHJvcGVy
dGllczo6UHJvcGVydHlSZWZlcmVuY2UgSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0
eUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIGlmIChpczxNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPihtX3Byb3BlcnR5U2V0KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PE11dGFibGVT
dHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLm1fcHJvcGVydHlWZWN0b3IuYXQobV9pbmRl
eCkubWV0YWRhdGEoKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzPihtX3Byb3BlcnR5U2V0KS5tZXRhZGF0YUFycmF5KClbbV9pbmRleF07CisgICAgcmV0dXJu
IFByb3BlcnR5UmVmZXJlbmNlKG1ldGFkYXRhQXJyYXkoKVtpbmRleF0sIHZhbHVlQXJyYXkoKVtp
bmRleF0pOwogfQogCi1pbmxpbmUgY29uc3QgQ1NTVmFsdWUqIFN0eWxlUHJvcGVydGllczo6UHJv
cGVydHlSZWZlcmVuY2U6OnByb3BlcnR5VmFsdWUoKSBjb25zdAoraW5saW5lIE11dGFibGVTdHls
ZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlIE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnBy
b3BlcnR5QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzPE11dGFibGVTdHls
ZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8TXV0
YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkubV9wcm9wZXJ0eVZlY3Rvci5hdCht
X2luZGV4KS52YWx1ZSgpOwotICAgIHJldHVybiBkb3duY2FzdDxJbW11dGFibGVTdHlsZVByb3Bl
cnRpZXM+KG1fcHJvcGVydHlTZXQpLnZhbHVlQXJyYXkoKVttX2luZGV4XTsKKyAgICBjb25zdCBD
U1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX3Byb3BlcnR5VmVjdG9yW2luZGV4XTsKKyAgICByZXR1
cm4gUHJvcGVydHlSZWZlcmVuY2UocHJvcGVydHkubWV0YWRhdGEoKSwgcHJvcGVydHkudmFsdWUo
KSk7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5Q291bnQo
KSBjb25zdAoraW5saW5lIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2UgU3R5bGVQ
cm9wZXJ0aWVzOjpwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAogewogICAgIGlmIChp
czxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykpCi0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykubV9wcm9wZXJ0eVZlY3Rvci5zaXplKCk7
Ci0gICAgcmV0dXJuIG1fYXJyYXlTaXplOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8TXV0YWJs
ZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpLnByb3BlcnR5QXQoaW5kZXgpOworICAgIHJldHVybiBk
b3duY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5wcm9wZXJ0eUF0KGluZGV4
KTsKIH0KIAotaW5saW5lIGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjppc0VtcHR5KCkgY29uc3QKK2lu
bGluZSB1bnNpZ25lZCBTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5Q291bnQoKSBjb25zdAogewot
ICAgIHJldHVybiAhcHJvcGVydHlDb3VudCgpOworICAgIGlmIChpczxNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPigqdGhpcykpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPigqdGhpcykucHJvcGVydHlDb3VudCgpOworICAgIHJldHVybiBkb3duY2FzdDxJbW11
dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5wcm9wZXJ0eUNvdW50KCk7CiB9CiAKIGlubGlu
ZSB2b2lkIFN0eWxlUHJvcGVydGllczo6ZGVyZWYoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwCmluZGV4IDdmNjFkM2Y5ODZlNDI5NzBlMDcxYWE5YmYxZGQwYzA2NzY2Nzk1
MDEuLmYwZWI0OGI0MzVhYTI5NzU3MjVkZTZiOTcyMTZjYTkzYTYyYThmMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTExNDIsNyArMTE0Miw3IEBAIHZvaWQg
RWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlRnJvbVJ1bGVzRm9yU2VyaWFsaXphdGlvbihTdHlsZWRF
bGVtZW50KiBlbGVtZW50KQogICAgIG1fbXV0YWJsZVN0eWxlLT5tZXJnZUFuZE92ZXJyaWRlT25D
b25mbGljdCgqZnJvbUNvbXB1dGVkU3R5bGUpOwogfQogCi1zdGF0aWMgdm9pZCByZW1vdmVQcm9w
ZXJ0aWVzSW5TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZVRvUmVtb3ZlUHJvcGVy
dGllc0Zyb20sIFN0eWxlUHJvcGVydGllcyogc3R5bGUpCitzdGF0aWMgdm9pZCByZW1vdmVQcm9w
ZXJ0aWVzSW5TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZVRvUmVtb3ZlUHJvcGVy
dGllc0Zyb20sIE11dGFibGVTdHlsZVByb3BlcnRpZXMqIHN0eWxlKQogewogICAgIHVuc2lnbmVk
IHByb3BlcnR5Q291bnQgPSBzdHlsZS0+cHJvcGVydHlDb3VudCgpOwogICAgIFZlY3RvcjxDU1NQ
cm9wZXJ0eUlEPiBwcm9wZXJ0aWVzVG9SZW1vdmUocHJvcGVydHlDb3VudCk7CkBAIC0xMTg4LDcg
KzExODgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERl
ZmF1bHRTdHlsZShFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghbV9tdXRhYmxlU3R5bGUgfHwg
bV9tdXRhYmxlU3R5bGUtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PFN0eWxlUHJvcGVydGllcz4gZGVmYXVsdFN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9y
RWxlbWVudChlbGVtZW50LCBTdHlsZVJlc29sdmVyOjpVQUFuZFVzZXJDU1NSdWxlcyk7CisgICAg
UmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IGRlZmF1bHRTdHlsZSA9IHN0eWxlRnJvbU1h
dGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5bGVSZXNvbHZlcjo6VUFBbmRVc2VyQ1NT
UnVsZXMpOwogCiAgICAgcmVtb3ZlUHJvcGVydGllc0luU3R5bGUobV9tdXRhYmxlU3R5bGUuZ2V0
KCksIGRlZmF1bHRTdHlsZS5nZXQoKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240292</attachid>
            <date>2014-10-22 13:31:14 -0700</date>
            <delta_ts>2014-10-22 14:16:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137978-20141022133120.patch</filename>
            <type>text/plain</type>
            <size>11614</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhYjlhZWUwMTIzYmM1
NmMxNmJhYjU3MDY1NDc0NTk2NmQyNmNhYi4uNmEyY2IzZjMxZjE2ZDhiNDk1M2M1ZWExMDRkNDA4
YTkwNTkyNzAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDE0LTEwLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQXZvaWQgcmVwZWF0ZWQgaXM8
TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKSBjaGVja3MgaW4gU3R5bGVQcm9wZXJ0aWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc5NzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1v
dW50IG9mIGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCkgY2hlY2tzIGluCisgICAgICAgIFN0
eWxlUHJvcGVydGllcyBieToKKyAgICAgICAgLSBSZW1vdmluZyB0aGUgY2hlY2tzIGluIGVhY2gg
bWV0aG9kIG9mIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2UsCisgICAgICAgICAg
YW5kIHJlcGxhY2UgdGhlbSBieSBhIHNpbmdsZSBjaGVjayBpbiBTdHlsZVByb3BlcnRpZXM6OnBy
b3BlcnR5QXQoKS4KKyAgICAgICAgLSBQcm92aWRpbmcgZmFzdGVyIHByb3BlcnR5Q291bnQoKSAv
IHByb3BlcnR5QXQoKSAvIGlzRW1wdHkoKSBtZXRob2RzIG9uCisgICAgICAgICAgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyAvIEltbXV0YWJsZVN0eWxlUHJvcGVydGllcyBhcyBhIGxvdCBvZiBjYWxs
ZXJzIHVzZQorICAgICAgICAgIHRpZ2h0IHR5cGluZy4KKyAgICAgICAgLSBVc2luZyB0aWdodGVy
IHR5cGluZyBhdCBjYWxsIHNpdGVzIHdoZW5ldmVyIHBvc3NpYmxlLgorCisgICAgICAgIElkZWFs
bHksIHdlIGNvdWxkIGJlIGFibGUgdG8gdXNlIGl0ZXJhdG9ycyBpbnN0ZWFkIG9mIHByb3BlcnR5
Q291bnQoKSAvCisgICAgICAgIHByb3BlcnR5QXQoKSBidXQgdGhpcyBpcyBub3QgdHJpdmlhbCB0
byBkbyBlZmZpY2llbnRseSBhcyB0aGUKKyAgICAgICAgcmVwcmVzZW50YXRpb24gaW4gbWVtb3J5
IGlzIGZ1bmRhbWVudGFsbHkgZGlmZmVyZW50IGZvciBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzCisg
ICAgICAgIC8gSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzLiBXZSBtYXkgYmUgYWJsZSB0byBkbyBi
ZXR0ZXIgbG9uZ2VyIHRlcm0sIGJ1dAorICAgICAgICB0aGlzIGlzIGFscmVhZHkgbW9yZSBlZmZp
Y2llbnQgc2hvcnQgdGVybSBhdCBsZWFzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJl
aGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6TXV0YWJsZVN0eWxlUHJvcGVy
dGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJl
bmNlOjpjc3NUZXh0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlOjpQcm9wZXJ0eVJl
ZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVm
ZXJlbmNlOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5
UmVmZXJlbmNlOjpzaG9ydGhhbmRJRCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRp
ZXM6OlByb3BlcnR5UmVmZXJlbmNlOjppc0ltcG9ydGFudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlOjppc0luaGVyaXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlOjppc0ltcGxpY2l0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6
OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZl
cmVuY2U6OnRvQ1NTUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkltbXV0YWJsZVN0eWxlUHJvcGVydGllczo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjppc0Vt
cHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkltbXV0YWJsZVN0eWxlUHJvcGVydGllczo6cHJvcGVy
dHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0
eUF0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6cHJvcGVydHlBdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5Q291bnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6cHJvcGVydHlN
ZXRhZGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlBy
b3BlcnR5UmVmZXJlbmNlOjpwcm9wZXJ0eVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVQcm9wZXJ0aWVz
SW5TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnJlbW92ZVByb3BlcnRp
ZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUpOgorCisyMDE0LTEwLTIyICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW01hY11bV0syXSBGaXggYXBwbGljYXRpb25Jc1Nh
ZmFyaSgpIGRldGVjdGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM3ODkzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5k
ZXggYzI4MGQ5NTEwZTQ4MDBjMGZkNWY1YmFkZDBkY2YxNzVmZTVmYzcxMy4uNDZmOTk4ZWM2MmM5
MDM0YmY1MTBmMzE1MDc1ZTMzOTY1Njk0YWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAKQEAgLTEwOSw5ICsxMDksMTEgQEAgTXV0YWJsZVN0eWxlUHJvcGVydGllczo6
TXV0YWJsZVN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmIG90aGVyKQogICAg
IGlmIChpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihvdGhlcikpCiAgICAgICAgIG1fcHJvcGVy
dHlWZWN0b3IgPSBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihvdGhlcikubV9wcm9w
ZXJ0eVZlY3RvcjsKICAgICBlbHNlIHsKLSAgICAgICAgbV9wcm9wZXJ0eVZlY3Rvci5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KG90aGVyLnByb3BlcnR5Q291bnQoKSk7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBvdGhlci5wcm9wZXJ0eUNvdW50KCk7ICsraSkKLSAgICAgICAgICAg
IG1fcHJvcGVydHlWZWN0b3IudW5jaGVja2VkQXBwZW5kKG90aGVyLnByb3BlcnR5QXQoaSkudG9D
U1NQcm9wZXJ0eSgpKTsKKyAgICAgICAgY29uc3QgYXV0byYgaW1tdXRhYmxlT3RoZXIgPSBkb3du
Y2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KG90aGVyKTsKKyAgICAgICAgdW5zaWduZWQg
cHJvcGVydHlDb3VudCA9IGltbXV0YWJsZU90aGVyLnByb3BlcnR5Q291bnQoKTsKKyAgICAgICAg
bV9wcm9wZXJ0eVZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHByb3BlcnR5Q291bnQpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJvcGVydHlDb3VudDsgKytpKQorICAg
ICAgICAgICAgbV9wcm9wZXJ0eVZlY3Rvci51bmNoZWNrZWRBcHBlbmQoaW1tdXRhYmxlT3RoZXIu
cHJvcGVydHlBdChpKS50b0NTU1Byb3BlcnR5KCkpOwogICAgIH0KIH0KIApAQCAtMTI1Nyw3ICsx
MjU5LDcgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1Rl
eHQoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5hcHBlbmQo
Y3NzTmFtZSgpKTsKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKLSAgICByZXN1bHQu
YXBwZW5kKHByb3BlcnR5VmFsdWUoKS0+Y3NzVGV4dCgpKTsKKyAgICByZXN1bHQuYXBwZW5kKG1f
dmFsdWUtPmNzc1RleHQoKSk7CiAgICAgaWYgKGlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAppbmRleCA3ZDkyN2M5Y2I0ZDc3NWZmN2M2
YjkwNzkyNGRkYmIxZjNhYzE5OTUyLi5kMWZmNmU3ZGFmYmQ4NDE5NDZhM2ZiMjU4MmM2ZjE3NDYw
ZGQ5MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCkBAIC01NSw0MCArNTUs
MzYgQEAgcHVibGljOgogCiAgICAgY2xhc3MgUHJvcGVydHlSZWZlcmVuY2UgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgUHJvcGVydHlSZWZlcmVuY2UoY29uc3QgU3R5bGVQcm9wZXJ0aWVzJiBwcm9w
ZXJ0eVNldCwgdW5zaWduZWQgaW5kZXgpCi0gICAgICAgICAgICA6IG1fcHJvcGVydHlTZXQocHJv
cGVydHlTZXQpCi0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAgICAgIHsKLSAgICAg
ICAgfQorICAgICAgICBQcm9wZXJ0eVJlZmVyZW5jZShjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRh
dGEmIG1ldGFkYXRhLCBjb25zdCBDU1NWYWx1ZSogdmFsdWUpCisgICAgICAgICAgICA6IG1fbWV0
YWRhdGEobWV0YWRhdGEpCisgICAgICAgICAgICAsIG1fdmFsdWUodmFsdWUpCisgICAgICAgIHsg
fQogCi0gICAgICAgIENTU1Byb3BlcnR5SUQgaWQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eU1ldGFkYXRhKCkubV9wcm9wZXJ0eUlEKTsgfQotICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHNob3J0aGFuZElEKCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlN
ZXRhZGF0YSgpLnNob3J0aGFuZElEKCk7IH0KKyAgICAgICAgQ1NTUHJvcGVydHlJRCBpZCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KG1fbWV0YWRhdGEubV9wcm9w
ZXJ0eUlEKTsgfQorICAgICAgICBDU1NQcm9wZXJ0eUlEIHNob3J0aGFuZElEKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXRhZGF0YS5zaG9ydGhhbmRJRCgpOyB9CiAKLSAgICAgICAgYm9vbCBpc0ltcG9y
dGFudCgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5TWV0YWRhdGEoKS5tX2ltcG9ydGFudDsgfQot
ICAgICAgICBib29sIGlzSW5oZXJpdGVkKCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlNZXRhZGF0
YSgpLm1faW5oZXJpdGVkOyB9Ci0gICAgICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0
dXJuIHByb3BlcnR5TWV0YWRhdGEoKS5tX2ltcGxpY2l0OyB9CisgICAgICAgIGJvb2wgaXNJbXBv
cnRhbnQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLm1faW1wb3J0YW50OyB9CisgICAgICAg
IGJvb2wgaXNJbmhlcml0ZWQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLm1faW5oZXJpdGVk
OyB9CisgICAgICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEu
bV9pbXBsaWNpdDsgfQogCiAgICAgICAgIFN0cmluZyBjc3NOYW1lKCkgY29uc3Q7CiAgICAgICAg
IFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgY29uc3QgQ1NTVmFsdWUqIHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlWYWx1ZSgpOyB9CisgICAgICAgIGNvbnN0IENTU1Zh
bHVlKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB0cnkgdG8gcmVtb3ZlIHRoaXMgbXV0YWJsZSBvdmVybG9hZC4KLSAgICAgICAg
Q1NTVmFsdWUqIHZhbHVlKCkgeyByZXR1cm4gY29uc3RfY2FzdDxDU1NWYWx1ZSo+KHByb3BlcnR5
VmFsdWUoKSk7IH0KKyAgICAgICAgQ1NTVmFsdWUqIHZhbHVlKCkgeyByZXR1cm4gY29uc3RfY2Fz
dDxDU1NWYWx1ZSo+KG1fdmFsdWUpOyB9CiAKICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
LgotICAgICAgICBDU1NQcm9wZXJ0eSB0b0NTU1Byb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gQ1NT
UHJvcGVydHkoaWQoKSwgY29uc3RfY2FzdDxDU1NWYWx1ZSo+KHByb3BlcnR5VmFsdWUoKSksIGlz
SW1wb3J0YW50KCksIHByb3BlcnR5TWV0YWRhdGEoKS5tX2lzU2V0RnJvbVNob3J0aGFuZCwgcHJv
cGVydHlNZXRhZGF0YSgpLm1faW5kZXhJblNob3J0aGFuZHNWZWN0b3IsIGlzSW1wbGljaXQoKSk7
IH0KLSAgICAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eU1ldGFkYXRhJiBwcm9wZXJ0eU1ldGFkYXRh
KCkgY29uc3Q7CisgICAgICAgIENTU1Byb3BlcnR5IHRvQ1NTUHJvcGVydHkoKSBjb25zdCB7IHJl
dHVybiBDU1NQcm9wZXJ0eShpZCgpLCBjb25zdF9jYXN0PENTU1ZhbHVlKj4obV92YWx1ZSksIGlz
SW1wb3J0YW50KCksIG1fbWV0YWRhdGEubV9pc1NldEZyb21TaG9ydGhhbmQsIG1fbWV0YWRhdGEu
bV9pbmRleEluU2hvcnRoYW5kc1ZlY3RvciwgaXNJbXBsaWNpdCgpKTsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgY29uc3QgQ1NTVmFsdWUqIHByb3BlcnR5VmFsdWUoKSBjb25zdDsKLQotICAg
ICAgICBjb25zdCBTdHlsZVByb3BlcnRpZXMmIG1fcHJvcGVydHlTZXQ7Ci0gICAgICAgIHVuc2ln
bmVkIG1faW5kZXg7CisgICAgICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSYgbV9tZXRh
ZGF0YTsKKyAgICAgICAgY29uc3QgQ1NTVmFsdWUqIG1fdmFsdWU7CiAgICAgfTsKIAogICAgIHVu
c2lnbmVkIHByb3BlcnR5Q291bnQoKSBjb25zdDsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
LSAgICBQcm9wZXJ0eVJlZmVyZW5jZSBwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7
IHJldHVybiBQcm9wZXJ0eVJlZmVyZW5jZSgqdGhpcywgaW5kZXgpOyB9CisgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gIXByb3BlcnR5Q291bnQoKTsgfQorICAgIFByb3BlcnR5UmVm
ZXJlbmNlIHByb3BlcnR5QXQodW5zaWduZWQpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBTdHJp
bmcgZ2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKQEAgLTE2MSw2ICsxNTcs
OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWY8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
PiBjcmVhdGUoY29uc3QgQ1NTUHJvcGVydHkqIHByb3BlcnRpZXMsIHVuc2lnbmVkIGNvdW50LCBD
U1NQYXJzZXJNb2RlKTsKIAogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQoKSBjb25zdCB7IHJl
dHVybiBtX2FycmF5U2l6ZTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFw
cm9wZXJ0eUNvdW50KCk7IH0KKyAgICBQcm9wZXJ0eVJlZmVyZW5jZSBwcm9wZXJ0eUF0KHVuc2ln
bmVkIGluZGV4KSBjb25zdDsKIAogICAgIGNvbnN0IENTU1ZhbHVlKiogdmFsdWVBcnJheSgpIGNv
bnN0OwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSogbWV0YWRhdGFBcnJheSgpIGNv
bnN0OwpAQCAtMTkwLDYgKzE4OCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB+TXV0
YWJsZVN0eWxlUHJvcGVydGllcygpOwogCiAgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvcGVydHlWZWN0b3Iuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gIXByb3BlcnR5Q291bnQoKTsgfQorICAgIFByb3BlcnR5UmVmZXJl
bmNlIHByb3BlcnR5QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwogCiAgICAgUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uKiBjc3NTdHlsZURlY2xhcmF0aW9uKCk7CiAKQEAgLTIzNiwzMCAr
MjM2LDI5IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFN0eWxlUHJvcGVydGllczsKIH07
CiAKLWlubGluZSBjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRhdGEmIFN0eWxlUHJvcGVydGllczo6
UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0YWRhdGEoKSBjb25zdAoraW5saW5lIEltbXV0
YWJsZVN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2UgSW1tdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzOjpwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIGlmIChpczxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnR5U2V0KSkKLSAgICAgICAgcmV0dXJuIGRv
d25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLm1fcHJvcGVydHlW
ZWN0b3IuYXQobV9pbmRleCkubWV0YWRhdGEoKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnR5U2V0KS5tZXRhZGF0YUFycmF5KClbbV9pbmRl
eF07CisgICAgcmV0dXJuIFByb3BlcnR5UmVmZXJlbmNlKG1ldGFkYXRhQXJyYXkoKVtpbmRleF0s
IHZhbHVlQXJyYXkoKVtpbmRleF0pOwogfQogCi1pbmxpbmUgY29uc3QgQ1NTVmFsdWUqIFN0eWxl
UHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5VmFsdWUoKSBjb25zdAoraW5s
aW5lIE11dGFibGVTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlIE11dGFibGVTdHls
ZVByb3BlcnRpZXM6OnByb3BlcnR5QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0gICAgaWYg
KGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpKQotICAgICAgICByZXR1
cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkubV9wcm9w
ZXJ0eVZlY3Rvci5hdChtX2luZGV4KS52YWx1ZSgpOwotICAgIHJldHVybiBkb3duY2FzdDxJbW11
dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLnZhbHVlQXJyYXkoKVttX2luZGV4
XTsKKyAgICBjb25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX3Byb3BlcnR5VmVjdG9yW2lu
ZGV4XTsKKyAgICByZXR1cm4gUHJvcGVydHlSZWZlcmVuY2UocHJvcGVydHkubWV0YWRhdGEoKSwg
cHJvcGVydHkudmFsdWUoKSk7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBTdHlsZVByb3BlcnRpZXM6
OnByb3BlcnR5Q291bnQoKSBjb25zdAoraW5saW5lIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlS
ZWZlcmVuY2UgU3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0eUF0KHVuc2lnbmVkIGluZGV4KSBjb25z
dAogewogICAgIGlmIChpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykpCi0gICAgICAg
IHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykubV9wcm9wZXJ0
eVZlY3Rvci5zaXplKCk7Ci0gICAgcmV0dXJuIG1fYXJyYXlTaXplOworICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpLnByb3BlcnR5QXQoaW5kZXgp
OworICAgIHJldHVybiBkb3duY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5w
cm9wZXJ0eUF0KGluZGV4KTsKIH0KIAotaW5saW5lIGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjppc0Vt
cHR5KCkgY29uc3QKK2lubGluZSB1bnNpZ25lZCBTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5Q291
bnQoKSBjb25zdAogewotICAgIHJldHVybiAhcHJvcGVydHlDb3VudCgpOworICAgIGlmIChpczxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykucHJvcGVydHlDb3VudCgpOworICAgIHJldHVy
biBkb3duY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5wcm9wZXJ0eUNvdW50
KCk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlUHJvcGVydGllczo6ZGVyZWYoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDdmNjFkM2Y5ODZlNDI5NzBlMDcxYWE5
YmYxZGQwYzA2NzY2Nzk1MDEuLmYwZWI0OGI0MzVhYTI5NzU3MjVkZTZiOTcyMTZjYTkzYTYyYThm
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTExNDIsNyAr
MTE0Miw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlRnJvbVJ1bGVzRm9yU2VyaWFs
aXphdGlvbihTdHlsZWRFbGVtZW50KiBlbGVtZW50KQogICAgIG1fbXV0YWJsZVN0eWxlLT5tZXJn
ZUFuZE92ZXJyaWRlT25Db25mbGljdCgqZnJvbUNvbXB1dGVkU3R5bGUpOwogfQogCi1zdGF0aWMg
dm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBzdHls
ZVRvUmVtb3ZlUHJvcGVydGllc0Zyb20sIFN0eWxlUHJvcGVydGllcyogc3R5bGUpCitzdGF0aWMg
dm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBzdHls
ZVRvUmVtb3ZlUHJvcGVydGllc0Zyb20sIE11dGFibGVTdHlsZVByb3BlcnRpZXMqIHN0eWxlKQog
ewogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBzdHlsZS0+cHJvcGVydHlDb3VudCgpOwog
ICAgIFZlY3RvcjxDU1NQcm9wZXJ0eUlEPiBwcm9wZXJ0aWVzVG9SZW1vdmUocHJvcGVydHlDb3Vu
dCk7CkBAIC0xMTg4LDcgKzExODgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVy
dGllc0luRWxlbWVudERlZmF1bHRTdHlsZShFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghbV9t
dXRhYmxlU3R5bGUgfHwgbV9tdXRhYmxlU3R5bGUtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4gZGVmYXVsdFN0eWxlID0gc3R5bGVGcm9t
TWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBTdHlsZVJlc29sdmVyOjpVQUFuZFVzZXJD
U1NSdWxlcyk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IGRlZmF1bHRTdHls
ZSA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5bGVSZXNvbHZl
cjo6VUFBbmRVc2VyQ1NTUnVsZXMpOwogCiAgICAgcmVtb3ZlUHJvcGVydGllc0luU3R5bGUobV9t
dXRhYmxlU3R5bGUuZ2V0KCksIGRlZmF1bHRTdHlsZS5nZXQoKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>