<?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>137398</bug_id>
          
          <creation_ts>2014-10-03 13:03:12 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for CSS StyleProperties</short_desc>
          <delta_ts>2014-10-04 01:30:24 -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>
          <dependson>137056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039302</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-03 13:03:12 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for CSS StyleProperties subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039315</commentid>
    <comment_count>1</comment_count>
      <attachid>239223</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-03 13:25:25 -0700</bug_when>
    <thetext>Created attachment 239223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039416</commentid>
    <comment_count>2</comment_count>
      <attachid>239255</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-03 16:55:34 -0700</bug_when>
    <thetext>Created attachment 239255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039445</commentid>
    <comment_count>3</comment_count>
      <attachid>239255</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-03 21:04:35 -0700</bug_when>
    <thetext>Comment on attachment 239255
Patch

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

&gt; Source/WebCore/css/StyleProperties.h:286
&gt; +    static bool isType(const WebCore::StyleProperties&amp; set) { return set.isMutable(); }

Never noticed that before, but those functions aren&apos;t const...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039475</commentid>
    <comment_count>4</comment_count>
      <attachid>239255</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-04 00:52:15 -0700</bug_when>
    <thetext>Comment on attachment 239255
Patch

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

&gt;&gt; Source/WebCore/css/StyleProperties.h:286
&gt;&gt; +    static bool isType(const WebCore::StyleProperties&amp; set) { return set.isMutable(); }
&gt; 
&gt; Never noticed that before, but those functions aren&apos;t const...

they are static</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039480</commentid>
    <comment_count>5</comment_count>
      <attachid>239255</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-04 01:30:20 -0700</bug_when>
    <thetext>Comment on attachment 239255
Patch

Clearing flags on attachment: 239255

Committed r174313: &lt;http://trac.webkit.org/changeset/174313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039481</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-04 01:30:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239223</attachid>
            <date>2014-10-03 13:25:25 -0700</date>
            <delta_ts>2014-10-03 16:55:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137398-20141003132526.patch</filename>
            <type>text/plain</type>
            <size>12358</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFkM2ZjNTA0YzM1Nzk4
MWMwNWNjOWQ3NDljYjQzY2Q4MmE1NGU5Ni4uM2ExZDUyYzkzYzlhZjI5ZGU4MjY1ZTI0ZDFkYjgz
NjcxYTJhZDViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTEwLTAzICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDU1MgU3R5bGVQcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczOTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZv
ciBDU1MgU3R5bGVQcm9wZXJ0aWVzIHN1YmNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6aW1tdXRhYmxlQ29weUlmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6Ok11dGFibGVT
dHlsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpoYXND
U1NPTVdyYXBwZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0
YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVy
ZW5jZTo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6
OnByb3BlcnR5Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpkZXJl
Zik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmZpbmRQcm9wZXJ0eUluZGV4
KToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp0b011dGFibGVTdHlsZVBy
b3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9JbW11dGFibGVTdHlsZVBy
b3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJ1bGVQYWdlOjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAqIGNzcy9X
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFt
ZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21T
dHJpbmcpOgorCiAyMDE0LTEwLTAzIEJlYXIgVHJhdmlzIDxiZXRyYXZpc0BhZG9iZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjE3MzUzMSk6IFVzZSBhZnRlciBmcmVlIGluIFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpmb250TWV0cmljcyAvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IDZkMmZkY2UyMWRmMTZlZWMxZDUwZDI2NTVlYjQwYzQ1MDk5YmQyYjIuLjlk
MjkyOGZjMTE2ZDhiOTVlYzRiNGMyYzIyZWQ5MGI3M2VlZjQyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC02MSw5ICs2MSw5IEBAIFBhc3NSZWY8SW1tdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzPiBJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShjb25zdCBD
U1NQcm9wCiAKIFBhc3NSZWY8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBTdHlsZVByb3BlcnRp
ZXM6OmltbXV0YWJsZUNvcHlJZk5lZWRlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc011dGFibGUo
KSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcyY+
KGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0aWVzJj4oKnRoaXMpKTsKLSAgICBjb25zdCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJiBtdXRhYmxlVGhpcyA9IHN0YXRpY19jYXN0PGNvbnN0IE11dGFibGVT
dHlsZVByb3BlcnRpZXMmPigqdGhpcyk7CisgICAgaWYgKGlzPEltbXV0YWJsZVN0eWxlUHJvcGVy
dGllcz4oKnRoaXMpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPihjb25zdF9jYXN0PFN0eWxlUHJvcGVydGllcyY+KCp0aGlzKSk7CisgICAgY29uc3Qg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYgbXV0YWJsZVRoaXMgPSBkb3duY2FzdDxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzPigqdGhpcyk7CiAgICAgcmV0dXJuIEltbXV0YWJsZVN0eWxlUHJvcGVydGll
czo6Y3JlYXRlKG11dGFibGVUaGlzLm1fcHJvcGVydHlWZWN0b3IuZGF0YSgpLCBtdXRhYmxlVGhp
cy5tX3Byb3BlcnR5VmVjdG9yLnNpemUoKSwgY3NzUGFyc2VyTW9kZSgpKTsKIH0KIApAQCAtMTA2
LDggKzEwNiw4IEBAIEltbXV0YWJsZVN0eWxlUHJvcGVydGllczo6fkltbXV0YWJsZVN0eWxlUHJv
cGVydGllcygpCiBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
KGNvbnN0IFN0eWxlUHJvcGVydGllcyYgb3RoZXIpCiAgICAgOiBTdHlsZVByb3BlcnRpZXMob3Ro
ZXIuY3NzUGFyc2VyTW9kZSgpKQogewotICAgIGlmIChvdGhlci5pc011dGFibGUoKSkKLSAgICAg
ICAgbV9wcm9wZXJ0eVZlY3RvciA9IHN0YXRpY19jYXN0PGNvbnN0IE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmPihvdGhlcikubV9wcm9wZXJ0eVZlY3RvcjsKKyAgICBpZiAoaXM8TXV0YWJsZVN0eWxl
UHJvcGVydGllcz4ob3RoZXIpKQorICAgICAgICBtX3Byb3BlcnR5VmVjdG9yID0gZG93bmNhc3Q8
TXV0YWJsZVN0eWxlUHJvcGVydGllcz4ob3RoZXIpLm1fcHJvcGVydHlWZWN0b3I7CiAgICAgZWxz
ZSB7CiAgICAgICAgIG1fcHJvcGVydHlWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShvdGhl
ci5wcm9wZXJ0eUNvdW50KCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb3Ro
ZXIucHJvcGVydHlDb3VudCgpOyArK2kpCkBAIC0xMDI4LDcgKzEwMjgsNyBAQCBTdHJpbmcgU3R5
bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogCiBib29sIFN0eWxlUHJvcGVydGllczo6aGFz
Q1NTT01XcmFwcGVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pc011dGFibGUgJiYgc3RhdGlj
X2Nhc3Q8Y29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyo+KHRoaXMpLT5tX2Nzc29tV3JhcHBl
cjsKKyAgICByZXR1cm4gaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpICYmIGRvd25j
YXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5tX2Nzc29tV3JhcHBlcjsKIH0KIAog
dm9pZCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjptZXJnZUFuZE92ZXJyaWRlT25Db25mbGljdChj
b25zdCBTdHlsZVByb3BlcnRpZXMmIG90aGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5oCmluZGV4IDkyMDZkYzk0YWM5OGJiMDA2ZGJiNmQ5NGIxYjNmNGJlNTgxNDdhZDMuLjdkOTI3
YzljYjRkNzc1ZmY3YzZiOTA3OTI0ZGRiYjFmM2FjMTk5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIzNSwzOCArMjM2LDI0IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIFN0eWxlUHJvcGVydGllczsKIH07CiAKLVRZUEVfQ0FTVFNf
QkFTRShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzLCBTdHlsZVByb3BlcnRpZXMsIHNldCwgc2V0LT5p
c011dGFibGUoKSwgc2V0LmlzTXV0YWJsZSgpKTsKLQotaW5saW5lIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMqIHRvTXV0YWJsZVN0eWxlUHJvcGVydGllcyhjb25zdCBSZWZQdHI8U3R5bGVQcm9wZXJ0
aWVzPiYgc2V0KQotewotICAgIHJldHVybiB0b011dGFibGVTdHlsZVByb3BlcnRpZXMoc2V0Lmdl
dCgpKTsKLX0KLQotVFlQRV9DQVNUU19CQVNFKEltbXV0YWJsZVN0eWxlUHJvcGVydGllcywgU3R5
bGVQcm9wZXJ0aWVzLCBzZXQsICFzZXQtPmlzTXV0YWJsZSgpLCAhc2V0LmlzTXV0YWJsZSgpKTsK
LQotaW5saW5lIEltbXV0YWJsZVN0eWxlUHJvcGVydGllcyogdG9JbW11dGFibGVTdHlsZVByb3Bl
cnRpZXMoY29uc3QgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4mIHNldCkKLXsKLSAgICByZXR1cm4g
dG9JbW11dGFibGVTdHlsZVByb3BlcnRpZXMoc2V0LmdldCgpKTsKLX0KLQogaW5saW5lIGNvbnN0
IFN0eWxlUHJvcGVydHlNZXRhZGF0YSYgU3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5j
ZTo6cHJvcGVydHlNZXRhZGF0YSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcHJvcGVydHlTZXQuaXNN
dXRhYmxlKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJj4obV9wcm9wZXJ0eVNldCkubV9wcm9wZXJ0eVZlY3Rvci5hdChtX2luZGV4KS5t
ZXRhZGF0YSgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJbW11dGFibGVTdHlsZVBy
b3BlcnRpZXMmPihtX3Byb3BlcnR5U2V0KS5tZXRhZGF0YUFycmF5KClbbV9pbmRleF07CisgICAg
aWYgKGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpKQorICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkubV9w
cm9wZXJ0eVZlY3Rvci5hdChtX2luZGV4KS5tZXRhZGF0YSgpOworICAgIHJldHVybiBkb3duY2Fz
dDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLm1ldGFkYXRhQXJyYXko
KVttX2luZGV4XTsKIH0KIAogaW5saW5lIGNvbnN0IENTU1ZhbHVlKiBTdHlsZVByb3BlcnRpZXM6
OlByb3BlcnR5UmVmZXJlbmNlOjpwcm9wZXJ0eVZhbHVlKCkgY29uc3QKIHsKLSAgICBpZiAobV9w
cm9wZXJ0eVNldC5pc011dGFibGUoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmPihtX3Byb3BlcnR5U2V0KS5tX3Byb3BlcnR5VmVjdG9y
LmF0KG1faW5kZXgpLnZhbHVlKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEltbXV0
YWJsZVN0eWxlUHJvcGVydGllcyY+KG1fcHJvcGVydHlTZXQpLnZhbHVlQXJyYXkoKVttX2luZGV4
XTsKKyAgICBpZiAoaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnR5
U2V0KS5tX3Byb3BlcnR5VmVjdG9yLmF0KG1faW5kZXgpLnZhbHVlKCk7CisgICAgcmV0dXJuIGRv
d25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkudmFsdWVBcnJh
eSgpW21faW5kZXhdOwogfQogCiBpbmxpbmUgdW5zaWduZWQgU3R5bGVQcm9wZXJ0aWVzOjpwcm9w
ZXJ0eUNvdW50KCkgY29uc3QKIHsKLSAgICBpZiAobV9pc011dGFibGUpCi0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKj4odGhpcyktPm1fcHJv
cGVydHlWZWN0b3Iuc2l6ZSgpOworICAgIGlmIChpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigq
dGhpcykpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigq
dGhpcykubV9wcm9wZXJ0eVZlY3Rvci5zaXplKCk7CiAgICAgcmV0dXJuIG1fYXJyYXlTaXplOwog
fQogCkBAIC0yODAsMTkgKzI2NywyNyBAQCBpbmxpbmUgdm9pZCBTdHlsZVByb3BlcnRpZXM6OmRl
cmVmKCkKICAgICBpZiAoIWRlcmVmQmFzZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
bV9pc011dGFibGUpCi0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzKj4odGhpcyk7CisgICAgaWYgKGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlz
KSkKKyAgICAgICAgZGVsZXRlIGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KHRoaXMp
OwogICAgIGVsc2UKLSAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEltbXV0YWJsZVN0eWxlUHJv
cGVydGllcyo+KHRoaXMpOworICAgICAgICBkZWxldGUgZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzPih0aGlzKTsKIH0KIAogaW5saW5lIGludCBTdHlsZVByb3BlcnRpZXM6OmZpbmRQ
cm9wZXJ0eUluZGV4KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICBpZiAo
bV9pc011dGFibGUpCi0gICAgICAgIHJldHVybiB0b011dGFibGVTdHlsZVByb3BlcnRpZXModGhp
cyktPmZpbmRQcm9wZXJ0eUluZGV4KHByb3BlcnR5SUQpOwotICAgIHJldHVybiB0b0ltbXV0YWJs
ZVN0eWxlUHJvcGVydGllcyh0aGlzKS0+ZmluZFByb3BlcnR5SW5kZXgocHJvcGVydHlJRCk7Cisg
ICAgaWYgKGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
IGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5maW5kUHJvcGVydHlJbmRl
eChwcm9wZXJ0eUlEKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzPigqdGhpcykuZmluZFByb3BlcnR5SW5kZXgocHJvcGVydHlJRCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJD
b3JlOjpTdHlsZVByb3BlcnRpZXMmIHNldCkgeyByZXR1cm4gc2V0LmlzTXV0YWJsZSgpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oV2ViQ29yZTo6SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKQorICAgIHN0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXMmIHNldCkgeyByZXR1cm4gIXNldC5p
c011dGFibGUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYgLy8g
U3R5bGVQcm9wZXJ0aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5kZXggOTljNDJlYWIz
YzE2OGEzNTljZWZmZDhmMGE3MzhhNThkNTE4ZTMwMy4uMWNmYzgzNDNiNzI1MDg0MjJmYzczNGFj
MzA4MWY1YmYzY2MzMGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTIyMCw5ICsy
MjAsOSBAQCBTdHlsZVJ1bGU6On5TdHlsZVJ1bGUoKQogCiBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JiBTdHlsZVJ1bGU6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKLSAgICBpZiAoIW1fcHJvcGVydGll
cy0+aXNNdXRhYmxlKCkpCisgICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3By
b3BlcnRpZXMuZ2V0KCkpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11
dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnRp
ZXMmPihtX3Byb3BlcnRpZXMuZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiBQYXNzUmVmPFN0eWxlUnVs
ZT4gU3R5bGVSdWxlOjpjcmVhdGUoaW50IHNvdXJjZUxpbmUsIGNvbnN0IFZlY3Rvcjxjb25zdCBD
U1NTZWxlY3Rvcio+JiBzZWxlY3RvcnMsIFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0
aWVzKQpAQCAtMjgyLDkgKzI4Miw5IEBAIFN0eWxlUnVsZVBhZ2U6On5TdHlsZVJ1bGVQYWdlKCkK
IAogTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRp
ZXMoKQogewotICAgIGlmICghbV9wcm9wZXJ0aWVzLT5pc011dGFibGUoKSkKKyAgICBpZiAoIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcy5nZXQoKSkpCiAgICAgICAgIG1f
cHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcyY+KG1fcHJvcGVydGllcy5nZXQoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcy5n
ZXQoKSk7CiB9CiAKIFN0eWxlUnVsZUZvbnRGYWNlOjpTdHlsZVJ1bGVGb250RmFjZShQYXNzUmVm
PFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllcykKQEAgLTMwNSw5ICszMDUsOSBAQCBTdHlsZVJ1
bGVGb250RmFjZTo6flN0eWxlUnVsZUZvbnRGYWNlKCkKIAogTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgU3R5bGVSdWxlRm9udEZhY2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKLSAgICBpZiAoIW1f
cHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCisgICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3Bl
cnRpZXMtPm11dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE11dGFibGVTdHls
ZVByb3BlcnRpZXMmPihtX3Byb3BlcnRpZXMuZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiBTdHlsZVJ1
bGVHcm91cDo6U3R5bGVSdWxlR3JvdXAoVHlwZSB0eXBlLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVs
ZUJhc2U+PiYgYWRvcHRSdWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmNwcAppbmRleCBhNWUzMjM2ZWFjNjMwZGM2NzUwNzI3YThkMmUxN2YxOGU1ZThhNDNi
Li4wZWM0MTk1ZjZhMmMwNzNkNjk3M2M1ZWEzMzQyMjFjOTc4NjkxMWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtNDQsOSArNDQsOSBAQCBT
dHlsZUtleWZyYW1lOjp+U3R5bGVLZXlmcmFtZSgpCiAKIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
IFN0eWxlS2V5ZnJhbWU6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKLSAgICBpZiAoIW1fcHJvcGVy
dGllcy0+aXNNdXRhYmxlKCkpCisgICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiht
X3Byb3BlcnRpZXMuZ2V0KCkpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMt
Pm11dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmPihtX3Byb3BlcnRpZXMuZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiAvKiBzdGF0aWMgKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCBlMzU3YTUzZDk0ZDA4YTIxNmZh
MWEwNzU4YmQ5YmFmZTRiYmJmMDM1Li4wM2MxMGViM2NkMDFkZjYwYzc2NjFhMTFjYzZhYWYxNmY0
MDdhYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC0xNDQsMTAgKzE0
NCwxMCBAQCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRh
YmxlSW5saW5lU3R5bGUoKQogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+JiBpbmxpbmVTdHls
ZSA9IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkubV9pbmxpbmVTdHlsZTsKICAgICBpZiAoIWlu
bGluZVN0eWxlKQogICAgICAgICBpbmxpbmVTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6
OmNyZWF0ZShzdHJpY3RUb0NTU1BhcnNlck1vZGUoaXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVu
dCgpLmluUXVpcmtzTW9kZSgpKSk7Ci0gICAgZWxzZSBpZiAoIWlubGluZVN0eWxlLT5pc011dGFi
bGUoKSkKKyAgICBlbHNlIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0
eWxlKSkKICAgICAgICAgaW5saW5lU3R5bGUgPSBpbmxpbmVTdHlsZS0+bXV0YWJsZUNvcHkoKTsK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbmxpbmVTdHlsZS0+aXNNdXRh
YmxlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4o
KmlubGluZVN0eWxlKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpczxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqaW5saW5lU3R5bGUpKTsKKyAgICByZXR1cm4gZG93bmNh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxlKTsKIH0KIAogdm9pZCBTdHls
ZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCkBAIC0xODEsMTQgKzE4MSwxNCBA
QCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmcoY29u
c3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogCiAgICAgLy8gV2UgcmVjb25zdHJ1Y3QgdGhlIHBy
b3BlcnR5IHNldCBpbnN0ZWFkIG9mIG11dGF0aW5nIGlmIHRoZXJlIGlzIG5vIENTU09NIHdyYXBw
ZXIuCiAgICAgLy8gVGhpcyBtYWtlcyB3cmFwcGVybGVzcyBwcm9wZXJ0eSBzZXRzIGltbXV0YWJs
ZSBhbmQgc28gY2FjaGVhYmxlLgotICAgIGlmIChpbmxpbmVTdHlsZSAmJiAhaW5saW5lU3R5bGUt
PmlzTXV0YWJsZSgpKQorICAgIGlmIChpbmxpbmVTdHlsZSAmJiAhaXM8TXV0YWJsZVN0eWxlUHJv
cGVydGllcz4oKmlubGluZVN0eWxlKSkKICAgICAgICAgaW5saW5lU3R5bGUuY2xlYXIoKTsKIAog
ICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpw
YXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwogICAgIGVs
c2UgewotICAgICAgICBBU1NFUlQoaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgpKTsKLSAgICAgICAg
c3RhdGljX3BvaW50ZXJfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihpbmxpbmVTdHlsZSkt
PnBhcnNlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsICZkb2N1bWVudCgpLmVsZW1lbnRTaGVl
dCgpLmNvbnRlbnRzKCkpOworICAgICAgICBBU1NFUlQoaXM8TXV0YWJsZVN0eWxlUHJvcGVydGll
cz4oKmlubGluZVN0eWxlKSk7CisgICAgICAgIGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRp
ZXM+KCppbmxpbmVTdHlsZSkucGFyc2VEZWNsYXJhdGlvbihuZXdTdHlsZVN0cmluZywgJmRvY3Vt
ZW50KCkuZWxlbWVudFNoZWV0KCkuY29udGVudHMoKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239255</attachid>
            <date>2014-10-03 16:55:34 -0700</date>
            <delta_ts>2014-10-04 01:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137398-20141003165535.patch</filename>
            <type>text/plain</type>
            <size>12379</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU0YzVlY2Y4NTZmMzU5
ZWI3YzE4Y2ZmOGVlMDliYzMxMmRlZjNlZS4uMjE3ZTFkODYxOWY0MTgyNjMxMGRmOGFjMGI0NTc5
Nzg3ODc1ODc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE0LTEwLTAzICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDU1MgU3R5bGVQcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczOTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZv
ciBDU1MgU3R5bGVQcm9wZXJ0aWVzIHN1YmNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6aW1tdXRhYmxlQ29weUlmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6Ok11dGFibGVT
dHlsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpoYXND
U1NPTVdyYXBwZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0
YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVy
ZW5jZTo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6
OnByb3BlcnR5Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpkZXJl
Zik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmZpbmRQcm9wZXJ0eUluZGV4
KToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp0b011dGFibGVTdHlsZVBy
b3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9JbW11dGFibGVTdHlsZVBy
b3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJ1bGVQYWdlOjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAqIGNzcy9X
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFt
ZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21T
dHJpbmcpOgorCisyMDE0LTEwLTAzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKwogICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBDU1NWYWx1ZSBzdWJj
bGFzc2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzczODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmOGVhNDBk
NDlhZDBlNTY0OTRhODBhZDFjYWNkZjBlZjBkNTE0ODI2Li5jMjgwZDk1MTBlNDgwMGMwZmQ1ZjVi
YWRkMGRjZjE3NWZlNWZjNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtNjEsOSArNjEsOSBAQCBQYXNzUmVmPEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4gSW1t
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoY29uc3QgQ1NTUHJvcAogCiBQYXNzUmVmPElt
bXV0YWJsZVN0eWxlUHJvcGVydGllcz4gU3R5bGVQcm9wZXJ0aWVzOjppbW11dGFibGVDb3B5SWZO
ZWVkZWQoKSBjb25zdAogewotICAgIGlmICghaXNNdXRhYmxlKCkpCi0gICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXMmPihjb25zdF9jYXN0PFN0eWxlUHJv
cGVydGllcyY+KCp0aGlzKSk7Ci0gICAgY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgbXV0
YWJsZVRoaXMgPSBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4oKnRo
aXMpOworICAgIGlmIChpczxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKSkKKyAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4oY29uc3RfY2FzdDxT
dHlsZVByb3BlcnRpZXMmPigqdGhpcykpOworICAgIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRp
ZXMmIG11dGFibGVUaGlzID0gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMp
OwogICAgIHJldHVybiBJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShtdXRhYmxlVGhp
cy5tX3Byb3BlcnR5VmVjdG9yLmRhdGEoKSwgbXV0YWJsZVRoaXMubV9wcm9wZXJ0eVZlY3Rvci5z
aXplKCksIGNzc1BhcnNlck1vZGUoKSk7CiB9CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBJbW11dGFi
bGVTdHlsZVByb3BlcnRpZXM6On5JbW11dGFibGVTdHlsZVByb3BlcnRpZXMoKQogTXV0YWJsZVN0
eWxlUHJvcGVydGllczo6TXV0YWJsZVN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRp
ZXMmIG90aGVyKQogICAgIDogU3R5bGVQcm9wZXJ0aWVzKG90aGVyLmNzc1BhcnNlck1vZGUoKSkK
IHsKLSAgICBpZiAob3RoZXIuaXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVydHlWZWN0b3Ig
PSBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4ob3RoZXIpLm1fcHJv
cGVydHlWZWN0b3I7CisgICAgaWYgKGlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG90aGVyKSkK
KyAgICAgICAgbV9wcm9wZXJ0eVZlY3RvciA9IGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRp
ZXM+KG90aGVyKS5tX3Byb3BlcnR5VmVjdG9yOwogICAgIGVsc2UgewogICAgICAgICBtX3Byb3Bl
cnR5VmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkob3RoZXIucHJvcGVydHlDb3VudCgpKTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG90aGVyLnByb3BlcnR5Q291bnQoKTsg
KytpKQpAQCAtMTAyOCw3ICsxMDI4LDcgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0
KCkgY29uc3QKIAogYm9vbCBTdHlsZVByb3BlcnRpZXM6Omhhc0NTU09NV3JhcHBlcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1faXNNdXRhYmxlICYmIHN0YXRpY19jYXN0PGNvbnN0IE11dGFibGVT
dHlsZVByb3BlcnRpZXMqPih0aGlzKS0+bV9jc3NvbVdyYXBwZXI7CisgICAgcmV0dXJuIGlzPE11
dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKSAmJiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPigqdGhpcykubV9jc3NvbVdyYXBwZXI7CiB9CiAKIHZvaWQgTXV0YWJsZVN0eWxlUHJv
cGVydGllczo6bWVyZ2VBbmRPdmVycmlkZU9uQ29uZmxpY3QoY29uc3QgU3R5bGVQcm9wZXJ0aWVz
JiBvdGhlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAppbmRleCA5MjA2ZGM5NGFj
OThiYjAwNmRiYjZkOTRiMWIzZjRiZTU4MTQ3YWQzLi43ZDkyN2M5Y2I0ZDc3NWZmN2M2YjkwNzky
NGRkYmIxZjNhYzE5OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC0yMzUsMzggKzIzNiwyNCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBTdHlsZVByb3BlcnRpZXM7CiB9OwogCi1UWVBFX0NBU1RTX0JBU0UoTXV0YWJsZVN0eWxlUHJv
cGVydGllcywgU3R5bGVQcm9wZXJ0aWVzLCBzZXQsIHNldC0+aXNNdXRhYmxlKCksIHNldC5pc011
dGFibGUoKSk7Ci0KLWlubGluZSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiB0b011dGFibGVTdHls
ZVByb3BlcnRpZXMoY29uc3QgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4mIHNldCkKLXsKLSAgICBy
ZXR1cm4gdG9NdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKHNldC5nZXQoKSk7Ci19Ci0KLVRZUEVfQ0FT
VFNfQkFTRShJbW11dGFibGVTdHlsZVByb3BlcnRpZXMsIFN0eWxlUHJvcGVydGllcywgc2V0LCAh
c2V0LT5pc011dGFibGUoKSwgIXNldC5pc011dGFibGUoKSk7Ci0KLWlubGluZSBJbW11dGFibGVT
dHlsZVByb3BlcnRpZXMqIHRvSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFJlZlB0cjxT
dHlsZVByb3BlcnRpZXM+JiBzZXQpCi17Ci0gICAgcmV0dXJuIHRvSW1tdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzKHNldC5nZXQoKSk7Ci19Ci0KIGlubGluZSBjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRh
dGEmIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0YWRhdGEo
KSBjb25zdAogewotICAgIGlmIChtX3Byb3BlcnR5U2V0LmlzTXV0YWJsZSgpKQotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyY+KG1fcHJvcGVy
dHlTZXQpLm1fcHJvcGVydHlWZWN0b3IuYXQobV9pbmRleCkubWV0YWRhdGEoKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4obV9wcm9wZXJ0
eVNldCkubWV0YWRhdGFBcnJheSgpW21faW5kZXhdOworICAgIGlmIChpczxNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzPihtX3Byb3BlcnR5U2V0KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PE11dGFi
bGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLm1fcHJvcGVydHlWZWN0b3IuYXQobV9p
bmRleCkubWV0YWRhdGEoKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzPihtX3Byb3BlcnR5U2V0KS5tZXRhZGF0YUFycmF5KClbbV9pbmRleF07CiB9CiAKIGlu
bGluZSBjb25zdCBDU1NWYWx1ZSogU3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6
cHJvcGVydHlWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcHJvcGVydHlTZXQuaXNNdXRhYmxl
KCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJj4obV9wcm9wZXJ0eVNldCkubV9wcm9wZXJ0eVZlY3Rvci5hdChtX2luZGV4KS52YWx1ZSgp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJbW11dGFibGVTdHlsZVByb3BlcnRpZXMm
PihtX3Byb3BlcnR5U2V0KS52YWx1ZUFycmF5KClbbV9pbmRleF07CisgICAgaWYgKGlzPE11dGFi
bGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpKQorICAgICAgICByZXR1cm4gZG93bmNh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0eVNldCkubV9wcm9wZXJ0eVZlY3Rv
ci5hdChtX2luZGV4KS52YWx1ZSgpOworICAgIHJldHVybiBkb3duY2FzdDxJbW11dGFibGVTdHls
ZVByb3BlcnRpZXM+KG1fcHJvcGVydHlTZXQpLnZhbHVlQXJyYXkoKVttX2luZGV4XTsKIH0KIAog
aW5saW5lIHVuc2lnbmVkIFN0eWxlUHJvcGVydGllczo6cHJvcGVydHlDb3VudCgpIGNvbnN0CiB7
Ci0gICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyo+KHRoaXMpLT5tX3Byb3BlcnR5VmVjdG9yLnNpemUoKTsK
KyAgICBpZiAoaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpKQorICAgICAgICByZXR1
cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpLm1fcHJvcGVydHlWZWN0
b3Iuc2l6ZSgpOwogICAgIHJldHVybiBtX2FycmF5U2l6ZTsKIH0KIApAQCAtMjgwLDE5ICsyNjcs
MjcgQEAgaW5saW5lIHZvaWQgU3R5bGVQcm9wZXJ0aWVzOjpkZXJlZigpCiAgICAgaWYgKCFkZXJl
ZkJhc2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAg
ICBkZWxldGUgc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcyo+KHRoaXMpOworICAg
IGlmIChpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykpCisgICAgICAgIGRlbGV0ZSBk
b3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPih0aGlzKTsKICAgICBlbHNlCi0gICAgICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXMqPih0aGlzKTsKKyAg
ICAgICAgZGVsZXRlIGRvd25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4odGhpcyk7CiB9
CiAKIGlubGluZSBpbnQgU3R5bGVQcm9wZXJ0aWVzOjpmaW5kUHJvcGVydHlJbmRleChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0gICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAg
ICByZXR1cm4gdG9NdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKHRoaXMpLT5maW5kUHJvcGVydHlJbmRl
eChwcm9wZXJ0eUlEKTsKLSAgICByZXR1cm4gdG9JbW11dGFibGVTdHlsZVByb3BlcnRpZXModGhp
cyktPmZpbmRQcm9wZXJ0eUluZGV4KHByb3BlcnR5SUQpOworICAgIGlmIChpczxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzPigqdGhpcykpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzPigqdGhpcykuZmluZFByb3BlcnR5SW5kZXgocHJvcGVydHlJRCk7CisgICAg
cmV0dXJuIGRvd25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKnRoaXMpLmZpbmRQcm9w
ZXJ0eUluZGV4KHByb3BlcnR5SUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGll
cykKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
JiBzZXQpIHsgcmV0dXJuIHNldC5pc011dGFibGUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkltbXV0YWJs
ZVN0eWxlUHJvcGVydGllcykKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzJiBzZXQpIHsgcmV0dXJuICFzZXQuaXNNdXRhYmxlKCk7IH0KK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmIC8vIFN0eWxlUHJvcGVydGllc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDk5YzQyZWFiM2MxNjhhMzU5Y2VmZmQ4ZjBhNzM4
YTU4ZDUxOGUzMDMuLjFjZmM4MzQzYjcyNTA4NDIyZmM3MzRhYzMwODFmNWJmM2NjMzBjMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0yMjAsOSArMjIwLDkgQEAgU3R5bGVSdWxlOjp+
U3R5bGVSdWxlKCkKIAogTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlOjptdXRhYmxl
UHJvcGVydGllcygpCiB7Ci0gICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgpKQorICAg
IGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKSkKICAg
ICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4obV9wcm9wZXJ0aWVzLmdl
dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9w
ZXJ0aWVzLmdldCgpKTsKIH0KIAogUGFzc1JlZjxTdHlsZVJ1bGU+IFN0eWxlUnVsZTo6Y3JlYXRl
KGludCBzb3VyY2VMaW5lLCBjb25zdCBWZWN0b3I8Y29uc3QgQ1NTU2VsZWN0b3IqPiYgc2VsZWN0
b3JzLCBQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllcykKQEAgLTI4Miw5ICsyODIs
OSBAQCBTdHlsZVJ1bGVQYWdlOjp+U3R5bGVSdWxlUGFnZSgpCiAKIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIFN0eWxlUnVsZVBhZ2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKLSAgICBpZiAoIW1f
cHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCisgICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3Bl
cnRpZXMtPm11dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE11dGFibGVTdHls
ZVByb3BlcnRpZXMmPihtX3Byb3BlcnRpZXMuZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiBTdHlsZVJ1
bGVGb250RmFjZTo6U3R5bGVSdWxlRm9udEZhY2UoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHBy
b3BlcnRpZXMpCkBAIC0zMDUsOSArMzA1LDkgQEAgU3R5bGVSdWxlRm9udEZhY2U6On5TdHlsZVJ1
bGVGb250RmFjZSgpCiAKIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlUnVsZUZvbnRGYWNl
OjptdXRhYmxlUHJvcGVydGllcygpCiB7Ci0gICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJs
ZSgpKQorICAgIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdl
dCgpKSkKICAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4obV9wcm9w
ZXJ0aWVzLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGll
cz4obV9wcm9wZXJ0aWVzLmdldCgpKTsKIH0KIAogU3R5bGVSdWxlR3JvdXA6OlN0eWxlUnVsZUdy
b3VwKFR5cGUgdHlwZSwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKaW5kZXggYTVl
MzIzNmVhYzYzMGRjNjc1MDcyN2E4ZDJlMTdmMThlNWU4YTQzYi4uMGVjNDE5NWY2YTJjMDczZDY5
NzNjNWVhMzM0MjIxYzk3ODY5MTFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U0tleWZyYW1lUnVsZS5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgU3R5bGVLZXlmcmFtZTo6flN0eWxl
S2V5ZnJhbWUoKQogCiBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBTdHlsZUtleWZyYW1lOjptdXRh
YmxlUHJvcGVydGllcygpCiB7Ci0gICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgpKQor
ICAgIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKSkK
ICAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4obV9wcm9wZXJ0aWVz
LmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9w
cm9wZXJ0aWVzLmdldCgpKTsKIH0KIAogLyogc3RhdGljICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5jcHAKaW5kZXggZTM1N2E1M2Q5NGQwOGEyMTZmYTFhMDc1OGJkOWJhZmU0YmJiZjAz
NS4uZDY4MTEwNmM5NzdiNWU5MTMwMDU4MzFmZGI0YTg2ODE1ZTM3ZTY0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtMTQ0LDEwICsxNDQsOSBAQCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiBTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKQogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+JiBpbmxpbmVTdHlsZSA9IGVuc3VyZVVuaXF1ZUVsZW1l
bnREYXRhKCkubV9pbmxpbmVTdHlsZTsKICAgICBpZiAoIWlubGluZVN0eWxlKQogICAgICAgICBp
bmxpbmVTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShzdHJpY3RUb0NTU1Bh
cnNlck1vZGUoaXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpKSk7
Ci0gICAgZWxzZSBpZiAoIWlubGluZVN0eWxlLT5pc011dGFibGUoKSkKKyAgICBlbHNlIGlmICgh
aXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxlKSkKICAgICAgICAgaW5saW5l
U3R5bGUgPSBpbmxpbmVTdHlsZS0+bXV0YWJsZUNvcHkoKTsKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4oKmlubGluZVN0eWxlKTsKKyAgICBy
ZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxlKTsKIH0K
IAogdm9pZCBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCkBAIC0xODEs
MTUgKzE4MCwxMyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogCiAgICAgLy8gV2UgcmVjb25z
dHJ1Y3QgdGhlIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIG11dGF0aW5nIGlmIHRoZXJlIGlzIG5v
IENTU09NIHdyYXBwZXIuCiAgICAgLy8gVGhpcyBtYWtlcyB3cmFwcGVybGVzcyBwcm9wZXJ0eSBz
ZXRzIGltbXV0YWJsZSBhbmQgc28gY2FjaGVhYmxlLgotICAgIGlmIChpbmxpbmVTdHlsZSAmJiAh
aW5saW5lU3R5bGUtPmlzTXV0YWJsZSgpKQorICAgIGlmIChpbmxpbmVTdHlsZSAmJiAhaXM8TXV0
YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxlKSkKICAgICAgICAgaW5saW5lU3R5bGUu
Y2xlYXIoKTsKIAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0g
Q1NTUGFyc2VyOjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRo
aXMpOwotICAgIGVsc2UgewotICAgICAgICBBU1NFUlQoaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgp
KTsKLSAgICAgICAgc3RhdGljX3BvaW50ZXJfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihp
bmxpbmVTdHlsZSktPnBhcnNlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsICZkb2N1bWVudCgp
LmVsZW1lbnRTaGVldCgpLmNvbnRlbnRzKCkpOwotICAgIH0KKyAgICBlbHNlCisgICAgICAgIGRv
d25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkucGFyc2VEZWNsYXJh
dGlvbihuZXdTdHlsZVN0cmluZywgJmRvY3VtZW50KCkuZWxlbWVudFNoZWV0KCkuY29udGVudHMo
KSk7CiB9CiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biByZWFzb24pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>