<?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>40951</bug_id>
          
          <creation_ts>2010-06-21 16:02:00 -0700</creation_ts>
          <short_desc>Make JSC more resilient in the face of parse failures</short_desc>
          <delta_ts>2010-06-21 16:18:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>240936</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-21 16:02:00 -0700</bug_when>
    <thetext>Make JSC more resilient in the face of parse failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240937</commentid>
    <comment_count>1</comment_count>
      <attachid>59304</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-21 16:05:14 -0700</bug_when>
    <thetext>Created attachment 59304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240939</commentid>
    <comment_count>2</comment_count>
      <attachid>59304</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-06-21 16:09:14 -0700</bug_when>
    <thetext>Comment on attachment 59304
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240947</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-21 16:18:04 -0700</bug_when>
    <thetext>Committed r61588: &lt;http://trac.webkit.org/changeset/61588&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59304</attachid>
            <date>2010-06-21 16:05:14 -0700</date>
            <delta_ts>2010-06-21 16:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40951-20100621160512.patch</filename>
            <type>text/plain</type>
            <size>26804</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4ZmY0N2Q1YzBhMmY5MDY0N2E3MjUxZDdlMjg0NjUyNDE1N2FhYWI1Li42
ODlkMTU4OGJkMDVmNGMyMjAyOGRiYTk3NmY2NzkwOWU5OTQxNTYwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMTAtMDYtMjEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEpT
QyBtb3JlIHJlc2lsaWVudCBpbiB0aGUgZmFjZSBvZiBwYXJzZSBmYWlsdXJlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NTEKKworICAgICAgICBB
IG51bWJlciBvZiByZWNlbnQgYnVncyBoYXZlIG9jY3VycmVkIGR1ZSB0byBpc3N1ZXMgbGlrZSBt
aXNjb3VudGluZworICAgICAgICBCT01zLCBldGMgd2hpY2ggbGVhZCB0byBpbnRlcmVzdGluZyBj
cmFzaGVzIGxhdGVyIG9uLiAgQWRkaW5nIHRoaXMKKyAgICAgICAgbG9naWMgaGFyZGVucyBKU0Mg
aW4gdGhlIGZhY2Ugb2YgdGhlc2UgZXJyb3JzLCBhbmQgaGFzIG5vIGltcGFjdCBvbgorICAgICAg
ICBwZXJmb3JtYW5jZSAoMzJiaXQgaml0IGFjdHVhbGx5IGdldHMgMC43JSBmYXN0ZXIgYnV0IEkg
cHV0IHRoYXQgZG93bgorICAgICAgICB0byBjYWNoZSBlZmZlY3RzKS4KKworICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVwYXJzZUZv
ckV4Y2VwdGlvbkluZm9JZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGlu
ZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpleHBy
ZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
Z2V0QnlJZEV4Y2VwdGlvbkluZm9Gb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNv
ZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Ynl0ZWNvZGVPZmZzZXQp
OgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0
ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAg
IChKU0M6OkludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICogaml0L0pJVE9w
Y29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRy
YW1wb2xpbmVzKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpp
c051bWVyaWNDb21wYXJlRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5j
cHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNhbGwpOgor
ICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JDb25zdHJ1Y3QpOgor
ICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmdlbmVyYXRlSklUQ29kZUZvckNhbGwp
OgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmdlbmVyYXRlSklUQ29kZUZvckNv
bnN0cnVjdCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6cmVwYXJzZUV4Y2Vw
dGlvbkluZm8pOgorICAgICAgICAoSlNDOjpFdmFsRXhlY3V0YWJsZTo6cmVwYXJzZUV4Y2VwdGlv
bkluZm8pOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGU6OmJ5dGVjb2RlRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZTo6Ynl0ZWNvZGVGb3JDb25zdHJ1Y3QpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpudW1lcmljQ29t
cGFyZUZ1bmN0aW9uKToKKwogMjAxMC0wNi0xOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNjcyM2I5NjE2NDdkNWM0ZDU1ZWMyY2I5NDgxNGFk
MjJlNGE5ZThiYS4uMzBkMTAxYzk5MzZlYWE3OGNmYjI5YTJlNmNjZjZhYjIzODhjZDM5NyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xNTE5LDEwICsxNTE5LDEwIEBA
IHZvaWQgQ29kZUJsb2NrOjptYXJrQWdncmVnYXRlKE1hcmtTdGFjayYgbWFya1N0YWNrKQogICAg
ICAgICBtX2Z1bmN0aW9uRGVjbHNbaV0tPm1hcmtBZ2dyZWdhdGUobWFya1N0YWNrKTsKIH0KIAot
dm9pZCBDb2RlQmxvY2s6OnJlcGFyc2VGb3JFeGNlcHRpb25JbmZvSWZOZWNlc3NhcnkoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitib29sIENvZGVCbG9jazo6cmVwYXJzZUZvckV4Y2VwdGlvbkluZm9J
Zk5lY2Vzc2FyeShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBpZiAobV9leGNlcHRpb25J
bmZvKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgQVNTRVJU
KCFtX3JhcmVEYXRhIHx8ICFtX3JhcmVEYXRhLT5tX2V4Y2VwdGlvbkhhbmRsZXJzLnNpemUoKSk7
CiAgICAgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4gPSBjYWxsRnJhbWUtPnNjb3BlQ2hhaW4o
KTsKQEAgLTE1MzksNiArMTUzOSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXBhcnNlRm9yRXhjZXB0
aW9uSW5mb0lmTmVjZXNzYXJ5KENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIH0KIAogICAgIG1f
ZXhjZXB0aW9uSW5mby5zZXQobV9vd25lckV4ZWN1dGFibGUtPnJlcGFyc2VFeGNlcHRpb25JbmZv
KG1fZ2xvYmFsRGF0YSwgc2NvcGVDaGFpbiwgdGhpcykpOworICAgIHJldHVybiBtX2V4Y2VwdGlv
bkluZm87CiB9CiAKIEhhbmRsZXJJbmZvKiBDb2RlQmxvY2s6OmhhbmRsZXJGb3JCeXRlY29kZU9m
ZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCkKQEAgLTE1NjMsMTEgKzE1NjQsOCBAQCBpbnQg
Q29kZUJsb2NrOjpsaW5lTnVtYmVyRm9yQnl0ZWNvZGVPZmZzZXQoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHVuc2lnbmVkIGJ5dGVjbwogewogICAgIEFTU0VSVChieXRlY29kZU9mZnNldCA8IG1faW5z
dHJ1Y3Rpb25Db3VudCk7CiAKLSAgICByZXBhcnNlRm9yRXhjZXB0aW9uSW5mb0lmTmVjZXNzYXJ5
KGNhbGxGcmFtZSk7Ci0gICAgQVNTRVJUKG1fZXhjZXB0aW9uSW5mbyk7Ci0KLSAgICBpZiAoIW1f
ZXhjZXB0aW9uSW5mby0+bV9saW5lSW5mby5zaXplKCkpCi0gICAgICAgIHJldHVybiBtX293bmVy
RXhlY3V0YWJsZS0+c291cmNlKCkuZmlyc3RMaW5lKCk7IC8vIEVtcHR5IGZ1bmN0aW9uCisgICAg
aWYgKCFyZXBhcnNlRm9yRXhjZXB0aW9uSW5mb0lmTmVjZXNzYXJ5KGNhbGxGcmFtZSkgfHwgIW1f
ZXhjZXB0aW9uSW5mby0+bV9saW5lSW5mby5zaXplKCkpCisgICAgICAgIHJldHVybiBtX293bmVy
RXhlY3V0YWJsZS0+c291cmNlKCkuZmlyc3RMaW5lKCk7IC8vIEVtcHR5IGZ1bmN0aW9uIG9yIHVu
YWJsZSB0byByZXBhcnNlCiAKICAgICBpbnQgbG93ID0gMDsKICAgICBpbnQgaGlnaCA9IG1fZXhj
ZXB0aW9uSW5mby0+bV9saW5lSW5mby5zaXplKCk7CkBAIC0xNTg4LDExICsxNTg2LDkgQEAgaW50
IENvZGVCbG9jazo6ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHVuc2lnbmVkIGIKIHsKICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBtX2lu
c3RydWN0aW9uQ291bnQpOwogCi0gICAgcmVwYXJzZUZvckV4Y2VwdGlvbkluZm9JZk5lY2Vzc2Fy
eShjYWxsRnJhbWUpOwotICAgIEFTU0VSVChtX2V4Y2VwdGlvbkluZm8pOwotCi0gICAgaWYgKCFt
X2V4Y2VwdGlvbkluZm8tPm1fZXhwcmVzc2lvbkluZm8uc2l6ZSgpKSB7CisgICAgaWYgKCFyZXBh
cnNlRm9yRXhjZXB0aW9uSW5mb0lmTmVjZXNzYXJ5KGNhbGxGcmFtZSkgfHwgIW1fZXhjZXB0aW9u
SW5mby0+bV9leHByZXNzaW9uSW5mby5zaXplKCkpIHsKICAgICAgICAgLy8gV2UgZGlkbid0IHRo
aW5rIGFueXRoaW5nIGNvdWxkIHRocm93LiAgQXBwYXJlbnRseSB3ZSB3ZXJlIHdyb25nLgorICAg
ICAgICAvLyBBbHRlcm5hdGl2ZWx5IHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gdHJ5aW5nIHRv
IHJlcGFyc2UKICAgICAgICAgc3RhcnRPZmZzZXQgPSAwOwogICAgICAgICBlbmRPZmZzZXQgPSAw
OwogICAgICAgICBkaXZvdCA9IDA7CkBAIC0xNjI3LDEwICsxNjIzLDcgQEAgYm9vbCBDb2RlQmxv
Y2s6OmdldEJ5SWRFeGNlcHRpb25JbmZvRm9yQnl0ZWNvZGVPZmZzZXQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHVuc2kKIHsKICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBtX2luc3RydWN0aW9u
Q291bnQpOwogCi0gICAgcmVwYXJzZUZvckV4Y2VwdGlvbkluZm9JZk5lY2Vzc2FyeShjYWxsRnJh
bWUpOwotICAgIEFTU0VSVChtX2V4Y2VwdGlvbkluZm8pOyAgICAgICAgCi0KLSAgICBpZiAoIW1f
ZXhjZXB0aW9uSW5mby0+bV9nZXRCeUlkRXhjZXB0aW9uSW5mby5zaXplKCkpCisgICAgaWYgKCFy
ZXBhcnNlRm9yRXhjZXB0aW9uSW5mb0lmTmVjZXNzYXJ5KGNhbGxGcmFtZSkgfHwgIW1fZXhjZXB0
aW9uSW5mby0+bV9nZXRCeUlkRXhjZXB0aW9uSW5mby5zaXplKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGludCBsb3cgPSAwOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmggYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApp
bmRleCAzYjhmYzYwOWU3YzAyZGQzM2M0M2Y4MTU2YzE3Zjc5Yjg4NDUyYWRkLi4zNWM0MWNjZWQ1
MjM0ZWVmYjkyZmQ0MmYxMTFmMjY2ZTY1YmNmNzFmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaApAQCAtMzUxLDcgKzM1MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcGFyc2VGb3JFeGNl
cHRpb25JbmZvSWZOZWNlc3NhcnkoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGlmICghcmVwYXJz
ZUZvckV4Y2VwdGlvbkluZm9JZk5lY2Vzc2FyeShjYWxsRnJhbWUpKQorICAgICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICAgICAgcmV0dXJuIGJpbmFyeUNob3A8Q2FsbFJldHVybk9mZnNl
dFRvQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkLCBnZXRDYWxsUmV0dXJuT2Zmc2V0PihjYWxsUmV0
dXJuSW5kZXhWZWN0b3IoKS5iZWdpbigpLCBjYWxsUmV0dXJuSW5kZXhWZWN0b3IoKS5zaXplKCks
IGdldEpJVENvZGUoKS5vZmZzZXRPZihyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS0+Ynl0ZWNvZGVP
ZmZzZXQ7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC01MjEsNyArNTIyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgcHJpbnRQdXRCeUlkT3AoRXhlY1N0YXRlKiwgaW50IGxvY2F0
aW9uLCBWZWN0b3I8SW5zdHJ1Y3Rpb24+Ojpjb25zdF9pdGVyYXRvciYsIGNvbnN0IGNoYXIqIG9w
KSBjb25zdDsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgcmVwYXJzZUZvckV4Y2VwdGlvbkluZm9J
Zk5lY2Vzc2FyeShDYWxsRnJhbWUqKTsKKyAgICAgICAgYm9vbCByZXBhcnNlRm9yRXhjZXB0aW9u
SW5mb0lmTmVjZXNzYXJ5KENhbGxGcmFtZSopIFdBUk5fVU5VU0VEX1JFVFVSTjsKIAogICAgICAg
ICB2b2lkIGNyZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKQogICAgICAgICB7CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggNDhmMjI3Y2NkOTZhMTk1ZmFh
ZjMzM2VmNmQzZWI3NzQ3Yzk4N2JhNy4uMDI1NzczZjIyMmY3OTg0NjRmMGM1YjMzZTc4ZGM3MzNh
M2FiMGY2YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApA
QCAtNjQzLDYgKzY0MywxMCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1F
eGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUwogICAgIH0KIAogICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gJnByb2dyYW0tPmJ5dGVjb2RlKGNhbGxGcmFtZSwgc2Nv
cGVDaGFpbik7CisgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOworICAgICAgICByZXR1cm4ganNOdWxs
KCk7CisgICAgfQogCiAgICAgUmVnaXN0ZXIqIG9sZEVuZCA9IG1fcmVnaXN0ZXJGaWxlLmVuZCgp
OwogICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBvbGRFbmQgKyBjb2RlQmxvY2stPm1fbnVtUGFyYW1l
dGVycyArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGNvZGVCbG9jay0+bV9u
dW1DYWxsZWVSZWdpc3RlcnM7CkBAIC03MjIsOSArNzI2LDEyIEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24s
IENhbGxUCiAKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVKUykgewogICAgICAgICBTY29w
ZUNoYWluTm9kZSogY2FsbERhdGFTY29wZUNoYWluID0gY2FsbERhdGEuanMuc2NvcGVDaGFpbjsK
LSAgICAgICAgQ29kZUJsb2NrKiBuZXdDb2RlQmxvY2sgPSAmY2FsbERhdGEuanMuZnVuY3Rpb25F
eGVjdXRhYmxlLT5ieXRlY29kZUZvckNhbGwoY2FsbEZyYW1lLCBjYWxsRGF0YVNjb3BlQ2hhaW4p
OworICAgICAgICBDb2RlQmxvY2sqIG5ld0NvZGVCbG9jayA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9u
RXhlY3V0YWJsZS0+Ynl0ZWNvZGVGb3JDYWxsKGNhbGxGcmFtZSwgY2FsbERhdGFTY29wZUNoYWlu
KTsKIAotICAgICAgICBuZXdDYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbChu
ZXdDb2RlQmxvY2ssICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCByZWdpc3Rlck9mZnNl
dCwgYXJnQ291bnQpOworICAgICAgICBpZiAobmV3Q29kZUJsb2NrKQorICAgICAgICAgICAgbmV3
Q2FsbEZyYW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwobmV3Q29kZUJsb2NrLCAmbV9y
ZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgcmVnaXN0ZXJPZmZzZXQsIGFyZ0NvdW50KTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbmV3Q2FsbEZyYW1lID0gMDsKICAgICAgICAgaWYgKFVO
TElLRUxZKCFuZXdDYWxsRnJhbWUpKSB7CiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICBtX3JlZ2lzdGVyRmls
ZS5zaHJpbmsob2xkRW5kKTsKQEAgLTgxMSw5ICs4MTgsMTIgQEAgSlNPYmplY3QqIEludGVycHJl
dGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogY29u
c3RydWMKIAogICAgIGlmIChjb25zdHJ1Y3RUeXBlID09IENvbnN0cnVjdFR5cGVKUykgewogICAg
ICAgICBTY29wZUNoYWluTm9kZSogY29uc3RydWN0RGF0YVNjb3BlQ2hhaW4gPSBjb25zdHJ1Y3RE
YXRhLmpzLnNjb3BlQ2hhaW47Ci0gICAgICAgIENvZGVCbG9jayogbmV3Q29kZUJsb2NrID0gJmNv
bnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5ieXRlY29kZUZvckNvbnN0cnVjdChj
YWxsRnJhbWUsIGNvbnN0cnVjdERhdGFTY29wZUNoYWluKTsKKyAgICAgICAgQ29kZUJsb2NrKiBu
ZXdDb2RlQmxvY2sgPSBjb25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Ynl0ZWNv
ZGVGb3JDb25zdHJ1Y3QoY2FsbEZyYW1lLCBjb25zdHJ1Y3REYXRhU2NvcGVDaGFpbik7CisgICAg
ICAgIGlmIChuZXdDb2RlQmxvY2spCisgICAgICAgICAgICBuZXdDYWxsRnJhbWUgPSBzbGlkZVJl
Z2lzdGVyV2luZG93Rm9yQ2FsbChuZXdDb2RlQmxvY2ssICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2Fs
bEZyYW1lLCByZWdpc3Rlck9mZnNldCwgYXJnQ291bnQpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBuZXdDYWxsRnJhbWUgPSAwOwogCi0gICAgICAgIG5ld0NhbGxGcmFtZSA9IHNsaWRlUmVn
aXN0ZXJXaW5kb3dGb3JDYWxsKG5ld0NvZGVCbG9jaywgJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxs
RnJhbWUsIHJlZ2lzdGVyT2Zmc2V0LCBhcmdDb3VudCk7CiAgICAgICAgIGlmIChVTkxJS0VMWSgh
bmV3Q2FsbEZyYW1lKSkgewogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3Zl
cmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5r
KG9sZEVuZCk7CkBAIC05MDIsOCArOTEyLDExIEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0
ZXI6OnByZXBhcmVGb3JSZXBlYXRDYWxsKEZ1bmN0aW9uRXhlY3V0YWJsZSogRnVuY3Rpb25FCiAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdjOyArK2kpCiAgICAgICAgIG5ld0NhbGxGcmFtZS0+
cigrK2RzdCkgPSBqc1VuZGVmaW5lZCgpOwogICAgIAotICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gJkZ1bmN0aW9uRXhlY3V0YWJsZS0+Ynl0ZWNvZGVGb3JDYWxsKGNhbGxGcmFtZSwgc2NvcGVD
aGFpbik7Ci0gICAgbmV3Q2FsbEZyYW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwoY29k
ZUJsb2NrLCAmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgYXJnYyArIFJlZ2lzdGVyRmls
ZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSwgYXJnYyk7CisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBGdW5jdGlvbkV4ZWN1dGFibGUtPmJ5dGVjb2RlRm9yQ2FsbChjYWxsRnJhbWUsIHNjb3BlQ2hh
aW4pOworICAgIGlmIChjb2RlQmxvY2spCisgICAgICAgIG5ld0NhbGxGcmFtZSA9IHNsaWRlUmVn
aXN0ZXJXaW5kb3dGb3JDYWxsKGNvZGVCbG9jaywgJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJh
bWUsIGFyZ2MgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUsIGFyZ2MpOworICAg
IGVsc2UKKyAgICAgICAgbmV3Q2FsbEZyYW1lID0gMDsKICAgICBpZiAoVU5MSUtFTFkoIW5ld0Nh
bGxGcmFtZSkpIHsKICAgICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihjYWxsRnJhbWUpOwogICAgICAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsob2xkRW5kKTsKQEAg
LTk2OCw2ICs5ODEsMTAgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0
YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWMKICAgICBEeW5hbWljR2xv
YmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2NvcGUoY2FsbEZyYW1lLCBzY29wZUNoYWluLT5n
bG9iYWxPYmplY3QpOwogCiAgICAgRXZhbENvZGVCbG9jayogY29kZUJsb2NrID0gJmV2YWwtPmJ5
dGVjb2RlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbik7CisgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAg
ICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwor
ICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgfQogCiAgICAgSlNWYXJpYWJsZU9iamVjdCog
dmFyaWFibGVPYmplY3Q7CiAgICAgZm9yIChTY29wZUNoYWluTm9kZSogbm9kZSA9IHNjb3BlQ2hh
aW47IDsgbm9kZSA9IG5vZGUtPm5leHQpIHsKQEAgLTM2MjIsOCArMzYzOSwxMCBAQCBza2lwX2lk
X2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgQ29kZUJsb2NrKiBuZXdDb2RlQmxvY2sgPSAmY2Fs
bERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5ieXRlY29kZUZvckNhbGwoY2FsbEZyYW1lLCBj
YWxsRGF0YVNjb3BlQ2hhaW4pOwogCiAgICAgICAgICAgICBDYWxsRnJhbWUqIHByZXZpb3VzQ2Fs
bEZyYW1lID0gY2FsbEZyYW1lOwotCi0gICAgICAgICAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lz
dGVyV2luZG93Rm9yQ2FsbChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCBy
ZWdpc3Rlck9mZnNldCwgYXJnQ291bnQpOworICAgICAgICAgICAgaWYgKG5ld0NvZGVCbG9jaykK
KyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbChu
ZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCByZWdpc3Rlck9mZnNldCwgYXJn
Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9IDA7
CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsKICAgICAgICAgICAgICAg
ICBjYWxsRnJhbWUgPSBwcmV2aW91c0NhbGxGcmFtZTsKICAgICAgICAgICAgICAgICBleGNlcHRp
b25WYWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwpAQCAtMzc3NCw4
ICszNzkzLDEwIEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBDb2RlQmxvY2sq
IG5ld0NvZGVCbG9jayA9ICZjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmJ5dGVjb2Rl
Rm9yQ2FsbChjYWxsRnJhbWUsIGNhbGxEYXRhU2NvcGVDaGFpbik7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIENhbGxGcmFtZSogcHJldmlvdXNDYWxsRnJhbWUgPSBjYWxsRnJhbWU7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JD
YWxsKG5ld0NvZGVCbG9jaywgcmVnaXN0ZXJGaWxlLCBjYWxsRnJhbWUsIHJlZ2lzdGVyT2Zmc2V0
LCBhcmdDb3VudCk7CisgICAgICAgICAgICBpZiAobmV3Q29kZUJsb2NrKQorICAgICAgICAgICAg
ICAgIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKG5ld0NvZGVCbG9jaywg
cmVnaXN0ZXJGaWxlLCBjYWxsRnJhbWUsIHJlZ2lzdGVyT2Zmc2V0LCBhcmdDb3VudCk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbEZyYW1lID0gMDsKICAgICAgICAgICAg
IGlmIChVTkxJS0VMWSghY2FsbEZyYW1lKSkgewogICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9
IHByZXZpb3VzQ2FsbEZyYW1lOwogICAgICAgICAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CkBAIC00MDk4LDcgKzQxMTksMTEgQEAg
c2tpcF9pZF9jdXN0b21fc2VsZjoKIAogICAgICAgICAgICAgQ2FsbEZyYW1lKiBwcmV2aW91c0Nh
bGxGcmFtZSA9IGNhbGxGcmFtZTsKIAotICAgICAgICAgICAgY2FsbEZyYW1lID0gc2xpZGVSZWdp
c3RlcldpbmRvd0ZvckNhbGwobmV3Q29kZUJsb2NrLCByZWdpc3RlckZpbGUsIGNhbGxGcmFtZSwg
cmVnaXN0ZXJPZmZzZXQsIGFyZ0NvdW50KTsKKyAgICAgICAgICAgIGlmIChuZXdDb2RlQmxvY2sp
CisgICAgICAgICAgICAgICAgY2FsbEZyYW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwo
bmV3Q29kZUJsb2NrLCByZWdpc3RlckZpbGUsIGNhbGxGcmFtZSwgcmVnaXN0ZXJPZmZzZXQsIGFy
Z0NvdW50KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSAw
OworCiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsKICAgICAgICAgICAg
ICAgICBjYWxsRnJhbWUgPSBwcmV2aW91c0NhbGxGcmFtZTsKICAgICAgICAgICAgICAgICBleGNl
cHRpb25WYWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDA4NDgzNDg4Zjc2Mzg3Y2Y4ZTU3MTNiMTdiODI0M2Zj
YzNjODlhZDIuLjZkMzFmMDNkNGI1ZjA3YTA4YzNkYjA4MzM3MzIwODNhZWYwZDRhMTcgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTczLDEyICs3MywxNCBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiog
ZXhlY3V0YWJsZQogCiAgICAgLy8gVmlydHVhbENhbGxMaW5rIFRyYW1wb2xpbmUKICAgICAvLyBy
ZWdUMCBob2xkcyBjYWxsZWUsIHJlZ1QxIGhvbGRzIGFyZ0NvdW50LiAgcmVnVDIgd2lsbCBob2xk
IHRoZSBGdW5jdGlvbkV4ZWN1dGFibGUuCisgICAgSnVtcExpc3QgY2FsbExhenlMaW5rRmFpbHVy
ZXM7CiAgICAgTGFiZWwgdmlydHVhbENhbGxMaW5rQmVnaW4gPSBhbGlnbigpOwogICAgIGNvbXBp
bGVPcENhbGxJbml0aWFsaXplQ2FsbEZyYW1lKCk7CiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKHJlZ1QzKTsKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJl
Z2lzdGVyRmlsZTo6UmV0dXJuUEMpOwogICAgIHJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZSgpOwog
ICAgIENhbGwgY2FsbExhenlMaW5rQ2FsbCA9IGNhbGwoKTsKKyAgICBjYWxsTGF6eUxpbmtGYWls
dXJlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCkpOwogICAgIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QzKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCwgcmVnVDEpOwogICAgIGp1bXAocmVn
VDApOwpAQCAtOTEsMTAgKzkzLDI0IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hp
bmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgZW1p
dFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKICAg
ICByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICBDYWxsIGNhbGxMYXp5TGlua0NvbnN0
cnVjdCA9IGNhbGwoKTsKKyAgICBjYWxsTGF6eUxpbmtGYWlsdXJlcy5hcHBlbmQoYnJhbmNoVGVz
dFB0cihaZXJvLCByZWdUMCkpOwogICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHJlZ1QzKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6
QXJndW1lbnRDb3VudCwgcmVnVDEpOwogICAgIGp1bXAocmVnVDApOwogCisgICAgLy8gSWYgdGhl
IHBhcnNlciBmYWlscyB3ZSB3YW50IHRvIGJlIGFibGUgdG8gYmUgYWJsZSB0byBrZWVwIGdvaW5n
LAorICAgIC8vIFNvIHdlIGhhbmRsZSB0aGlzIGFzIGEgcGFyc2UgZmFpbHVyZS4KKyAgICBjYWxs
TGF6eUxpbmtGYWlsdXJlcy5saW5rKHRoaXMpOworICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMsIHJlZ1QxKTsKKyAgICBlbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdp
c3Rlcik7CisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAg
IG1vdmUoSW1tUHRyKCZnbG9iYWxEYXRhLT5leGNlcHRpb25Mb2NhdGlvbiksIHJlZ1QyKTsKKyAg
ICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOworICAgIHBva2UoY2FsbEZyYW1lUmVnaXN0ZXIsIDEg
KyBPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgLyBzaXpl
b2Yodm9pZCopKTsKKyAgICBwb2tlKEltbVB0cihGdW5jdGlvblB0cihjdGlWTVRocm93VHJhbXBv
bGluZSkudmFsdWUoKSkpOworICAgIHJldCgpOworICAgIAorCiAgICAgLy8gVmlydHVhbENhbGwg
VHJhbXBvbGluZQogICAgIC8vIHJlZ1QwIGhvbGRzIGNhbGxlZSwgcmVnVDEgaG9sZHMgYXJnQ291
bnQuICByZWdUMiB3aWxsIGhvbGQgdGhlIEZ1bmN0aW9uRXhlY3V0YWJsZS4KICAgICBMYWJlbCB2
aXJ0dWFsQ2FsbEJlZ2luID0gYWxpZ24oKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKaW5kZXggMjM5NzUxZjY1Y2Q5M2Y3MmNmNjM1MjA2OWJlZjk0ODQwMDJmNjZjOS4uM2Zm
NjRkNTUyODA1ZTIxMjA4ZTZhMTc5NzMyOWM4MDYwY2Q4MDNhMCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTY2LDggKzY2LDggQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1
dGFibGUKICNlbmRpZgogCiAgICAgLy8gKDIpIFRyYW1wb2xpbmVzIGZvciB0aGUgc2xvdyBjYXNl
cyBvZiBvcF9jYWxsIC8gb3BfY2FsbF9ldmFsIC8gb3BfY29uc3RydWN0LgotCiAjaWYgRU5BQkxF
KEpJVF9PUFRJTUlaRV9DQUxMKQorICAgIEp1bXBMaXN0IGNhbGxMYXp5TGlua0ZhaWx1cmVzOwog
ICAgIC8vIFZpcnR1YWxDYWxsTGluayBUcmFtcG9saW5lCiAgICAgLy8gcmVnVDAgaG9sZHMgY2Fs
bGVlLCByZWdUMSBob2xkcyBhcmdDb3VudC4gIHJlZ1QyIHdpbGwgaG9sZCB0aGUgRnVuY3Rpb25F
eGVjdXRhYmxlLgogICAgIExhYmVsIHZpcnR1YWxDYWxsTGlua0JlZ2luID0gYWxpZ24oKTsKQEAg
LTc2LDYgKzc2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xp
bmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGUKICAgICBlbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwogICAgIHJlc3RvcmVB
cmd1bWVudFJlZmVyZW5jZSgpOwogICAgIENhbGwgY2FsbExhenlMaW5rQ2FsbCA9IGNhbGwoKTsK
KyAgICBjYWxsTGF6eUxpbmtGYWlsdXJlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdU
MCkpOwogICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QzKTsKICAgICBl
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCwg
cmVnVDEpOwogICAgIGp1bXAocmVnVDApOwpAQCAtODksOCArOTAsMjIgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4q
IGV4ZWN1dGFibGUKICAgICByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICBDYWxsIGNh
bGxMYXp5TGlua0NvbnN0cnVjdCA9IGNhbGwoKTsKICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihyZWdUMyk7CisgICAgY2FsbExhenlMaW5rRmFpbHVyZXMuYXBwZW5kKGJyYW5j
aFRlc3RQdHIoWmVybywgcmVnVDApKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMy
KFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCwgcmVnVDEpOwogICAgIGp1bXAocmVnVDApOwor
CisgICAgLy8gSWYgdGhlIHBhcnNlciBmYWlscyB3ZSB3YW50IHRvIGJlIGFibGUgdG8gYmUgYWJs
ZSB0byBrZWVwIGdvaW5nLAorICAgIC8vIFNvIHdlIGhhbmRsZSB0aGlzIGFzIGEgcGFyc2UgZmFp
bHVyZS4KKyAgICBjYWxsTGF6eUxpbmtGYWlsdXJlcy5saW5rKHRoaXMpOworICAgIGVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMsIHJlZ1QxKTsKKyAg
ICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1l
LCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4ocmVnVDEpOworICAgIG1vdmUoSW1tUHRyKCZnbG9iYWxEYXRhLT5leGNlcHRpb25Mb2NhdGlv
biksIHJlZ1QyKTsKKyAgICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOworICAgIHBva2UoY2FsbEZy
YW1lUmVnaXN0ZXIsIDEgKyBPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNh
bGxGcmFtZSkgLyBzaXplb2Yodm9pZCopKTsKKyAgICBwb2tlKEltbVB0cihGdW5jdGlvblB0cihj
dGlWTVRocm93VHJhbXBvbGluZSkudmFsdWUoKSkpOworICAgIHJldCgpOworCiAjZW5kaWYgLy8g
RU5BQkxFKEpJVF9PUFRJTUlaRV9DQUxMKQogCiAgICAgLy8gVmlydHVhbENhbGwgVHJhbXBvbGlu
ZQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggZTJmNTNlM2Q3MGVkNTljNDlmODY2ZDNiMDQz
NWE5NmI4NGExMzQ5Mi4uYzRhNjUwNzI1ZWNhZjcxOGM5MmQ4NmI2MjFiZThjZTZiOGY1YTRlYiAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xOTY3LDcgKzE5NjcsMTEgQEAgREVGSU5FX1NU
VUJfRlVOQ1RJT04odm9pZCosIHZtX2xhenlMaW5rQ2FsbCkKICAgICAgICAgY29kZVB0ciA9IGV4
ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCkuYWRkcmVzc0ZvckNhbGwoKTsKICAg
ICBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUg
PSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKLSAgICAgICAg
Y29kZUJsb2NrID0gJmZ1bmN0aW9uRXhlY3V0YWJsZS0+Ynl0ZWNvZGVGb3JDYWxsKHN0YWNrRnJh
bWUuY2FsbEZyYW1lLCBjYWxsZWUtPnNjb3BlKCkubm9kZSgpKTsKKyAgICAgICAgY29kZUJsb2Nr
ID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5ieXRlY29kZUZvckNhbGwoc3RhY2tGcmFtZS5jYWxsRnJh
bWUsIGNhbGxlZS0+c2NvcGUoKS5ub2RlKCkpOworICAgICAgICBpZiAoIWNvZGVCbG9jaykgewor
ICAgICAgICAgICAgc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5leGNlcHRpb24g
PSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+aml0Q29kZUZvckNh
bGwoY2FsbEZyYW1lLCBjYWxsZWUtPnNjb3BlKCkubm9kZSgpKTsKICAgICAgICAgaWYgKGNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+
KGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzKSkKICAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5j
dGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCkuYWRkcmVzc0ZvckNhbGwo
KTsKQEAgLTE5OTcsNyArMjAwMSwxMSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkKiwgdm1f
bGF6eUxpbmtDb25zdHJ1Y3QpCiAgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5nZW5lcmF0
ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCkuYWRkcmVzc0ZvckNhbGwoKTsKICAgICBlbHNlIHsKICAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2Fz
dDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKLSAgICAgICAgY29kZUJsb2NrID0g
JmZ1bmN0aW9uRXhlY3V0YWJsZS0+Ynl0ZWNvZGVGb3JDb25zdHJ1Y3Qoc3RhY2tGcmFtZS5jYWxs
RnJhbWUsIGNhbGxlZS0+c2NvcGUoKS5ub2RlKCkpOworICAgICAgICBjb2RlQmxvY2sgPSBmdW5j
dGlvbkV4ZWN1dGFibGUtPmJ5dGVjb2RlRm9yQ29uc3RydWN0KHN0YWNrRnJhbWUuY2FsbEZyYW1l
LCBjYWxsZWUtPnNjb3BlKCkubm9kZSgpKTsKKyAgICAgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAg
ICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSwgc3RhY2tGcmFtZS5n
bG9iYWxEYXRhLCBSZXR1cm5BZGRyZXNzUHRyKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSksIFNUVUJf
UkVUVVJOX0FERFJFU1MpOworICAgICAgICAgICAgVk1fVEhST1dfRVhDRVBUSU9OKCk7CisgICAg
ICAgIH0KICAgICAgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5qaXRDb2RlRm9yQ29uc3RydWN0KGNh
bGxGcmFtZSwgY2FsbGVlLT5zY29wZSgpLm5vZGUoKSk7CiAgICAgICAgIGlmIChjYWxsRnJhbWUt
PmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2Rl
QmxvY2stPm1fbnVtUGFyYW1ldGVycykpCiAgICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25F
eGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCkuYWRkcmVzc0ZvckNhbGwo
KTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNjk5ZmJl
NmI1ZmIzMDYwMmU4ZWRjMDFkNjkwMWE4N2NkOWMyNzExNS4uOTQwN2JlN2JhYzM3NmM4MmU2NDFj
YmYzMDI1MTljZjVkNDA0ZmYwNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKQEAgLTc3LDEyICs3NywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNOdW1lcmlj
Q29tcGFyZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbFR5cGUgY2FsbFR5cGUsCiAgICAg
Ly8gSWYgdGhlIEpJVCBpcyBlbmFibGVkIHRoZW4gd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgaW52
YXJpYW50IHRoYXQgZXZlcnkKICAgICAvLyBmdW5jdGlvbiB3aXRoIGEgQ29kZUJsb2NrIGFsc28g
aGFzIEpJVCBjb2RlLgogICAgIGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+aml0Q29k
ZUZvckNhbGwoZXhlYywgY2FsbERhdGEuanMuc2NvcGVDaGFpbik7Ci0gICAgQ29kZUJsb2NrJiBj
b2RlQmxvY2sgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVj
b2RlRm9yQ2FsbCgpOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gJmNhbGxEYXRhLmpzLmZ1
bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkQnl0ZWNvZGVGb3JDYWxsKCk7CiAjZWxzZQotICAg
IENvZGVCbG9jayYgY29kZUJsb2NrID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5i
eXRlY29kZUZvckNhbGwoZXhlYywgY2FsbERhdGEuanMuc2NvcGVDaGFpbik7CisgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmJ5dGVjb2Rl
Rm9yQ2FsbChleGVjLCBjYWxsRGF0YS5qcy5zY29wZUNoYWluKTsKICNlbmRpZgorICAgIGlmICgh
Y29kZUJsb2NrKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY29kZUJsb2Nr
LmlzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbigpOworICAgIHJldHVybiBjb2RlQmxvY2stPmlzTnVt
ZXJpY0NvbXBhcmVGdW5jdGlvbigpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQXJyYXlQcm90b3R5cGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggYTE4ZTgwY2Q5MDM5NWUyNjM5ZGE4MGEw
ZWQ4NGI3YWQ3YzNhMmE2MS4uZjMzZjNiNDYzMjYxMmI2M2ZiZTk0ZjM4OWUwZjY3MzE0MDE1M2Zj
OCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xMTksMTAgKzExOSwx
MiBAQCBKU09iamVjdCogUHJvZ3JhbUV4ZWN1dGFibGU6OmNvbXBpbGUoRXhlY1N0YXRlKiBleGVj
LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbgogICAgIHJldHVybiAwOwogfQogCi12b2lkIEZ1
bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNhbGwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW5Ob2RlKQorYm9vbCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JD
YWxsKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKIHsKICAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBzY29wZUNoYWluTm9kZS0+Z2xvYmFsRGF0YTsKICAg
ICBSZWZQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gYm9keSA9IGdsb2JhbERhdGEtPnBhcnNlci0+cGFy
c2U8RnVuY3Rpb25Cb2R5Tm9kZT4oZ2xvYmFsRGF0YSwgMCwgMCwgbV9zb3VyY2UpOworICAgIGlm
ICghYm9keSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX2ZvcmNlVXNlc0FyZ3Vt
ZW50cykKICAgICAgICAgYm9keS0+c2V0VXNlc0FyZ3VtZW50cygpOwogICAgIGJvZHktPmZpbmlz
aFBhcnNpbmcobV9wYXJhbWV0ZXJzLCBtX25hbWUpOwpAQCAtMTQxLDEyICsxNDMsMTUgQEAgdm9p
ZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JDYWxsKEV4ZWNTdGF0ZSosIFNjb3BlQ2hh
aW5Ob2RlKiBzY29wZUNoYWluTm8KICAgICBtX3N5bWJvbFRhYmxlID0gbV9jb2RlQmxvY2tGb3JD
YWxsLT5zaGFyZWRTeW1ib2xUYWJsZSgpOwogCiAgICAgYm9keS0+ZGVzdHJveURhdGEoKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JD
b25zdHJ1Y3QoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQorYm9v
bCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JDb25zdHJ1Y3QoRXhlY1N0YXRlKiwgU2Nv
cGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQogewogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSA9IHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxEYXRhOwogICAgIFJlZlB0cjxGdW5jdGlvbkJv
ZHlOb2RlPiBib2R5ID0gZ2xvYmFsRGF0YS0+cGFyc2VyLT5wYXJzZTxGdW5jdGlvbkJvZHlOb2Rl
PihnbG9iYWxEYXRhLCAwLCAwLCBtX3NvdXJjZSk7CisgICAgaWYgKCFib2R5KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKG1fZm9yY2VVc2VzQXJndW1lbnRzKQogICAgICAgICBib2R5
LT5zZXRVc2VzQXJndW1lbnRzKCk7CiAgICAgYm9keS0+ZmluaXNoUGFyc2luZyhtX3BhcmFtZXRl
cnMsIG1fbmFtZSk7CkBAIC0xNjUsNiArMTcwLDcgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6
OmNvbXBpbGVGb3JDb25zdHJ1Y3QoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2gK
ICAgICBtX3N5bWJvbFRhYmxlID0gbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPnNoYXJlZFN5bWJv
bFRhYmxlKCk7CiAKICAgICBib2R5LT5kZXN0cm95RGF0YSgpOworICAgIHJldHVybiB0cnVlOwog
fQogCiAjaWYgRU5BQkxFKEpJVCkKQEAgLTE5Myw3ICsxOTksNyBAQCB2b2lkIFByb2dyYW1FeGVj
dXRhYmxlOjpnZW5lcmF0ZUpJVENvZGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSog
c2NvcGVDaAogCiB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Z2VuZXJhdGVKSVRDb2RlRm9yQ2Fs
bChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKIHsKLSAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9ICZieXRlY29kZUZvckNhbGwoZXhlYywgc2NvcGVDaGFp
bk5vZGUpOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gYnl0ZWNvZGVGb3JDYWxsKGV4ZWMs
IHNjb3BlQ2hhaW5Ob2RlKTsKICAgICBtX2ppdENvZGVGb3JDYWxsID0gSklUOjpjb21waWxlKHNj
b3BlQ2hhaW5Ob2RlLT5nbG9iYWxEYXRhLCBjb2RlQmxvY2ssICZtX2ppdENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2spOwogCiAjaWYgIUVOQUJMRShPUENPREVfU0FNUExJTkcpCkBAIC0yMDQsNyAr
MjEwLDcgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmdlbmVyYXRlSklUQ29kZUZvckNhbGwo
RXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSoKIAogdm9pZCBGdW5jdGlvbkV4ZWN1dGFi
bGU6OmdlbmVyYXRlSklUQ29kZUZvckNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hh
aW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9ICZi
eXRlY29kZUZvckNvbnN0cnVjdChleGVjLCBzY29wZUNoYWluTm9kZSk7CisgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBieXRlY29kZUZvckNvbnN0cnVjdChleGVjLCBzY29wZUNoYWluTm9kZSk7
CiAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gSklUOjpjb21waWxlKHNjb3BlQ2hhaW5Ob2Rl
LT5nbG9iYWxEYXRhLCBjb2RlQmxvY2ssICZtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlD
aGVjayk7CiAKICNpZiAhRU5BQkxFKE9QQ09ERV9TQU1QTElORykKQEAgLTIyNiw2ICsyMzIsOCBA
QCB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bWFya0FnZ3JlZ2F0ZShNYXJrU3RhY2smIG1hcmtT
dGFjaykKIEV4Y2VwdGlvbkluZm8qIEZ1bmN0aW9uRXhlY3V0YWJsZTo6cmVwYXJzZUV4Y2VwdGlv
bkluZm8oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFp
bk5vZGUsIENvZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIFJlZlB0cjxGdW5jdGlvbkJvZHlO
b2RlPiBuZXdGdW5jdGlvbkJvZHkgPSBnbG9iYWxEYXRhLT5wYXJzZXItPnBhcnNlPEZ1bmN0aW9u
Qm9keU5vZGU+KGdsb2JhbERhdGEsIDAsIDAsIG1fc291cmNlKTsKKyAgICBpZiAoIW5ld0Z1bmN0
aW9uQm9keSkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKG1fZm9yY2VVc2VzQXJndW1lbnRz
KQogICAgICAgICBuZXdGdW5jdGlvbkJvZHktPnNldFVzZXNBcmd1bWVudHMoKTsKICAgICBuZXdG
dW5jdGlvbkJvZHktPmZpbmlzaFBhcnNpbmcobV9wYXJhbWV0ZXJzLCBtX25hbWUpOwpAQCAtMjU1
LDYgKzI2Myw4IEBAIEV4Y2VwdGlvbkluZm8qIEZ1bmN0aW9uRXhlY3V0YWJsZTo6cmVwYXJzZUV4
Y2VwdGlvbkluZm8oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhCiBFeGNlcHRpb25JbmZvKiBFdmFs
RXhlY3V0YWJsZTo6cmVwYXJzZUV4Y2VwdGlvbkluZm8oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUsIENvZGVCbG9jayogY29kZUJsb2NrKQog
ewogICAgIFJlZlB0cjxFdmFsTm9kZT4gbmV3RXZhbEJvZHkgPSBnbG9iYWxEYXRhLT5wYXJzZXIt
PnBhcnNlPEV2YWxOb2RlPihnbG9iYWxEYXRhLCAwLCAwLCBtX3NvdXJjZSk7CisgICAgaWYgKCFu
ZXdFdmFsQm9keSkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBTY29wZUNoYWluIHNjb3BlQ2hh
aW4oc2NvcGVDaGFpbk5vZGUpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBz
Y29wZUNoYWluLmdsb2JhbE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApp
bmRleCAzOWRkZjQ5Y2I0ZGI0Yjk3NGQ4NzE4YmY3NmE4MWQ4MDhlM2ZlYTJlLi4zMzIwZmUxYTNi
NTUxOGZlNDBlNDBmZDNhODgxZmRmNzQxZjBmMTViIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1
dGFibGUuaApAQCAtMzA1LDEyICszMDUsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gKm1fY29kZUJsb2NrRm9yQ29uc3RydWN0OwogICAgICAgICB9CiAKLSAgICAgICAg
RnVuY3Rpb25Db2RlQmxvY2smIGJ5dGVjb2RlRm9yQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIFNjb3Bl
Q2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSkgCisgICAgICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBi
eXRlY29kZUZvckNhbGwoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFp
bk5vZGUpIAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoc2NvcGVDaGFpbk5vZGUpOwog
ICAgICAgICAgICAgaWYgKCFtX2NvZGVCbG9ja0ZvckNhbGwpCiAgICAgICAgICAgICAgICAgY29t
cGlsZUZvckNhbGwoZXhlYywgc2NvcGVDaGFpbk5vZGUpOwotICAgICAgICAgICAgcmV0dXJuICpt
X2NvZGVCbG9ja0ZvckNhbGw7CisgICAgICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDYWxs
OwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0dlbmVyYXRlZEZvckNhbGwoKSBjb25zdApA
QCAtMzI0LDEyICszMjQsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4g
Km1fY29kZUJsb2NrRm9yQ2FsbDsKICAgICAgICAgfQogCi0gICAgICAgIEZ1bmN0aW9uQ29kZUJs
b2NrJiBieXRlY29kZUZvckNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2Rl
KiBzY29wZUNoYWluTm9kZSkgCisgICAgICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBieXRlY29kZUZv
ckNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluTm9k
ZSkgCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChzY29wZUNoYWluTm9kZSk7CiAgICAg
ICAgICAgICBpZiAoIW1fY29kZUJsb2NrRm9yQ29uc3RydWN0KQogICAgICAgICAgICAgICAgIGNv
bXBpbGVGb3JDb25zdHJ1Y3QoZXhlYywgc2NvcGVDaGFpbk5vZGUpOwotICAgICAgICAgICAgcmV0
dXJuICptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdDsKKyAgICAgICAgICAgIHJldHVybiBtX2NvZGVC
bG9ja0ZvckNvbnN0cnVjdDsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaXNHZW5lcmF0ZWRG
b3JDb25zdHJ1Y3QoKSBjb25zdApAQCAtMzgzLDggKzM4Myw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwogICAgICAgICB9CiAKLSAgICAgICAg
dm9pZCBjb21waWxlRm9yQ2FsbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwotICAgICAg
ICB2b2lkIGNvbXBpbGVGb3JDb25zdHJ1Y3QoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqKTsK
KyAgICAgICAgYm9vbCBjb21waWxlRm9yQ2FsbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSop
OworICAgICAgICBib29sIGNvbXBpbGVGb3JDb25zdHJ1Y3QoRXhlY1N0YXRlKiwgU2NvcGVDaGFp
bk5vZGUqKTsKIAogICAgICAgICB1bnNpZ25lZCBtX251bVZhcmlhYmxlcyA6IDMxOwogICAgICAg
ICBib29sIG1fZm9yY2VVc2VzQXJndW1lbnRzIDogMTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxEYXRhLmNwcAppbmRleCAzZjI0ZWE0MWRhZjJjMjRiMDRhMThkMWIxYmFmNDdmZTM0ZWEw
Zjk0Li5lOTk3ZDM1NzRhZWE5NWU3YTU4YzQ0ZDVlOTg1ZmVmYWUwM2Q2YWIzIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCkBAIC0yNDYsNyArMjQ2LDcgQEAgY29uc3Qg
VmVjdG9yPEluc3RydWN0aW9uPiYgSlNHbG9iYWxEYXRhOjpudW1lcmljQ29tcGFyZUZ1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWxhenlOdW1lcmljQ29tcGFyZUZ1bmN0aW9uLnNp
emUoKSAmJiAhaW5pdGlhbGl6aW5nTGF6eU51bWVyaWNDb21wYXJlRnVuY3Rpb24pIHsKICAgICAg
ICAgaW5pdGlhbGl6aW5nTGF6eU51bWVyaWNDb21wYXJlRnVuY3Rpb24gPSB0cnVlOwogICAgICAg
ICBSZWZQdHI8RnVuY3Rpb25FeGVjdXRhYmxlPiBmdW5jdGlvbiA9IEZ1bmN0aW9uRXhlY3V0YWJs
ZTo6ZnJvbUdsb2JhbENvZGUoSWRlbnRpZmllcihleGVjLCAibnVtZXJpY0NvbXBhcmUiKSwgZXhl
YywgMCwgbWFrZVNvdXJjZShVU3RyaW5nKCIoZnVuY3Rpb24gKHYxLCB2MikgeyByZXR1cm4gdjEg
LSB2MjsgfSkiKSksIDAsIDApOwotICAgICAgICBsYXp5TnVtZXJpY0NvbXBhcmVGdW5jdGlvbiA9
IGZ1bmN0aW9uLT5ieXRlY29kZUZvckNhbGwoZXhlYywgZXhlYy0+c2NvcGVDaGFpbigpKS5pbnN0
cnVjdGlvbnMoKTsKKyAgICAgICAgbGF6eU51bWVyaWNDb21wYXJlRnVuY3Rpb24gPSBmdW5jdGlv
bi0+Ynl0ZWNvZGVGb3JDYWxsKGV4ZWMsIGV4ZWMtPnNjb3BlQ2hhaW4oKSktPmluc3RydWN0aW9u
cygpOwogICAgICAgICBpbml0aWFsaXppbmdMYXp5TnVtZXJpY0NvbXBhcmVGdW5jdGlvbiA9IGZh
bHNlOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="46079"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>