<?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>128875</bug_id>
          
          <creation_ts>2014-02-15 16:18:57 -0800</creation_ts>
          <short_desc>Add checked casts for Event.</short_desc>
          <delta_ts>2014-02-15 17:57:12 -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>UI Events</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981214</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-15 16:18:57 -0800</bug_when>
    <thetext>Add checked casts for Event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981215</commentid>
    <comment_count>1</comment_count>
      <attachid>224303</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-15 16:19:18 -0800</bug_when>
    <thetext>Created attachment 224303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981220</commentid>
    <comment_count>2</comment_count>
      <attachid>224303</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-15 17:57:10 -0800</bug_when>
    <thetext>Comment on attachment 224303
Patch

Clearing flags on attachment: 224303

Committed r164184: &lt;http://trac.webkit.org/changeset/164184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981221</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-15 17:57:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224303</attachid>
            <date>2014-02-15 16:19:18 -0800</date>
            <delta_ts>2014-02-15 17:57:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128875.diff</filename>
            <type>text/plain</type>
            <size>47448</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTllMzYxLi40NWEyYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUg
QEAKIDIwMTQtMDItMTUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIEFkZCBjaGVja2VkIGNhc3RzIGZvciBFdmVudC4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzEyODg3NT4KKworICAgICAgICBHZW5lcmF0ZSBjYXN0aW5nIGhlbHBlcnMgZm9yIGNh
c3RpbmcgZnJvbSBFdmVudCB0byB2YXJpb3VzIHN1YmNsYXNzZXMKKyAgICAgICAgYW5kIGdvIG9u
IHN0YXRpY19jYXN0IHJlcGxhY2VtZW50IHNwcmVlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisyMDE0LTAyLTE1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxl
LmNvbT4KKwogICAgICAgICBBZGQgY2hlY2tlZCBjYXN0cyBmb3IgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC4KICAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyODg3ND4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGY3MmMzMzQuLmQ5
MmMxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5j
cHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICBpZiAoIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEVycm9yRXZlbnQq
IGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworICAgIEVycm9y
RXZlbnQqIGVycm9yRXZlbnQgPSB0b0Vycm9yRXZlbnQoZXZlbnQpOwogCiAgICAgSlNMb2NrSG9s
ZGVyIGxvY2soc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+dm0oKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKaW5kZXggNmU1ZjRlYi4uMjYxZDBhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKQEAgLTUx
LDYgKzUxLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90ZXh0OwogfTsKIAorRVZFTlRfVFlQ
RV9DQVNUUyhCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCkKKwogfSAvLyBuYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCmluZGV4IDkxODhhZDUuLmZk
NzczOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCkBAIC01MSwxMSAr
NTEsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3JldHVyblZhbHVlOwogfTsKIAotaW5saW5l
IEJlZm9yZVVubG9hZEV2ZW50KiB0b0JlZm9yZVVubG9hZEV2ZW50KEV2ZW50KiBldmVudCkKLXsK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighZXZlbnQgfHwgZXZlbnQtPmlz
QmVmb3JlVW5sb2FkRXZlbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEJlZm9yZVVubG9h
ZEV2ZW50Kj4oZXZlbnQpOwotfQorRVZFTlRfVFlQRV9DQVNUUyhCZWZvcmVVbmxvYWRFdmVudCkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKaW5k
ZXggZDBjMzM3YS4uNmM2YTU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9y
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcApAQCAtNzQs
NCArNzQsOSBAQCBFdmVudEludGVyZmFjZSBFcnJvckV2ZW50OjpldmVudEludGVyZmFjZSgpIGNv
bnN0CiAgICAgcmV0dXJuIEVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOwogfQogCitib29sIEVycm9y
RXZlbnQ6OmlzRXJyb3JFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJv
ckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCmluZGV4IGQ1OGVlZDYu
LmI1OGU3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApAQCAtNzMsMTIgKzczLDE2IEBAIHBy
aXZhdGU6CiAgICAgRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcik7
CiAgICAgRXJyb3JFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBFcnJvckV2ZW50SW5p
dCYpOwogCisgICAgdmlydHVhbCBib29sIGlzRXJyb3JFdmVudCgpIGNvbnN0IG92ZXJyaWRlOwor
CiAgICAgU3RyaW5nIG1fbWVzc2FnZTsKICAgICBTdHJpbmcgbV9maWxlTmFtZTsKICAgICB1bnNp
Z25lZCBtX2xpbmVOdW1iZXI7CiAgICAgdW5zaWduZWQgbV9jb2x1bW5OdW1iZXI7CiB9OwogCitF
VkVOVF9UWVBFX0NBU1RTKEVycm9yRXZlbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVycm9yRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggZTIyMjA3Mi4uMWQw
ZmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0xNjgsNiArMTY4LDIxIEBAIGJvb2wgRXZlbnQ6
OmlzQmVmb3JlVW5sb2FkRXZlbnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBFdmVudDo6aXNFcnJvckV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgRXZlbnQ6OmlzVGV4dEV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgRXZlbnQ6OmlzV2hlZWxFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCiBQYXNzUmVmUHRyPEV2ZW50PiBFdmVudDo6Y2xvbmVGb3IoSFRNTElGcmFtZUVsZW1l
bnQqKSBjb25zdAogewogICAgIHJldHVybiBFdmVudDo6Y3JlYXRlKHR5cGUoKSwgYnViYmxlcygp
LCBjYW5jZWxhYmxlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCA5Y2Q2ZGNkLi44NDkzODE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuaApAQCAtMTQ1LDYgKzE0NSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNCZWZvcmVVbmxvYWRFdmVudCgpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIGlzRXJy
b3JFdmVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1RleHRFdmVudCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBpc1doZWVsRXZlbnQoKSBjb25zdDsKKwogICAgIGJvb2wgcHJvcGFn
YXRpb25TdG9wcGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wYWdhdGlvblN0b3BwZWQgfHwgbV9p
bW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ7IH0KICAgICBib29sIGltbWVkaWF0ZVByb3BhZ2F0
aW9uU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVk
OyB9CiAKQEAgLTIwMSw2ICsyMDUsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RXZlbnQ+IG1f
dW5kZXJseWluZ0V2ZW50OwogfTsKIAorI2RlZmluZSBFVkVOVF9UWVBFX0NBU1RTKFRvVmFsdWVU
eXBlTmFtZSkgXAorICAgIFRZUEVfQ0FTVFNfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIEV2ZW50LCBl
dmVudCwgZXZlbnQtPmlzIyNUb1ZhbHVlVHlwZU5hbWUoKSwgZXZlbnQuaXMjI1RvVmFsdWVUeXBl
TmFtZSgpKQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEV2ZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRm9jdXNFdmVudC5oCmluZGV4IDQ3NGY0NWQuLjkxYzg4N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0ZvY3VzRXZlbnQuaApAQCAtNzAsMTcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RXZl
bnRUYXJnZXQ+IG1fcmVsYXRlZFRhcmdldDsKIH07CiAKLWlubGluZSBGb2N1c0V2ZW50KiB0b0Zv
Y3VzRXZlbnQoRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKGV2ZW50ICYmIGV2ZW50LT5pc0ZvY3VzRXZlbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEZvY3VzRXZlbnQqPihldmVudCk7Ci19Ci0KLWlubGluZSBGb2N1c0V2ZW50JiB0b0Zv
Y3VzRXZlbnQoRXZlbnQmIGV2ZW50KQotewotICAgIEFTU0VSVChldmVudC5pc0ZvY3VzRXZlbnQo
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvY3VzRXZlbnQmPihldmVudCk7Ci19CitFVkVO
VF9UWVBFX0NBU1RTKEZvY3VzRXZlbnQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IGMwZTE2ZjguLjc5MTY5MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCBLZXlib2Fy
ZEV2ZW50KiBmaW5kS2V5Ym9hcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgZm9yIChFdmVu
dCogZSA9IGV2ZW50OyBlOyBlID0gZS0+dW5kZXJseWluZ0V2ZW50KCkpCiAgICAgICAgIGlmIChl
LT5pc0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxLZXli
b2FyZEV2ZW50Kj4oZSk7CisgICAgICAgICAgICByZXR1cm4gdG9LZXlib2FyZEV2ZW50KGUpOwog
ICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9h
cmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaAppbmRleCBlMDI4
MDUyLi5iZDJkMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmgKQEAgLTEyNCw2ICsx
MjQsOCBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCitFVkVOVF9UWVBFX0NBU1RTKEtleWJvYXJk
RXZlbnQpCisKIEtleWJvYXJkRXZlbnQqIGZpbmRLZXlib2FyZEV2ZW50KEV2ZW50Kik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAppbmRleCA1Njgy
ZjhhLi4zMzU1OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC0yNzcsNyArMjc3
LDcgQEAgU2ltdWxhdGVkTW91c2VFdmVudDo6U2ltdWxhdGVkTW91c2VFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlAKICAgICBzZXRVbmRlcmx5aW5nRXZlbnQodW5k
ZXJseWluZ0V2ZW50KTsKIAogICAgIGlmICh0aGlzLT51bmRlcmx5aW5nRXZlbnQoKSAmJiB0aGlz
LT51bmRlcmx5aW5nRXZlbnQoKS0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAgICAgTW91c2VFdmVu
dCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPih0aGlzLT51bmRlcmx5aW5n
RXZlbnQoKSk7CisgICAgICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSB0b01vdXNlRXZlbnQo
dGhpcy0+dW5kZXJseWluZ0V2ZW50KCkpOwogICAgICAgICBtX3NjcmVlbkxvY2F0aW9uID0gbW91
c2VFdmVudC0+c2NyZWVuTG9jYXRpb24oKTsKICAgICAgICAgaW5pdENvb3JkaW5hdGVzKG1vdXNl
RXZlbnQtPmNsaWVudExvY2F0aW9uKCkpOwogICAgIH0gZWxzZSBpZiAodGFyZ2V0KSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlRXZlbnQuaAppbmRleCAzYjU1MGNiLi5hZjVkMTk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmgKQEAgLTEzMSwxNyArMTMxLDcgQEAgcHJpdmF0ZToKICAgICBTaW11bGF0ZWRNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4sIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCogdGFyZ2V0
KTsKIH07CiAKLWlubGluZSBNb3VzZUV2ZW50KiB0b01vdXNlRXZlbnQoRXZlbnQqIGV2ZW50KQot
ewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGV2ZW50ICYmIGV2ZW50LT5p
c01vdXNlRXZlbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVu
dCk7Ci19Ci0KLWlubGluZSBNb3VzZUV2ZW50JiB0b01vdXNlRXZlbnQoRXZlbnQmIGV2ZW50KQot
ewotICAgIEFTU0VSVChldmVudC5pc01vdXNlRXZlbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQmPihldmVudCk7Ci19CitFVkVOVF9UWVBFX0NBU1RTKE1vdXNlRXZlbnQp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDcyZjhhODQu
LjllOTU0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIxMDEsOSArMjEwMSw5IEBAIHZvaWQgTm9k
ZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
a2V5cHJlc3NFdmVudCkgewogICAgICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQog
ICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5k
bGVyKHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOworICAgICAgICAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5kZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIodG9LZXli
b2FyZEV2ZW50KGV2ZW50KSk7CiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQpIHsKLSAgICAgICAgaW50IGRldGFpbCA9IGV2ZW50LT5pc1VJRXZlbnQo
KSA/IHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCktPmRldGFpbCgpIDogMDsKKyAgICAgICAg
aW50IGRldGFpbCA9IGV2ZW50LT5pc1VJRXZlbnQoKSA/IHRvVUlFdmVudChldmVudCktPmRldGFp
bCgpIDogMDsKICAgICAgICAgaWYgKGRpc3BhdGNoRE9NQWN0aXZhdGVFdmVudChkZXRhaWwsIGV2
ZW50KSkKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQpAQCAtMjExNSwxMSArMjExNSwxMCBAQCB2b2lkIE5vZGU6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS50ZXh0SW5wdXRFdmVudCkgewogICAgICAgICBpZiAoZXZlbnQtPmV2ZW50
SW50ZXJmYWNlKCkgPT0gVGV4dEV2ZW50SW50ZXJmYWNlVHlwZSkKICAgICAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUt
PmV2ZW50SGFuZGxlcigpLmRlZmF1bHRUZXh0SW5wdXRFdmVudEhhbmRsZXIoc3RhdGljX2Nhc3Q8
VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVy
KCkuZGVmYXVsdFRleHRJbnB1dEV2ZW50SGFuZGxlcih0b1RleHRFdmVudChldmVudCkpOwogI2lm
IEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAg
ICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVu
dCk7Ci0gICAgICAgIGlmIChtb3VzZUV2ZW50LT5idXR0b24oKSA9PSBNaWRkbGVCdXR0b24pIHsK
KyAgICAgICAgaWYgKHRvTW91c2VFdmVudChldmVudCktPmJ1dHRvbigpID09IE1pZGRsZUJ1dHRv
bikgewogICAgICAgICAgICAgaWYgKGVuY2xvc2luZ0xpbmtFdmVudFBhcmVudE9yU2VsZigpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjEzNCw4ICsyMTMzLDcgQEAgdm9pZCBOb2Rl
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgfQogI2VuZGlmCiAg
ICAgfSBlbHNlIGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50IHx8IGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KSAmJiBldmVudC0+ZXZlbnRJ
bnRlcmZhY2UoKSA9PSBXaGVlbEV2ZW50SW50ZXJmYWNlVHlwZSkgewotICAgICAgICBXaGVlbEV2
ZW50KiB3aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50KTsKLSAgICAg
ICAgCisKICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyLCBzZW5kIHRoZSB3
aGVlbCBldmVudCB0byB0aGUgZmlyc3Qgbm9kZSB3ZSBmaW5kIHdpdGggYSByZW5kZXJlci4KICAg
ICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIDxvcHRpb24+IGFuZCA8b3B0Z3JvdXA+IGVsZW1l
bnRzIHNvIHRoYXQgPHNlbGVjdD5zIGdldCBhIHdoZWVsIHNjcm9sbC4KICAgICAgICAgTm9kZSog
c3RhcnROb2RlID0gdGhpczsKQEAgLTIxNDQsMTggKzIxNDIsMTYgQEAgdm9pZCBOb2RlOjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgCiAgICAgICAgIGlmIChzdGFy
dE5vZGUgJiYgc3RhcnROb2RlLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuZGVmYXVsdFdoZWVsRXZlbnRIYW5kbGVyKHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCk7
CisgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmRlZmF1bHRXaGVlbEV2ZW50
SGFuZGxlcihzdGFydE5vZGUsIHRvV2hlZWxFdmVudChldmVudCkpOwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpICYmIFBMQVRGT1JNKElPUykKICAgICB9IGVsc2UgaWYgKGV2ZW50LT5ldmVudElu
dGVyZmFjZSgpID09IFRvdWNoRXZlbnRJbnRlcmZhY2VUeXBlICYmIGV2ZW50TmFtZXMoKS5pc1Rv
dWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkpIHsKLSAgICAgICAgVG91Y2hFdmVudCogdG91Y2hFdmVu
dCA9IHN0YXRpY19jYXN0PFRvdWNoRXZlbnQqPihldmVudCk7Ci0KICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgICAgIHdoaWxlIChyZW5kZXJl
ciAmJiAoIXJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChyZW5kZXJlciktPmNhbkJl
U2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAgICAgICAgICAgIHJlbmRlcmVyID0g
cmVuZGVyZXItPnBhcmVudCgpOwogCiAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+
bm9kZSgpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFt
ZSgpKQotICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5kZWZhdWx0VG91Y2hF
dmVudEhhbmRsZXIocmVuZGVyZXItPm5vZGUoKSwgdG91Y2hFdmVudCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmRlZmF1bHRUb3VjaEV2ZW50SGFuZGxlcihyZW5kZXJl
ci0+bm9kZSgpLCB0b1RvdWNoRXZlbnQodG91Y2hFdmVudCkpOwogICAgICAgICB9CiAjZW5kaWYK
ICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLndlYmtpdEVkaXRh
YmxlQ29udGVudENoYW5nZWRFdmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAppbmRleCBj
ZGM2NjhkLi5jNWNmM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcApAQCAtMTE4LDQgKzEx
OCw5IEBAIEV2ZW50SW50ZXJmYWNlIFRleHRFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAog
ICAgIHJldHVybiBUZXh0RXZlbnRJbnRlcmZhY2VUeXBlOwogfQogCitib29sIFRleHRFdmVudDo6
aXNUZXh0RXZlbnQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKaW5kZXggNmNjMmNiMC4uMDgzYzdlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0RXZlbnQuaApAQCAtNzMsNiArNzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91
bGRNYXRjaFN0eWxlKTsKICAgICAgICAgVGV4dEV2ZW50KFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3
PiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+
JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1RleHRF
dmVudCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgICAgIFRleHRFdmVudElucHV0VHlwZSBtX2lu
cHV0VHlwZTsKICAgICAgICAgU3RyaW5nIG1fZGF0YTsKIApAQCAtODIsNiArODQsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gbV9k
aWN0YXRpb25BbHRlcm5hdGl2ZXM7CiAgICAgfTsKIAorRVZFTlRfVFlQRV9DQVNUUyhUZXh0RXZl
bnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFRleHRFdmVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RvdWNoRXZlbnQuaAppbmRleCAxYTczY2NhLi4zOWExMTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaEV2ZW50LmgKQEAgLTg2LDE3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFRvdWNo
TGlzdD4gbV9jaGFuZ2VkVG91Y2hlczsKIH07CiAKLWlubGluZSBUb3VjaEV2ZW50KiB0b1RvdWNo
RXZlbnQoRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGV2ZW50ICYmIGV2ZW50LT5pc1RvdWNoRXZlbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PFRvdWNoRXZlbnQqPihldmVudCk7Ci19Ci0KLWlubGluZSBUb3VjaEV2ZW50JiB0b1RvdWNo
RXZlbnQoRXZlbnQmIGV2ZW50KQotewotICAgIEFTU0VSVChldmVudC5pc1RvdWNoRXZlbnQoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoRXZlbnQmPihldmVudCk7Ci19CitFVkVOVF9U
WVBFX0NBU1RTKFRvdWNoRXZlbnQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50LmgKaW5kZXggMDc3YmVlNC4uZDMxZWJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC04
NSw2ICs4NSw4IEBAIHByaXZhdGU6CiAgICAgaW50IG1fZGV0YWlsOwogfTsKIAorRVZFTlRfVFlQ
RV9DQVNUUyhVSUV2ZW50KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBV
SUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAppbmRleCBlZTY3MmNiLi45YzlmYzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCkBAIC0xMjQsNCArMTI0LDkgQEAgYm9vbCBX
aGVlbEV2ZW50Ojppc01vdXNlRXZlbnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBXaGVlbEV2ZW50Ojppc1doZWVsRXZlbnQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAppbmRl
eCAwN2MwMzBlLi5mMTY0ZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKQEAgLTEwMiw2ICsx
MDIsOCBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCwgUGFzc1JlZlB0cjxBYnN0cmFjdFZp
ZXc+LCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBwYWdl
TG9jYXRpb24sCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRL
ZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIGRvdWJs
ZSB0aW1lc3RhbXApOwogCisgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgpIGNvbnN0IG92
ZXJyaWRlOworCiAgICAgSW50UG9pbnQgbV93aGVlbERlbHRhOwogICAgIGRvdWJsZSBtX2RlbHRh
WDsKICAgICBkb3VibGUgbV9kZWx0YVk7CkBAIC0xMTAsNiArMTEyLDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogfTsKIAorRVZFTlRfVFlQRV9D
QVNUUyhXaGVlbEV2ZW50KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBX
aGVlbEV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5k
ZXggYzA0NjQ0My4uMDQxMjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTZXJ2ZXJNYXBN
b3VzZVBvc2l0aW9uKFN0cmluZ0J1aWxkZXImIHVybCwgRXZlbnQqIGV2ZW50KQogICAgIFJlbmRl
ckltYWdlKiByZW5kZXJlciA9IHRvUmVuZGVySW1hZ2UoaW1hZ2VFbGVtZW50LT5yZW5kZXJlcigp
KTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBwYXNzIHRydWUgZm9yIHVz
ZVRyYW5zZm9ybXMuCi0gICAgRmxvYXRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uID0gcmVuZGVyZXIt
PmFic29sdXRlVG9Mb2NhbChGbG9hdFBvaW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVu
dCktPnBhZ2VYKCksIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPnBhZ2VZKCkpKTsK
KyAgICBGbG9hdFBvaW50IGFic29sdXRlUG9zaXRpb24gPSByZW5kZXJlci0+YWJzb2x1dGVUb0xv
Y2FsKEZsb2F0UG9pbnQodG9Nb3VzZUV2ZW50KGV2ZW50KS0+cGFnZVgoKSwgdG9Nb3VzZUV2ZW50
KGV2ZW50KS0+cGFnZVkoKSkpOwogICAgIGludCB4ID0gYWJzb2x1dGVQb3NpdGlvbi54KCk7CiAg
ICAgaW50IHkgPSBhYnNvbHV0ZVBvc2l0aW9uLnkoKTsKICAgICB1cmwuYXBwZW5kKCc/Jyk7CkBA
IC0xOTQsOSArMTk0LDkgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIGlmIChoYXNFZGl0YWJsZVN0eWxlKCkpIHsKICAg
ICAgICAgICAgIC8vIFRoaXMga2VlcHMgdHJhY2sgb2YgdGhlIGVkaXRhYmxlIGJsb2NrIHRoYXQg
dGhlIHNlbGVjdGlvbiB3YXMgaW4gKGlmIGl0IHdhcyBpbiBvbmUpIGp1c3QgYmVmb3JlIHRoZSBs
aW5rIHdhcyBjbGlja2VkCiAgICAgICAgICAgICAvLyBmb3IgdGhlIExpdmVXaGVuTm90Rm9jdXNl
ZCBlZGl0YWJsZSBsaW5rIGJlaGF2aW9yCi0gICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYm
IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpICE9IFJpZ2h0QnV0dG9u
ICYmIGRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAm
JiB0b01vdXNlRXZlbnQoZXZlbnQpLT5idXR0b24oKSAhPSBSaWdodEJ1dHRvbiAmJiBkb2N1bWVu
dCgpLmZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBzZXRSb290RWRpdGFibGVFbGVtZW50Rm9y
U2VsZWN0aW9uT25Nb3VzZURvd24oZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50KCkpOwotICAgICAgICAgICAgICAgIG1fd2FzU2hp
ZnRLZXlEb3duT25Nb3VzZURvd24gPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5z
aGlmdEtleSgpOworICAgICAgICAgICAgICAgIG1fd2FzU2hpZnRLZXlEb3duT25Nb3VzZURvd24g
PSB0b01vdXNlRXZlbnQoZXZlbnQpLT5zaGlmdEtleSgpOwogICAgICAgICAgICAgfSBlbHNlIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCkgewogICAgICAg
ICAgICAgICAgIC8vIFRoZXNlIGFyZSBjbGVhcmVkIG9uIG1vdXNlb3ZlciBhbmQgbm90IG1vdXNl
b3V0IGJlY2F1c2UgdGhlaXIgdmFsdWVzIGFyZSBuZWVkZWQgZm9yIGRyYWcgZXZlbnRzLAogICAg
ICAgICAgICAgICAgIC8vIGJ1dCBkcmFnIGV2ZW50cyBoYXBwZW4gYWZ0ZXIgbW91c2Ugb3V0IGV2
ZW50cy4KQEAgLTU1Niw3ICs1NTYsNyBAQCBIVE1MQW5jaG9yRWxlbWVudDo6RXZlbnRUeXBlIEhU
TUxBbmNob3JFbGVtZW50OjpldmVudFR5cGUoRXZlbnQqIGV2ZW50KQogewogICAgIGlmICghZXZl
bnQtPmlzTW91c2VFdmVudCgpKQogICAgICAgICByZXR1cm4gTm9uTW91c2VFdmVudDsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+c2hpZnRLZXkoKSA/IE1vdXNl
RXZlbnRXaXRoU2hpZnRLZXkgOiBNb3VzZUV2ZW50V2l0aG91dFNoaWZ0S2V5OworICAgIHJldHVy
biB0b01vdXNlRXZlbnQoZXZlbnQpLT5zaGlmdEtleSgpID8gTW91c2VFdmVudFdpdGhTaGlmdEtl
eSA6IE1vdXNlRXZlbnRXaXRob3V0U2hpZnRLZXk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVsZW1l
bnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZShFdmVudFR5cGUgZXZlbnRUeXBlKSBjb25z
dApAQCAtNTkxLDEyICs1OTEsMTIgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6dHJlYXRMaW5r
QXNMaXZlRm9yRXZlbnRUeXBlKEV2ZW50VHlwZSBldmVudFR5cGUpIGNvbnN0CiAKIGJvb2wgaXNF
bnRlcktleUtleWRvd25FdmVudChFdmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC0+aXNLZXlib2FyZEV2
ZW50KCkgJiYgc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KS0+a2V5SWRlbnRpZmll
cigpID09ICJFbnRlciI7CisgICAgcmV0dXJuIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmtleWRvd25FdmVudCAmJiBldmVudC0+aXNLZXlib2FyZEV2ZW50KCkgJiYgdG9LZXlib2FyZEV2
ZW50KGV2ZW50KS0+a2V5SWRlbnRpZmllcigpID09ICJFbnRlciI7CiB9CiAKIGJvb2wgaXNMaW5r
Q2xpY2soRXZlbnQqIGV2ZW50KQogewotICAgIHJldHVybiBldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50ICYmICghZXZlbnQtPmlzTW91c2VFdmVudCgpIHx8IHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpICE9IFJpZ2h0QnV0dG9uKTsKKyAgICBy
ZXR1cm4gZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCAmJiAoIWV2ZW50
LT5pc01vdXNlRXZlbnQoKSB8fCB0b01vdXNlRXZlbnQoZXZlbnQpLT5idXR0b24oKSAhPSBSaWdo
dEJ1dHRvbik7CiB9CiAKIGJvb2wgc2hvdWxkUHJvaGliaXRMaW5rcyhFbGVtZW50KiBlbGVtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCBiY2VlZWY1
Li5iZTFjZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApA
QCAtMTI0LDEzICsxMjQsMTMgQEAgdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgfQogCiAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJk
RXZlbnQoKSkgewotICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50ICYmIHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCktPmtleUlkZW50
aWZpZXIoKSA9PSAiVSswMDIwIikgeworICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIHRvS2V5Ym9hcmRFdmVudChldmVudCktPmtleUlkZW50
aWZpZXIoKSA9PSAiVSswMDIwIikgewogICAgICAgICAgICAgc2V0QWN0aXZlKHRydWUsIHRydWUp
OwogICAgICAgICAgICAgLy8gTm8gc2V0RGVmYXVsdEhhbmRsZWQoKSAtIElFIGRpc3BhdGNoZXMg
YSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQp
IHsKLSAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50
KS0+Y2hhckNvZGUoKSkgeworICAgICAgICAgICAgc3dpdGNoICh0b0tleWJvYXJkRXZlbnQoZXZl
bnQpLT5jaGFyQ29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAnXHInOgogICAgICAgICAg
ICAgICAgICAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKGV2ZW50KTsKICAgICAgICAgICAgICAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9p
ZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5dXBFdmVudCAmJiBzdGF0
aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpLT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAy
MCIpIHsKKyAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXVwRXZl
bnQgJiYgdG9LZXlib2FyZEV2ZW50KGV2ZW50KS0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMjAi
KSB7CiAgICAgICAgICAgICBpZiAoYWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hT
aW11bGF0ZWRDbGljayhldmVudCk7CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4
IDZiNzkzZDEuLjY2N2JmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRF
bGVtZW50LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6
d2lsbEF0dGFjaFJlbmRlcmVycygpCiB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKIHsKICAgICBpZiAoZXZ0LT5pc01vdXNlRXZlbnQoKSAm
JiAhbV9ub3Jlc2l6ZSAmJiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzRnJhbWVTZXQoKSkg
ewotICAgICAgICBpZiAodG9SZW5kZXJGcmFtZVNldChyZW5kZXJlcigpKS0+dXNlclJlc2l6ZShz
dGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZ0KSkpIHsKKyAgICAgICAgaWYgKHRvUmVuZGVyRnJh
bWVTZXQocmVuZGVyZXIoKSktPnVzZXJSZXNpemUodG9Nb3VzZUV2ZW50KGV2dCkpKSB7CiAgICAg
ICAgICAgICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGI4
MjNmYmUuLmY4NzQ2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cApAQCAtMTEwMSwyMiArMTEwMSwyMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZERpc3Bh
dGNoQ2xpY2tFdmVudChFdmVudCYgZXZlbnQsIGNvbnN0IElucHV0RWxlbWVudENsaQogCiB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKIHsKLSAg
ICBpZiAoZXZ0LT5pc01vdXNlRXZlbnQoKSAmJiBldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Y2xpY2tFdmVudCAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZ0KS0+YnV0dG9uKCkgPT0g
TGVmdEJ1dHRvbikgewotICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlQ2xpY2tFdmVudChzdGF0
aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZ0KSk7CisgICAgaWYgKGV2dC0+aXNNb3VzZUV2ZW50KCkg
JiYgZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgJiYgdG9Nb3VzZUV2ZW50
KGV2dCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKKyAgICAgICAgbV9pbnB1dFR5cGUtPmhh
bmRsZUNsaWNrRXZlbnQodG9Nb3VzZUV2ZW50KGV2dCkpOwogICAgICAgICBpZiAoZXZ0LT5kZWZh
dWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgaWYgKGV2dC0+aXNUb3VjaEV2ZW50KCkpIHsKLSAgICAgICAgbV9p
bnB1dFR5cGUtPmhhbmRsZVRvdWNoRXZlbnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2dCkp
OworICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlVG91Y2hFdmVudCh0b1RvdWNoRXZlbnQoZXZ0
KSk7CiAgICAgICAgIGlmIChldnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCiAKICAgICBpZiAoZXZ0LT5pc0tleWJvYXJkRXZlbnQoKSAmJiBl
dnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7Ci0gICAgICAgIG1faW5w
dXRUeXBlLT5oYW5kbGVLZXlkb3duRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2
dCkpOworICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlS2V5ZG93bkV2ZW50KHRvS2V5Ym9hcmRF
dmVudChldnQpKTsKICAgICAgICAgaWYgKGV2dC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0xMTQzLDEzICsxMTQzLDEzIEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0KQogICAgIC8vIFVzZSBrZXkg
cHJlc3MgZXZlbnQgaGVyZSBzaW5jZSBzZW5kaW5nIHNpbXVsYXRlZCBtb3VzZSBldmVudHMKICAg
ICAvLyBvbiBrZXkgZG93biBibG9ja3MgdGhlIHByb3BlciBzZW5kaW5nIG9mIHRoZSBrZXkgcHJl
c3MgZXZlbnQuCiAgICAgaWYgKGV2dC0+aXNLZXlib2FyZEV2ZW50KCkgJiYgZXZ0LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsKLSAgICAgICAgbV9pbnB1dFR5cGUtPmhh
bmRsZUtleXByZXNzRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2dCkpOworICAg
ICAgICBtX2lucHV0VHlwZS0+aGFuZGxlS2V5cHJlc3NFdmVudCh0b0tleWJvYXJkRXZlbnQoZXZ0
KSk7CiAgICAgICAgIGlmIChldnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKGV2dC0+aXNLZXlib2FyZEV2ZW50KCkgJiYgZXZ0LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQpIHsKLSAgICAgICAgbV9pbnB1dFR5cGUtPmhh
bmRsZUtleXVwRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2dCkpOworICAgICAg
ICBtX2lucHV0VHlwZS0+aGFuZGxlS2V5dXBFdmVudCh0b0tleWJvYXJkRXZlbnQoZXZ0KSk7CiAg
ICAgICAgIGlmIChldnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTE3NCwxMCArMTE3NCwxMCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKICAgICB9CiAKICAgICBpZiAoZXZ0LT5pc0JlZm9y
ZVRleHRJbnNlcnRlZEV2ZW50KCkpCi0gICAgICAgIG1faW5wdXRUeXBlLT5oYW5kbGVCZWZvcmVU
ZXh0SW5zZXJ0ZWRFdmVudChzdGF0aWNfY2FzdDxCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCo+KGV2
dCkpOworICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQo
dG9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChldnQpKTsKIAogICAgIGlmIChldnQtPmlzTW91c2VF
dmVudCgpICYmIGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCkgewot
ICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlTW91c2VEb3duRXZlbnQoc3RhdGljX2Nhc3Q8TW91
c2VFdmVudCo+KGV2dCkpOworICAgICAgICBtX2lucHV0VHlwZS0+aGFuZGxlTW91c2VEb3duRXZl
bnQodG9Nb3VzZUV2ZW50KGV2dCkpOwogICAgICAgICBpZiAoZXZ0LT5kZWZhdWx0SGFuZGxlZCgp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggYzc4ZjNlMC4uODgyODU0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTExNDksNyArMTE0OSw3IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAgICAgICAgIGlmICghZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmIChwbGF0Zm9ybUhhbmRsZUtleWRvd25FdmVudChzdGF0aWNfY2Fz
dDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKSkKKyAgICAgICAgaWYgKHBsYXRmb3JtSGFuZGxlS2V5
ZG93bkV2ZW50KHRvS2V5Ym9hcmRFdmVudChldmVudCkpKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIC8vIFdoZW4gdXNpbmcgc3BhdGlhbCBuYXZpZ2F0aW9uLCB3ZSB3YW50IHRvIGJl
IGFibGUgdG8gbmF2aWdhdGUgYXdheQpAQCAtMTE2MCw3ICsxMTYwLDcgQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6bWVudUxpc3REZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpLT5rZXlJ
ZGVudGlmaWVyKCk7CisgICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciA9IHRvS2V5
Ym9hcmRFdmVudChldmVudCktPmtleUlkZW50aWZpZXIoKTsKICAgICAgICAgYm9vbCBoYW5kbGVk
ID0gdHJ1ZTsKICAgICAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9
IHRoaXMtPmxpc3RJdGVtcygpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gb3B0aW9uVG9MaXN0
SW5kZXgoc2VsZWN0ZWRJbmRleCgpKTsKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6Om1lbnVMaXN0RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAg
ICAgICAgIGlmICghZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIGludCBrZXlDb2RlID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2
ZW50KS0+a2V5Q29kZSgpOworICAgICAgICBpbnQga2V5Q29kZSA9IHRvS2V5Ym9hcmRFdmVudChl
dmVudCktPmtleUNvZGUoKTsKICAgICAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAKICAgICAg
ICAgaWYgKGtleUNvZGUgPT0gJyAnICYmIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGRvY3Vt
ZW50KCkuZnJhbWUoKSkpIHsKQEAgLTEyNTYsNyArMTI1Niw3IEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6Om1lbnVMaXN0RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAg
ICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICB9CiAKLSAgICBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VF
dmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExl
ZnRCdXR0b24pIHsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vk
b3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHRvTW91c2VFdmVudChldmVudCkt
PmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAgZm9jdXMoKTsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc01lbnVMaXN0
KCkpIHsKQEAgLTEzMzksMTQgKzEzMzksMTQgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlz
dEJveERlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIGNvbnN0IFZlY3Rv
cjxIVE1MRWxlbWVudCo+JiBsaXN0SXRlbXMgPSB0aGlzLT5saXN0SXRlbXMoKTsKIAotICAgIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+
aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9u
KCkgPT0gTGVmdEJ1dHRvbikgeworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgdG9Nb3VzZUV2ZW50
KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBmb2N1cygpOwogICAg
ICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgbWF5IGNhdXNlIHVzIHRvIGxvc2Ugb3VyIHJlbmRlcmVy
LCBpbiB3aGljaCBjYXNlIGRvIG5vdCB3YW50IHRvIGhhbmRsZSB0aGUgZXZlbnQuCiAgICAgICAg
IGlmICghcmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBDb252
ZXJ0IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgotICAgICAg
ICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50
KTsKKyAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHRvTW91c2VFdmVudChldmVudCk7
CiAgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVy
KCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRy
YW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5k
ZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9JbnRTaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAg
ICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewpAQCAtMTM2Myw3ICsxMzYzLDcgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiAhdG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPmNhbkJl
U2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSB7Ci0gICAgICAgIE1vdXNlRXZlbnQqIG1v
dXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgICAgICBNb3Vz
ZUV2ZW50KiBtb3VzZUV2ZW50ID0gdG9Nb3VzZUV2ZW50KGV2ZW50KTsKICAgICAgICAgaWYgKG1v
dXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwgIW1vdXNlRXZlbnQtPmJ1dHRvbkRv
d24oKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTM4Niw3ICsxMzg2LDcgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50
KQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7
CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91
c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbiAmJiBkb2N1bWVudCgpLmZy
YW1lKCktPmV2ZW50SGFuZGxlcigpLmF1dG9zY3JvbGxSZW5kZXJlcigpICE9IHJlbmRlcmVyKCkp
IHsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBF
dmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgdG9Nb3VzZUV2ZW50KGV2ZW50KS0+YnV0
dG9uKCkgPT0gTGVmdEJ1dHRvbiAmJiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LmF1dG9zY3JvbGxSZW5kZXJlcigpICE9IHJlbmRlcmVyKCkpIHsKICAgICAgICAgLy8gVGhpcyBj
bGljayBvciBkcmFnIGV2ZW50IHdhcyBub3Qgb3ZlciBhbnkgb2YgdGhlIG9wdGlvbnMuCiAgICAg
ICAgIGlmIChtX2xhc3RPbkNoYW5nZVNlbGVjdGlvbi5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xMzk3LDcgKzEzOTcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgfSBlbHNlIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKICAgICAgICAgaWYgKCFl
dmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihl
dmVudCktPmtleUlkZW50aWZpZXIoKTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyID0gdG9LZXlib2FyZEV2ZW50KGV2ZW50KS0+a2V5SWRlbnRpZmllcigpOwogCiAgICAgICAg
IGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogICAgICAgICBpbnQgZW5kSW5kZXggPSAwOwpAQCAtMTQ1
OSwxNSArMTQ1OSwxNSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAg
ICBtX2FsbG93c05vbkNvbnRpZ3VvdXNTZWxlY3Rpb24gPSBtX211bHRpcGxlICYmIGlzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKGRvY3VtZW50KCkuZnJhbWUoKSk7CiAjZWxzZQotICAgICAgICAg
ICAgbV9hbGxvd3NOb25Db250aWd1b3VzU2VsZWN0aW9uID0gbV9tdWx0aXBsZSAmJiAoaXNTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoZG9jdW1lbnQoKS5mcmFtZSgpKSB8fCBzdGF0aWNfY2FzdDxL
ZXlib2FyZEV2ZW50Kj4oZXZlbnQpLT5jdHJsS2V5KCkpOworICAgICAgICAgICAgbV9hbGxvd3NO
b25Db250aWd1b3VzU2VsZWN0aW9uID0gbV9tdWx0aXBsZSAmJiAoaXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoZG9jdW1lbnQoKS5mcmFtZSgpKSB8fCB0b0tleWJvYXJkRXZlbnQoZXZlbnQpLT5j
dHJsS2V5KCkpOwogI2VuZGlmCi0gICAgICAgICAgICBib29sIHNlbGVjdE5ld0l0ZW0gPSBzdGF0
aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpLT5zaGlmdEtleSgpIHx8ICFtX2FsbG93c05v
bkNvbnRpZ3VvdXNTZWxlY3Rpb247CisgICAgICAgICAgICBib29sIHNlbGVjdE5ld0l0ZW0gPSB0
b0tleWJvYXJkRXZlbnQoZXZlbnQpLT5zaGlmdEtleSgpIHx8ICFtX2FsbG93c05vbkNvbnRpZ3Vv
dXNTZWxlY3Rpb247CiAKICAgICAgICAgICAgIGlmIChzZWxlY3ROZXdJdGVtKQogICAgICAgICAg
ICAgICAgIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGUgPSB0cnVlOwogICAgICAgICAgICAgLy8gSWYg
dGhlIGFuY2hvciBpcyB1bml0aWFsaXplZCwgb3IgaWYgd2UncmUgZ29pbmcgdG8gZGVzZWxlY3Qg
YWxsCiAgICAgICAgICAgICAvLyBvdGhlciBvcHRpb25zLCB0aGVuIHNldCB0aGUgYW5jaG9yIGlu
ZGV4IGVxdWFsIHRvIHRoZSBlbmQgaW5kZXguCi0gICAgICAgICAgICBib29sIGRlc2VsZWN0T3Ro
ZXJzID0gIW1fbXVsdGlwbGUgfHwgKCFzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQp
LT5zaGlmdEtleSgpICYmIHNlbGVjdE5ld0l0ZW0pOworICAgICAgICAgICAgYm9vbCBkZXNlbGVj
dE90aGVycyA9ICFtX211bHRpcGxlIHx8ICghdG9LZXlib2FyZEV2ZW50KGV2ZW50KS0+c2hpZnRL
ZXkoKSAmJiBzZWxlY3ROZXdJdGVtKTsKICAgICAgICAgICAgIGlmIChtX2FjdGl2ZVNlbGVjdGlv
bkFuY2hvckluZGV4IDwgMCB8fCBkZXNlbGVjdE90aGVycykgewogICAgICAgICAgICAgICAgIGlm
IChkZXNlbGVjdE90aGVycykKICAgICAgICAgICAgICAgICAgICAgZGVzZWxlY3RJdGVtc1dpdGhv
dXRWYWxpZGF0aW9uKCk7CkBAIC0xNDg2LDcgKzE0ODYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgfSBlbHNl
IGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KSB7CiAgICAg
ICAgIGlmICghZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpbnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkt
PmtleUNvZGUoKTsKKyAgICAgICAgaW50IGtleUNvZGUgPSB0b0tleWJvYXJkRXZlbnQoZXZlbnQp
LT5rZXlDb2RlKCk7CiAKICAgICAgICAgaWYgKGtleUNvZGUgPT0gJ1xyJykgewogICAgICAgICAg
ICAgaWYgKGZvcm0oKSkKQEAgLTE1MjcsNyArMTUyNyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCAmJiBl
dmVudC0+aXNLZXlib2FyZEV2ZW50KCkpIHsKLSAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9h
cmRFdmVudCA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCk7CisgICAgICAgIEtl
eWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQgPSB0b0tleWJvYXJkRXZlbnQoZXZlbnQpOwogICAg
ICAgICBpZiAoIWtleWJvYXJkRXZlbnQtPmN0cmxLZXkoKSAmJiAha2V5Ym9hcmRFdmVudC0+YWx0
S2V5KCkgJiYgIWtleWJvYXJkRXZlbnQtPm1ldGFLZXkoKSAmJiB1X2lzcHJpbnQoa2V5Ym9hcmRF
dmVudC0+Y2hhckNvZGUoKSkpIHsKICAgICAgICAgICAgIHR5cGVBaGVhZEZpbmQoa2V5Ym9hcmRF
dmVudCk7CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCA3YzQxMzg2Li5kNGM5ZTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC0xMjYs
MTMgKzEyNiwxMyBAQCB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9h
cmRFdmVudCgpKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50ICYmIHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCktPmtl
eUlkZW50aWZpZXIoKSA9PSAiVSswMDIwIikgeworICAgICAgICAgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiB0b0tleWJvYXJkRXZlbnQoZXZlbnQp
LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAyMCIpIHsKICAgICAgICAgICAgICAgICBzZXRBY3Rp
dmUodHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgLy8gTm8gc2V0RGVmYXVsdEhhbmRsZWQo
KSAtIElFIGRpc3BhdGNoZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UuCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2gg
KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCktPmNoYXJDb2RlKCkpIHsKKyAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHRvS2V5Ym9hcmRFdmVudChldmVudCktPmNoYXJDb2RlKCkpIHsK
ICAgICAgICAgICAgICAgICBjYXNlICdccic6CiAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNo
U2ltdWxhdGVkQ2xpY2soZXZlbnQpOwogICAgICAgICAgICAgICAgICAgICBldmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5dXBFdmVudCAmJiBzdGF0aWNfY2Fz
dDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpLT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAyMCIpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXl1cEV2ZW50
ICYmIHRvS2V5Ym9hcmRFdmVudChldmVudCktPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDIwIikg
ewogICAgICAgICAgICAgICAgIGlmIChhY3RpdmUoKSkKICAgICAgICAgICAgICAgICAgICAgZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayhldmVudCk7CiAgICAgICAgICAgICAgICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcAppbmRleCBlYzk1MWFjLi5lZDY5ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIGlmIChyZW5k
ZXJlcigpICYmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgfHwgZXZlbnQtPmlzRHJhZ0V2ZW50KCkg
fHwgZXZlbnQtPmV2ZW50SW50ZXJmYWNlKCkgPT0gV2hlZWxFdmVudEludGVyZmFjZVR5cGUgfHwg
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KSkKICAgICAgICAgZm9yd2Fy
ZEV2ZW50KGV2ZW50KTsKICAgICBlbHNlIGlmIChyZW5kZXJlcigpICYmIGV2ZW50LT5pc0JlZm9y
ZVRleHRJbnNlcnRlZEV2ZW50KCkpCi0gICAgICAgIGhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2
ZW50KHN0YXRpY19jYXN0PEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAg
ICAgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQodG9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dChldmVudCkpOwogCiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKaW5k
ZXggZmQ0ZGU2NC4uNTFkYjFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3Bw
CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBJbWFnZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLnJlc2l6ZUV2ZW50KQogICAgICAgICBtX2RvYy0+d2luZG93
U2l6ZUNoYW5nZWQoKTsKICAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBNb3VzZUV2
ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAg
ICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHRvTW91c2VFdmVudChldmVudCk7CiAgICAgICAg
IG1fZG9jLT5pbWFnZUNsaWNrZWQobW91c2VFdmVudC0+eCgpLCBtb3VzZUV2ZW50LT55KCkpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA1NmM1Mzk0Li43OTFjNWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
bnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCopCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRT
dWJtaXRJbXBsaWNpdGx5KEV2ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gZXZlbnQtPmlzS2V5
Ym9hcmRFdmVudCgpICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZl
bnQgJiYgc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KS0+Y2hhckNvZGUoKSA9PSAn
XHInOworICAgIHJldHVybiBldmVudC0+aXNLZXlib2FyZEV2ZW50KCkgJiYgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCAmJiB0b0tleWJvYXJkRXZlbnQoZXZlbnQp
LT5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBJ
bnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RG9jdW1lbnQuY3BwCmluZGV4IGE0YWMyZDYuLjZiYThiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIGlmICghdmlkZW8pCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVu
dCA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCk7CisgICAgICAgIEtleWJvYXJk
RXZlbnQqIGtleWJvYXJkRXZlbnQgPSB0b0tleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBp
ZiAoa2V5Ym9hcmRFdmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMjAiKSB7IC8vIHNwYWNl
CiAgICAgICAgICAgICBpZiAodmlkZW8tPnBhdXNlZCgpKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHZpZGVvLT5jYW5QbGF5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKaW5kZXggOTM4MWQ5OS4uZTY1MmMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQoKQogCiBib29sIFRleHRGaWVsZElucHV0VHlwZTo6c2hv
dWxkU3VibWl0SW1wbGljaXRseShFdmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS50ZXh0SW5wdXRFdmVudCAmJiBldmVudC0+ZXZlbnRJbnRl
cmZhY2UoKSA9PSBUZXh0RXZlbnRJbnRlcmZhY2VUeXBlICYmIHN0YXRpY19jYXN0PFRleHRFdmVu
dCo+KGV2ZW50KS0+ZGF0YSgpID09ICJcbiIpIHx8IElucHV0VHlwZTo6c2hvdWxkU3VibWl0SW1w
bGljaXRseShldmVudCk7CisgICAgcmV0dXJuIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS50ZXh0SW5wdXRFdmVudCAmJiBldmVudC0+ZXZlbnRJbnRlcmZhY2UoKSA9PSBUZXh0RXZlbnRJ
bnRlcmZhY2VUeXBlICYmIHRvVGV4dEV2ZW50KGV2ZW50KS0+ZGF0YSgpID09ICJcbiIpIHx8IElu
cHV0VHlwZTo6c2hvdWxkU3VibWl0SW1wbGljaXRseShldmVudCk7CiB9CiAKIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUlucHV0UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcAppbmRleCBkNjA0OWE1Li40ZDU0
YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50VHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRUeXBlcy5jcHAKQEAgLTI1NSw3ICsyNTUsNyBAQCBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50
JiBkb2N1bQogdm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBMZWZ0IGJ1dHRvbiBpcyAwLiBSZWpl
Y3RzIG1vdXNlIGV2ZW50cyBub3QgZnJvbSBsZWZ0IGJ1dHRvbi4KLSAgICBpZiAoZXZlbnQtPmlz
TW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigp
KQorICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgdG9Nb3VzZUV2ZW50KGV2ZW50KS0+
YnV0dG9uKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghcmVuZGVyZXIoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApp
bmRleCAwYWNlZDc4Li4xNzdmMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50
KQogICAgIE1lZGlhQ29udHJvbERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQp
OwogCiAgICAgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBMYXlvdXRQb2lu
dCBsb2NhdGlvbiA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmFic29sdXRlTG9j
YXRpb24oKTsKKyAgICAgICAgTGF5b3V0UG9pbnQgbG9jYXRpb24gPSB0b01vdXNlRXZlbnQoZXZl
bnQpLT5hYnNvbHV0ZUxvY2F0aW9uKCk7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+dGFyZ2V0KCkgPT0gdGhpcykgewog
ICAgICAgICAgICAgc3RhcnREcmFnKGxvY2F0aW9uKTsKICAgICAgICAgICAgIGV2ZW50LT5zZXRE
ZWZhdWx0SGFuZGxlZCgpOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZl
bnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFBvb3IgbWFuJ3MgbW91c2VsZWF2ZSBldmVu
dCBkZXRlY3Rpb24uCi0gICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldmVudCk7CisgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHRvTW91c2VF
dmVudChldmVudCk7CiAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQgPSBtb3VzZUV2ZW50
LT5yZWxhdGVkVGFyZ2V0KCk7CiAgICAgaWYgKCFyZWxhdGVkVGFyZ2V0IHx8ICFyZWxhdGVkVGFy
Z2V0LT50b05vZGUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTM5LDcgKzkzOSw3IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ6OmNyZWF0ZShEb2N1CiB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gTGVmdCBidXR0b24gaXMg
MC4gUmVqZWN0cyBtb3VzZSBldmVudHMgbm90IGZyb20gbGVmdCBidXR0b24uCi0gICAgaWYgKGV2
ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5i
dXR0b24oKSkKKyAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHRvTW91c2VFdmVudChl
dmVudCktPmJ1dHRvbigpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIXJlbmRlcmVyKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCmluZGV4IDdi
ZmFmNDMuLmRlZGI1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuY3BwCkBAIC0zNzMsNyArMzczLDcgQEAgYm9vbCBNZWRpYUNvbnRyb2xzOjpjb250YWlu
c1JlbGF0ZWRUYXJnZXQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmICghZXZlbnQtPmlzTW91c2VF
dmVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRU
YXJnZXQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5yZWxhdGVkVGFyZ2V0KCk7
CisgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQgPSB0b01vdXNlRXZlbnQoZXZlbnQpLT5y
ZWxhdGVkVGFyZ2V0KCk7CiAgICAgaWYgKCFyZWxhdGVkVGFyZ2V0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgcmV0dXJuIGNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQtPnRvTm9kZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmlu
ZGV4IDY2MGU4ZWIuLjg3OGJmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgTWVkaWFD
b250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEV2ZW50CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQpCiAgICAgICAgIG1fbWVkaWFDb250cm9scy0+aGFuZGxlQ2xpY2tFdmVudChldmVudCk7
CiAgICAgZWxzZSBpZiAoKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLndoZWVsRXZlbnQg
fHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KSAmJiBldmVu
dC0+ZXZlbnRJbnRlcmZhY2UoKSA9PSBXaGVlbEV2ZW50SW50ZXJmYWNlVHlwZSkgewotICAgICAg
ICBXaGVlbEV2ZW50KiB3aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50
KTsKKyAgICAgICAgV2hlZWxFdmVudCogd2hlZWxFdmVudCA9IHRvV2hlZWxFdmVudChldmVudCk7
CiAgICAgICAgIGlmIChtX21lZGlhQ29udHJvbHMtPnNob3VsZENsb3NlZENhcHRpb25zQ29udGFp
bmVyUHJldmVudFBhZ2VTY3JvbGxpbmcod2hlZWxFdmVudC0+d2hlZWxEZWx0YVkoKSkpCiAgICAg
ICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCAzM2RiZjJlLi5i
ZmJiNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+
KGV2ZW50KTsKKyAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gdG9Nb3VzZUV2ZW50KGV2ZW50
KTsKICAgICBib29sIGlzTGVmdEJ1dHRvbiA9IG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRC
dXR0b247CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBldmVudC0+dHlwZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5j
cHAKaW5kZXggNWU0NzExYS4uYzI5M2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNwaW5C
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2Fz
dDxNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSB0b01v
dXNlRXZlbnQoZXZlbnQpOwogICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJv
eC0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcykpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAg
ICAgICAgaWYgKGJveC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLmNvbnRhaW5zKGxvY2Fs
KSkgewpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmZvcndhcmRF
dmVudChFdmVudCogZXZlbnQpCiAgICAgaWYgKCFtX3NwaW5CdXR0b25Pd25lci0+c2hvdWxkU3Bp
bkJ1dHRvblJlc3BvbmRUb1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRv
U3RlcEFjdGlvbihzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpLT53aGVlbERlbHRhWSgp
KTsKKyAgICBkb1N0ZXBBY3Rpb24odG9XaGVlbEV2ZW50KGV2ZW50KS0+d2hlZWxEZWx0YVkoKSk7
CiAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4
IGFjMzU4MzEuLjE5YjViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIHZv
aWQgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCiB7CiAgICAgLy8gT24gbW91c2Vkb3duLCBicmluZyB1cCBhIG1lbnUsIGlm
IG5lZWRlZAogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50
KHNoYWRvd0hvc3QoKSk7Ci0gICAgaWYgKGlucHV0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNf
Y2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CisgICAg
aWYgKGlucHV0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50
ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiB0b01vdXNlRXZlbnQoZXZlbnQpLT5idXR0b24o
KSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlucHV0LT5mb2N1cygpOwogICAgICAgICBpbnB1
dC0+c2VsZWN0KCk7CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lk
IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgp
ICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0
b24pIHsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZl
bnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHRvTW91c2VFdmVudChldmVudCktPmJ1dHRv
bigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIo
KS0+dmlzaWJsZVRvSGl0VGVzdGluZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS5mcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCh0aGlzKTsKQEAgLTIzNSw3ICsy
MzUsNyBAQCB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIGlucHV0LT5zZWxlY3QoKTsKICAgICAgICAg
ZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQotICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYm
IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24p
IHsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiB0b01vdXNlRXZlbnQoZXZlbnQpLT5idXR0b24oKSA9
PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChtX2NhcHR1cmluZykgewogICAgICAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkgewogICAgICAgICAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVs
bHB0cik7CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgfQogCiAgICAgLy8g
T24gbW91c2UgZG93biwgc2VsZWN0IHRoZSB0ZXh0IGFuZCBzZXQgZm9jdXMuCi0gICAgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01v
dXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9
PSBMZWZ0QnV0dG9uKSB7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiB0b01vdXNlRXZlbnQoZXZl
bnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
IHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAgICAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQodGhpcyk7CkBA
IC0zMjYsNyArMzI2LDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwogICAgIH0KICAgICAvLyBPbiBtb3VzZSB1cCwgcmVsZWFzZSBjYXB0dXJlIGNs
ZWFubHkuCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVu
dCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2
ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgeworICAgIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHRv
TW91c2VFdmVudChldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYg
KG1fY2FwdHVyaW5nICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVz
dGluZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFt
ZSgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmlu
Z01vdXNlRXZlbnRzRWxlbWVudChudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAyYmVkYzAyLi4wY2E2MWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xMzUsMTEgKzEz
NSwxMSBAQCBQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50KiBldmVudCkKICAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZl
bnQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBNb3VzZUV2ZW50KiBtb3VzZUV2
ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICBIaXRUZXN0UmVzdWx0
IHJlc3VsdChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOworICAgIE1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQgPSB0b01vdXNlRXZlbnQoKmV2ZW50KTsKKyAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAKICAgICBpZiAoRnJhbWUqIGZy
YW1lID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAg
ICAgICByZXN1bHQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQo
bW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICAgICAgcmVzdWx0ID0gZnJhbWUt
PmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVM
b2NhdGlvbigpKTsKIAogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCBiNjI5M2UyLi43YmQwOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0zMjU3LDcgKzMyNTcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVGV4dElucHV0RXZl
bnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFdmVudCogdW5kZXJseWluZ0V2ZQogewogICAgIC8vIFBs
YXRmb3JtcyBzaG91bGQgZGlmZmVyZW50aWF0ZSByZWFsIGNvbW1hbmRzIGxpa2Ugc2VsZWN0QWxs
IGZyb20gdGV4dCBpbnB1dCBpbiBkaXNndWlzZSAobGlrZSBpbnNlcnROZXdsaW5lKSwKICAgICAv
LyBhbmQgYXZvaWQgZGlzcGF0Y2hpbmcgdGV4dCBpbnB1dCBldmVudHMgZnJvbSBrZXlkb3duIGRl
ZmF1bHQgaGFuZGxlcnMuCi0gICAgQVNTRVJUKCF1bmRlcmx5aW5nRXZlbnQgfHwgIXVuZGVybHlp
bmdFdmVudC0+aXNLZXlib2FyZEV2ZW50KCkgfHwgc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+
KHVuZGVybHlpbmdFdmVudCktPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCk7
CisgICAgQVNTRVJUKCF1bmRlcmx5aW5nRXZlbnQgfHwgIXVuZGVybHlpbmdFdmVudC0+aXNLZXli
b2FyZEV2ZW50KCkgfHwgdG9LZXlib2FyZEV2ZW50KHVuZGVybHlpbmdFdmVudCktPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCk7CiAKICAgICBFdmVudFRhcmdldCogdGFyZ2V0
OwogICAgIGlmICh1bmRlcmx5aW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCA4OGM3N2Y2Li43NWViODcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAK
QEAgLTYwOCw5ICs2MDgsOSBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2
YWlsYWJsZVBsdWdpbkluZGljYXRvckV2ZW50KEV2ZW50KiBldmVudCkKICAgICBpZiAoIWV2ZW50
LT5pc01vdXNlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTW91c2VFdmVudCogbW91
c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7CisgICAgTW91c2VFdmVu
dCogbW91c2VFdmVudCA9IHRvTW91c2VFdmVudChldmVudCk7CiAgICAgSFRNTFBsdWdJbkVsZW1l
bnQmIGVsZW1lbnQgPSB0b0hUTUxQbHVnSW5FbGVtZW50KGZyYW1lT3duZXJFbGVtZW50KCkpOwot
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBz
dGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7
CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYm
IHRvTW91c2VFdmVudChldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAg
bV9tb3VzZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yID0gaXNJblVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yKG1vdXNlRXZlbnQpOwogICAgICAgICBpZiAobV9tb3VzZURvd25X
YXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKSB7CiAgICAgICAgICAgICBmcmFtZSgpLmV2
ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCgmZWxlbWVudCk7CkBA
IC02MTksNyArNjE5LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aGFuZGxlVW5hdmFp
bGFibGVQbHVnaW5JbmRpY2F0b3JFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIH0KICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQotICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVu
dCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgeworICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgdG9Nb3VzZUV2ZW50KGV2ZW50KS0+
YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAobV91bmF2YWlsYWJsZVBsdWdp
bkluZGljYXRvcklzUHJlc3NlZCkgewogICAgICAgICAgICAgZnJhbWUoKS5ldmVudEhhbmRsZXIo
KS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBl
bGVtZW50LnNldElzQ2FwdHVyaW5nTW91c2VFdmVudHMoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggMWFl
YTMzMy4uYTE2NGY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50KQogICAgIGlmICghZXZl
bnQtPmlzTW91c2VFdmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNb3VzZUV2ZW50KiBt
b3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICBNb3VzZUV2
ZW50KiBtb3VzZUV2ZW50ID0gdG9Nb3VzZUV2ZW50KGV2ZW50KTsKIAogICAgIC8vIElmIHdlJ3Jl
IGEgc25hcHNob3R0ZWQgcGx1Z2luLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBhY3RpdmF0ZSBv
bgogICAgIC8vIGNsaWNrcyBldmVuIGlmIHRoZSBwYWdlIGlzIHByZXZlbnRpbmcgb3VyIGRlZmF1
bHQgYmVoYXZpb3VyLiBPdGhlcndpc2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>