<?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>49646</bug_id>
          
          <creation_ts>2010-11-16 23:11:16 -0800</creation_ts>
          <short_desc>REGRESSION(r72160): Broke lots of fast/profiler tests, among others (Requested by aroben on #webkit).</short_desc>
          <delta_ts>2010-11-17 11:30:16 -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>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>
          
          <blocked>49635</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310133</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-16 23:11:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72160 broke the build:
Broke lots of fast/profiler tests, among others (Requested by aroben on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310134</commentid>
    <comment_count>1</comment_count>
      <attachid>74084</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-16 23:11:39 -0800</bug_when>
    <thetext>Created attachment 74084
ROLLOUT of r72160

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310146</commentid>
    <comment_count>2</comment_count>
      <attachid>74084</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-17 00:05:57 -0800</bug_when>
    <thetext>Comment on attachment 74084
ROLLOUT of r72160

Clearing flags on attachment: 74084

Committed r72176: &lt;http://trac.webkit.org/changeset/72176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310147</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-17 00:06:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310409</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-17 11:30:16 -0800</bug_when>
    <thetext>*** Bug 49645 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74084</attachid>
            <date>2010-11-16 23:11:39 -0800</date>
            <delta_ts>2010-11-17 00:05:57 -0800</delta_ts>
            <desc>ROLLOUT of r72160</desc>
            <filename>bug-49646-20101117071135.patch</filename>
            <type>text/plain</type>
            <size>50614</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAzNDAyNDA4MzczODk2MTVlYzQ0YTQyYWU2ZGQzODQxMTY5ZmMzNTIxLi5i
ZWQ1NTliOTE1OWY0NTgzYWY3NjRkMDkyYWVjODZlOGMxYjA0YTBiIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjggQEAKKzIwMTAtMTEtMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MjE2MC4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzIxNjAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjQ2CisKKyAgICAgICAgQnJv
a2UgbG90cyBvZiBmYXN0L3Byb2ZpbGVyIHRlc3RzLCBhbW9uZyBvdGhlcnMgKFJlcXVlc3RlZCBi
eQorICAgICAgICBhcm9iZW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXApOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OmZ1bmN0aW9uUmVnaXN0ZXJGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6c2hyaW5rVG9GaXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVC
bG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZEZ1bmN0aW9uUmVnaXN0ZXJJbmZv
KToKKyAgICAgICAgKiBieXRlY29kZS9PcGNvZGUuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dENhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdz
KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXR1cm4pOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdCk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkNhbGxBcmd1bWVu
dHM6OnByb2ZpbGVIb29rUmVnaXN0ZXIpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpDYWxsQXJndW1lbnRzOjpDYWxsQXJndW1lbnRzKToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp1bndpbmRDYWxsRnJhbWUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6
OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV93aWxsX2NhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRf
Y2FsbCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9wcm9maWxlX2RpZF9jYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAg
ICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogaml0L0pJVFN0dWJz
Lmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlByb2Zp
bGU6OlByb2ZpbGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjphZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQp
OgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSk6CisgICAgICAg
IChKU0M6OlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpQcm9m
aWxlR2VuZXJhdG9yOjpzdG9wUHJvZmlsaW5nKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9maWxlTm9kZTo6UHJvZmlsZU5vZGUpOgorICAgICAgICAoSlNDOjpQcm9maWxl
Tm9kZTo6d2lsbEV4ZWN1dGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmg6Cisg
ICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQcm9maWxl
Tm9kZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyk6CisgICAgICAgIChKU0M6OlBy
b2ZpbGVyOjp3aWxsRXhlY3V0ZSk6CisgICAgICAgIChKU0M6OlByb2ZpbGVyOjpkaWRFeGVjdXRl
KToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlci5oOgorCiAyMDEwLTExLTE2ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcCBiL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZTI0
NzdlZmJlYTIzN2U2MjE1NGEzMmM3MTFiNTE0YWNlMWIzZDliNy4uYmNkMmFmMzVjYWI5YTgwZTU0
ZTNiNTIyZWIyZTQzNTM1MjY4ZGYxYiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCkBAIC0xMjIwLDEyICsxMjIwLDE0IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgVmVjdG9yPEluc3RydWN0aW9uPjo6Y29uc3RfaXRlcmF0b3ImCiAgICAg
ICAgICAgICBwcmludGYoIlslNGRdIGRlYnVnXHRcdCAlcywgJWQsICVkXG4iLCBsb2NhdGlvbiwg
ZGVidWdIb29rTmFtZShkZWJ1Z0hvb2tJRCksIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX2hhc19jYWxs
ZWQ6IHsKLSAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gb3BfcHJvZmlsZV9oYXNfY2FsbGVkXG4i
LCBsb2NhdGlvbik7CisgICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6IHsKKyAgICAg
ICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJp
bnRmKCJbJTRkXSBwcm9maWxlX3dpbGxfY2FsbCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFt
ZShleGVjLCBmdW5jdGlvbikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX3JldHVybjogewotICAgICAgICAgICAgcHJp
bnRmKCJbJTRkXSBvcF9wcm9maWxlX3dpbGxfcmV0dXJuXG4iLCBsb2NhdGlvbik7CisgICAgICAg
IGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDogeworICAgICAgICAgICAgaW50IGZ1bmN0aW9uID0g
KCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBwcmludGYoIlslNGRdIHByb2ZpbGVfZGlk
X2NhbGxcdCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBmdW5jdGlvbikuZGF0
YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZW5k
OiB7CkBAIC0xNjYwLDYgKzE2NjIsMzIgQEAgdm9pZCBDb2RlQmxvY2s6OmV4cHJlc3Npb25SYW5n
ZUZvckJ5dGVjb2RlT2Zmc2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCB1bnNpZ25lZAogICAgIHJl
dHVybjsKIH0KIAorI2lmIEVOQUJMRShKSVQpCitib29sIENvZGVCbG9jazo6ZnVuY3Rpb25SZWdp
c3RlckZvckJ5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBpbnQmIGZ1bmN0
aW9uUmVnaXN0ZXJJbmRleCkKK3sKKyAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBtX2luc3Ry
dWN0aW9uQ291bnQpOworCisgICAgaWYgKCFtX3JhcmVEYXRhIHx8ICFtX3JhcmVEYXRhLT5tX2Z1
bmN0aW9uUmVnaXN0ZXJJbmZvcy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGludCBsb3cgPSAwOworICAgIGludCBoaWdoID0gbV9yYXJlRGF0YS0+bV9mdW5jdGlvblJlZ2lz
dGVySW5mb3Muc2l6ZSgpOworICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7CisgICAgICAgIGludCBt
aWQgPSBsb3cgKyAoaGlnaCAtIGxvdykgLyAyOworICAgICAgICBpZiAobV9yYXJlRGF0YS0+bV9m
dW5jdGlvblJlZ2lzdGVySW5mb3NbbWlkXS5ieXRlY29kZU9mZnNldCA8PSBieXRlY29kZU9mZnNl
dCkKKyAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGhpZ2ggPSBtaWQ7CisgICAgfQorCisgICAgaWYgKCFsb3cgfHwgbV9yYXJlRGF0YS0+bV9mdW5j
dGlvblJlZ2lzdGVySW5mb3NbbG93IC0gMV0uYnl0ZWNvZGVPZmZzZXQgIT0gYnl0ZWNvZGVPZmZz
ZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZ1bmN0aW9uUmVnaXN0ZXJJbmRleCA9
IG1fcmFyZURhdGEtPm1fZnVuY3Rpb25SZWdpc3RlckluZm9zW2xvdyAtIDFdLmZ1bmN0aW9uUmVn
aXN0ZXJJbmRleDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKElO
VEVSUFJFVEVSKQogYm9vbCBDb2RlQmxvY2s6Omhhc0dsb2JhbFJlc29sdmVJbnN0cnVjdGlvbkF0
Qnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiB7CkBAIC0xNzM0LDYgKzE3
NjIsOSBAQCB2b2lkIENvZGVCbG9jazo6c2hyaW5rVG9GaXQoKQogICAgICAgICBtX3JhcmVEYXRh
LT5tX2ltbWVkaWF0ZVN3aXRjaEp1bXBUYWJsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAgICAgbV9y
YXJlRGF0YS0+bV9jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGVzLnNocmlua1RvRml0KCk7CiAgICAg
ICAgIG1fcmFyZURhdGEtPm1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcy5zaHJpbmtUb0ZpdCgpOwor
I2lmIEVOQUJMRShKSVQpCisgICAgICAgIG1fcmFyZURhdGEtPm1fZnVuY3Rpb25SZWdpc3Rlcklu
Zm9zLnNocmlua1RvRml0KCk7CisjZW5kaWYKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKaW5kZXggNTI5ODMyNzRhMzlkNWRlYzZjNjQ1MDEyZTYwYTQ4MmZkZTRhYzFi
Zi4uNTRhY2Q1MDYyZDIxYjY3NmI3ZGQyN2E2OThlZWYzNWRjMjFmMWVmZCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTM1MSw2ICszNTEsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgIHJldHVybiBiaW5hcnlDaG9w
PENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCwgZ2V0Q2FsbFJldHVy
bk9mZnNldD4oY2FsbFJldHVybkluZGV4VmVjdG9yKCkuYmVnaW4oKSwgY2FsbFJldHVybkluZGV4
VmVjdG9yKCkuc2l6ZSgpLCBnZXRKSVRDb2RlKCkub2Zmc2V0T2YocmV0dXJuQWRkcmVzcy52YWx1
ZSgpKSktPmJ5dGVjb2RlT2Zmc2V0OwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29s
IGZ1bmN0aW9uUmVnaXN0ZXJGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCwgaW50JiBmdW5jdGlvblJlZ2lzdGVySW5kZXgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOVEVS
UFJFVEVSKQogICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldChDYWxsRnJhbWUqLCBJbnN0
cnVjdGlvbiogcmV0dXJuQWRkcmVzcykKQEAgLTQ0MSw2ICs0NDMsOCBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICB2b2lkIGFkZE1ldGhvZENhbGxMaW5rSW5mb3ModW5zaWduZWQgbikgeyBt
X21ldGhvZENhbGxMaW5rSW5mb3MuZ3JvdyhuKTsgfQogICAgICAgICBNZXRob2RDYWxsTGlua0lu
Zm8mIG1ldGhvZENhbGxMaW5rSW5mbyhpbnQgaW5kZXgpIHsgcmV0dXJuIG1fbWV0aG9kQ2FsbExp
bmtJbmZvc1tpbmRleF07IH0KKworICAgICAgICB2b2lkIGFkZEZ1bmN0aW9uUmVnaXN0ZXJJbmZv
KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBpbnQgZnVuY3Rpb25JbmRleCkgeyBjcmVhdGVSYXJl
RGF0YUlmTmVjZXNzYXJ5KCk7IG1fcmFyZURhdGEtPm1fZnVuY3Rpb25SZWdpc3RlckluZm9zLmFw
cGVuZChGdW5jdGlvblJlZ2lzdGVySW5mbyhieXRlY29kZU9mZnNldCwgZnVuY3Rpb25JbmRleCkp
OyB9CiAjZW5kaWYKIAogICAgICAgICAvLyBFeGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydApAQCAt
NTk0LDYgKzU5OCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFZlY3RvcjxTdHJp
bmdKdW1wVGFibGU+IG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlczsKIAogICAgICAgICAgICAgRXZh
bENvZGVDYWNoZSBtX2V2YWxDb2RlQ2FjaGU7CisKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICAg
ICAgVmVjdG9yPEZ1bmN0aW9uUmVnaXN0ZXJJbmZvPiBtX2Z1bmN0aW9uUmVnaXN0ZXJJbmZvczsK
KyNlbmRpZgogICAgICAgICB9OwogICAgICAgICBPd25QdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggMmJmZTU4ZDE1ZDJmZDU1MGI4
MWQ3MDFkYzJlZGI2OTc0NmNhNTRkYi4uNmMxYzZiMmM4NDU4OTFhM2NjODY2MDUwMjE4OWVhZDBk
MDI1ZTE0MSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysr
IGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTE5MSw4ICsxOTEsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgbWFjcm8ob3Bfc3JldCwgMikgXAogICAgICAgICBcCiAg
ICAgICAgIG1hY3JvKG9wX2RlYnVnLCA0KSBcCi0gICAgICAgIG1hY3JvKG9wX3Byb2ZpbGVfaGFz
X2NhbGxlZCwgMSkgXAotICAgICAgICBtYWNybyhvcF9wcm9maWxlX3dpbGxfcmV0dXJuLCAxKSBc
CisgICAgICAgIG1hY3JvKG9wX3Byb2ZpbGVfd2lsbF9jYWxsLCAyKSBcCisgICAgICAgIG1hY3Jv
KG9wX3Byb2ZpbGVfZGlkX2NhbGwsIDIpIFwKICAgICAgICAgXAogICAgICAgICBtYWNybyhvcF9l
bmQsIDIpIC8vIGVuZCBtdXN0IGJlIHRoZSBsYXN0IG9wY29kZSBpbiB0aGUgbGlzdAogCmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRl
eCAwMDY3M2Q4ZDM5OTNkNzMyZmRmZjFiMzdhZDY3YTdkNWViMTI3OWQ3Li4xZmE1YWE0MWRmMmQ5
ZTNhYTNiZjk5YWY3YmJhM2YxMjAzMDFmZmQyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTMyNCwxMSArMzI0LDcgQEAgQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKEZ1bmN0aW9uQm9keU5vZGUqIGZ1bmN0
aW9uQm9keSwgY29uc3QgRGVidWcKICAgICAgICAgbV9jb2RlQmxvY2stPnNldE5lZWRzRnVsbFNj
b3BlQ2hhaW4odHJ1ZSk7CiAKICAgICBjb2RlQmxvY2stPnNldEdsb2JhbERhdGEobV9nbG9iYWxE
YXRhKTsKLQotCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykKLSAgICAgICAgZW1p
dE9wY29kZShvcF9wcm9maWxlX2hhc19jYWxsZWQpOwotICAgCisgICAgCiAgICAgZW1pdE9wY29k
ZShvcF9lbnRlcik7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkp
IHsKICAgICAgICAgbV9hY3RpdmF0aW9uUmVnaXN0ZXIgPSBhZGRWYXIoKTsKQEAgLTE2MzcsNiAr
MTYzMyw5IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJ
RCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgQVNTRVJUKG9wY29kZUlEID09
IG9wX2NhbGwgfHwgb3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKTsKICAgICBBU1NFUlQoZnVuYy0+
cmVmQ291bnQoKSk7CiAKKyAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKQorICAgICAg
ICBlbWl0TW92ZShjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKSwgZnVuYyk7CisK
ICAgICAvLyBHZW5lcmF0ZSBjb2RlIGZvciBhcmd1bWVudHMuCiAgICAgdW5zaWduZWQgYXJndW1l
bnRJbmRleCA9IDA7CiAgICAgZm9yIChBcmd1bWVudExpc3ROb2RlKiBuID0gY2FsbEFyZ3VtZW50
cy5hcmd1bWVudHNOb2RlKCktPm1fbGlzdE5vZGU7IG47IG4gPSBuLT5tX25leHQpCkBAIC0xNjQ3
LDYgKzE2NDYsMTUgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9w
Y29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQogICAgICAgICBj
YWxsRnJhbWUuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKIAorICAgIGlmIChtX3Nob3VsZEVtaXRQ
cm9maWxlSG9va3MpIHsKKyAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX3dpbGxfY2FsbCk7
CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29r
UmVnaXN0ZXIoKS0+aW5kZXgoKSk7CisKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICBtX2NvZGVC
bG9jay0+YWRkRnVuY3Rpb25SZWdpc3RlckluZm8oaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpLCBjYWxs
QXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7CisjZW5kaWYKKyAgICB9
CisKICAgICBlbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQp
OwogCiAjaWYgRU5BQkxFKEpJVCkKQEAgLTE2NjMsNiArMTY3MSwxMSBAQCBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQq
IGRzdCwgUmVnaQogICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsg
Ly8gZHN0CiAgICAgfQogCisgICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgeworICAg
ICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOworICAgICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkp
OworICAgIH0KKwogICAgIHJldHVybiBkc3Q7CiB9CiAKQEAgLTE2ODEsNiArMTY5NCwxNCBAQCBS
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogZnVuYwogICAgIEFTU0VSVChmdW5jLT5yZWZDb3VudCgpKTsKICAg
ICBBU1NFUlQodGhpc1JlZ2lzdGVyLT5yZWZDb3VudCgpKTsKICAgICBBU1NFUlQoZHN0ICE9IGZ1
bmMpOworICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKKyAgICAgICAgZW1pdE9w
Y29kZShvcF9wcm9maWxlX3dpbGxfY2FsbCk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChmdW5jLT5pbmRleCgpKTsKKyAgICAgICAgCisjaWYgRU5BQkxFKEpJVCkKKyAgICAgICAgbV9j
b2RlQmxvY2stPmFkZEZ1bmN0aW9uUmVnaXN0ZXJJbmZvKGluc3RydWN0aW9ucygpLnNpemUoKSwg
ZnVuYy0+aW5kZXgoKSk7CisjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgZW1pdEV4cHJlc3Npb25J
bmZvKGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKICAgICAKQEAgLTE2OTMsNiArMTcx
NCwxMCBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYwogICAgICAgICBlbWl0T3Bjb2RlKG9wX2Nh
bGxfcHV0X3Jlc3VsdCk7CiAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4
KCkpOyAvLyBkc3QKICAgICB9CisgICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewor
ICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOworICAgICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoZnVuYy0+aW5kZXgoKSk7CisgICAgfQogICAgIHJldHVybiBkc3Q7CiB9
CiAKQEAgLTE3MDgsOSArMTczMyw2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0UmV0dXJuKFJlZ2lzdGVySUQqIHNyYykKICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KG1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKTsKICAgICB9CiAKLSAgICBpZiAobV9z
aG91bGRFbWl0UHJvZmlsZUhvb2tzKQotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfd2ls
bF9yZXR1cm4pOwotCiAgICAgLy8gQ29uc3RydWN0b3JzIHVzZSBvcF9yZXRfb2JqZWN0X29yX3Ro
aXMgdG8gY2hlY2sgdGhlIHJlc3VsdCBpcyBhbgogICAgIC8vIG9iamVjdCwgdW5sZXNzIHdlIGNh
biB0cml2aWFsbHkgZGV0ZXJtaW5lIHRoZSBjaGVjayBpcyBub3QKICAgICAvLyBuZWNlc3Nhcnkg
KGN1cnJlbnRseSwgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyAndGhpcycpLgpAQCAtMTczNCw2ICsx
NzU2LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLAogewogICAgIEFTU0VSVChmdW5jLT5yZWZD
b3VudCgpKTsKIAorICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpCisgICAgICAgIGVt
aXRNb3ZlKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLCBmdW5jKTsKKwogICAg
IC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFyZ3VtZW50cy4KICAgICB1bnNpZ25lZCBhcmd1bWVudElu
ZGV4ID0gMDsKICAgICBpZiAoQXJndW1lbnRzTm9kZSogYXJndW1lbnRzTm9kZSA9IGNhbGxBcmd1
bWVudHMuYXJndW1lbnRzTm9kZSgpKSB7CkBAIC0xNzQxLDYgKzE3NjYsMTEgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBmdW5jLAogICAgICAgICAgICAgZW1pdE5vZGUoY2FsbEFyZ3VtZW50cy5hcmd1bWVu
dFJlZ2lzdGVyKGFyZ3VtZW50SW5kZXgrKyksIG4pOwogICAgIH0KIAorICAgIGlmIChtX3Nob3Vs
ZEVtaXRQcm9maWxlSG9va3MpIHsKKyAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX3dpbGxf
Y2FsbCk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2Zp
bGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7CisgICAgfQorCiAgICAgLy8gUmVzZXJ2ZSBzcGFj
ZSBmb3IgY2FsbCBmcmFtZS4KICAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCBSZWdpc3Rl
ckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU+IGNhbGxGcmFtZTsKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQpAQCAtMTc2MSw2
ICsxNzkxLDExIEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywKICAgICAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7IC8vIGRzdAogICAgIH0KIAorICAgIGlmIChtX3Nob3Vs
ZEVtaXRQcm9maWxlSG9va3MpIHsKKyAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX2RpZF9j
YWxsKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJvZmls
ZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsKKyAgICB9CisKICAgICByZXR1cm4gZHN0OwogfQog
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaCBiL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmlu
ZGV4IDdhY2MwMGI5NjcyNzAwNTU2ZmZhMDlhMjZhYmJjNWViYmI3MDc4N2UuLjQ5OWQyMzJiZWE4
ZTZkYmMzZTBkOGNiYzIzOWQyYTJkYjMxZTliNjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC01OSw5ICs1OSwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogYXJndW1lbnRSZWdpc3Rlcih1bnNpZ25lZCBp
KSB7IHJldHVybiBtX2FyZ3ZbaSArIDFdLmdldCgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGNhbGxG
cmFtZSgpIHsgcmV0dXJuIHRoaXNSZWdpc3RlcigpLT5pbmRleCgpICsgY291bnQoKSArIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgfQogICAgICAgICB1bnNpZ25lZCBjb3VudCgp
IHsgcmV0dXJuIG1fYXJndi5zaXplKCk7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogcHJvZmlsZUhv
b2tSZWdpc3RlcigpIHsgcmV0dXJuIG1fcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKTsgfQogICAg
ICAgICBBcmd1bWVudHNOb2RlKiBhcmd1bWVudHNOb2RlKCkgeyByZXR1cm4gbV9hcmd1bWVudHNO
b2RlOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbV9wcm9m
aWxlSG9va1JlZ2lzdGVyOwogICAgICAgICBBcmd1bWVudHNOb2RlKiBtX2FyZ3VtZW50c05vZGU7
CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8UmVnaXN0ZXJJRD4sIDE2PiBtX2FyZ3Y7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
IGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggMmE3
ZWFjZDFlOWFmZjI3ZmYxYWI4MDdlZmRiZGVlZGUzMGI5ZjczNi4uYTg1MGM5NjY2NjA5NTkxMzIz
Zjc2ZjA3YTNmYWVjMTQyYTg3NTA5YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKQEAgLTMyNiw2ICszMjYsOCBAQCBSZWdpc3RlcklEKiBOZXdFeHBy
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqCiBDYWxsQXJndW1lbnRzOjpDYWxsQXJndW1lbnRzKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5l
cmF0b3IsIEFyZ3VtZW50c05vZGUqIGFyZ3VtZW50c05vZGUpCiAgICAgOiBtX2FyZ3VtZW50c05v
ZGUoYXJndW1lbnRzTm9kZSkKIHsKKyAgICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxl
SG9va3MoKSkKKyAgICAgICAgbV9wcm9maWxlSG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpOwogICAgIG1fYXJndi5hcHBlbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpKTsK
ICAgICBpZiAoYXJndW1lbnRzTm9kZSkgewogICAgICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUq
IG4gPSBhcmd1bWVudHNOb2RlLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KSB7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggNTk0MjZkOWIxZWU0
YzY0NzRlNzYwNzJiMDBhMGY3YjVlZDU4YzVhOS4uMGExYmU0ODAxMzU3NWM1ZTM5ZjFiOTNkM2Zl
Y2M1MzRmNDcxNDlkZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmNwcApAQCAtNzYsMjcgKzc2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLWNsYXNzIFByb2ZpbGVIb3N0Q2FsbCB7Ci1wdWJsaWM6Ci0gICAgUHJvZmlsZUhv
c3RDYWxsKEV4ZWNTdGF0ZSogZXhlYykKLSAgICAgICAgOiBtX3Byb2ZpbGVyKFByb2ZpbGVyOjpl
bmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKSkKLSAgICAgICAgLCBtX2V4ZWMoZXhlYykKLSAgICB7
Ci0gICAgICAgIGlmICgqbV9wcm9maWxlcikKLSAgICAgICAgICAgICgqbV9wcm9maWxlciktPmhh
c0NhbGxlZChleGVjKTsKLSAgICB9Ci0KLSAgICB+UHJvZmlsZUhvc3RDYWxsKCkKLSAgICB7Ci0g
ICAgICAgIGlmICgqbV9wcm9maWxlcikKLSAgICAgICAgICAgICgqbV9wcm9maWxlciktPndpbGxS
ZXR1cm4obV9leGVjKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUHJvZmlsZXIqKiBtX3Byb2Zp
bGVyOwotICAgIEV4ZWNTdGF0ZSogbV9leGVjOwotfTsKLQogLy8gUmV0dXJucyB0aGUgZGVwdGgg
b2YgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiBhIGdpdmVuIGNhbGwgZnJhbWUuCiBzdGF0aWMgaW50
IGRlcHRoKENvZGVCbG9jayogY29kZUJsb2NrLCBTY29wZUNoYWluJiBzYykKIHsKQEAgLTU3OSw2
ICs1NTgsMTMgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbGxGcmFt
ZShDYWxsRnJhbWUqJiBjYWxsRnJhbWUsIEpTVmFsdWUgZXgKICAgICAgICAgICAgIGRlYnVnZ2Vy
LT5kaWRFeGVjdXRlUHJvZ3JhbShkZWJ1Z2dlckNhbGxGcmFtZSwgY29kZUJsb2NrLT5vd25lckV4
ZWN1dGFibGUoKS0+c291cmNlSUQoKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bGFz
dExpbmUoKSk7CiAgICAgfQogCisgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9ICpQcm9maWxl
cjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpIHsKKyAgICAgICAgaWYgKGNhbGxGcmFtZS0+
Y2FsbGVlKCkpCisgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNh
bGxGcmFtZS0+Y2FsbGVlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9maWxlci0+
ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPnNvdXJj
ZVVSTCgpLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5saW5lTm8oKSk7CisgICAgfQor
CiAgICAgLy8gSWYgdGhpcyBjYWxsIGZyYW1lIGNyZWF0ZWQgYW4gYWN0aXZhdGlvbiBvciBhbiAn
YXJndW1lbnRzJyBvYmplY3QsIHRlYXIgaXQgb2ZmLgogICAgIGlmIChvbGRDb2RlQmxvY2stPmNv
ZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVD
aGFpbigpKSB7CiAgICAgICAgIGlmICghY2FsbEZyYW1lLT5yKG9sZENvZGVCbG9jay0+YWN0aXZh
dGlvblJlZ2lzdGVyKCkpLmpzVmFsdWUoKSkgewpAQCAtNjcxLDEwICs2NTcsOSBAQCBzdGF0aWMg
dm9pZCBhcHBlbmRTb3VyY2VUb0Vycm9yKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3Rh
bmNlKiBleGNlcHRpb24sCiAKIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6
OnRocm93RXhjZXB0aW9uKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9u
VmFsdWUsIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBib29sIGV4cGxpY2l0VGhyb3cpCiB7Ci0g
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIGJv
b2wgaXNJbnRlcnJ1cHQgPSBmYWxzZTsKLQogICAgIC8vIFNldCB1cCB0aGUgZXhjZXB0aW9uIG9i
amVjdAorCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygp
OwogICAgIGlmIChleGNlcHRpb25WYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIEpTT2JqZWN0
KiBleGNlcHRpb24gPSBhc09iamVjdChleGNlcHRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZXhw
bGljaXRUaHJvdyAmJiBleGNlcHRpb24tPmlzRXJyb3JJbnN0YW5jZSgpICYmIHN0YXRpY19jYXN0
PEVycm9ySW5zdGFuY2UqPihleGNlcHRpb24pLT5hcHBlbmRTb3VyY2VUb01lc3NhZ2UoKSkKQEAg
LTY4Niw3ICs2NzEsMTIgQEAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6
dGhyb3dFeGNlcHRpb24oQ2FsbEZyYW1lKiYgY2FsbEZyYW1lLCBKU1YKICAgICAgICAgICAgIGFk
ZEVycm9ySW5mbyhjYWxsRnJhbWUsIGV4Y2VwdGlvbiwgY29kZUJsb2NrLT5saW5lTnVtYmVyRm9y
Qnl0ZWNvZGVPZmZzZXQoY2FsbEZyYW1lLCBieXRlY29kZU9mZnNldCksIGNvZGVCbG9jay0+b3du
ZXJFeGVjdXRhYmxlKCktPnNvdXJjZSgpKTsKIAogICAgICAgICBDb21wbFR5cGUgZXhjZXB0aW9u
VHlwZSA9IGV4Y2VwdGlvbi0+ZXhjZXB0aW9uVHlwZSgpOwotICAgICAgICBpc0ludGVycnVwdCA9
IGV4Y2VwdGlvblR5cGUgPT0gSW50ZXJydXB0ZWQgfHwgZXhjZXB0aW9uVHlwZSA9PSBUZXJtaW5h
dGVkOworICAgICAgICBpZiAoZXhjZXB0aW9uVHlwZSA9PSBJbnRlcnJ1cHRlZCB8fCBleGNlcHRp
b25UeXBlID09IFRlcm1pbmF0ZWQpIHsKKyAgICAgICAgICAgIHdoaWxlICh1bndpbmRDYWxsRnJh
bWUoY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSwgYnl0ZWNvZGVPZmZzZXQsIGNvZGVCbG9jaykp
IHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIGhhbmRsZXIgY2hlY2tzIG9yIGFueXRo
aW5nLCB3ZSBqdXN0IHdhbnQgdG8gdW5yb2xsIGFsbCB0aGUgSlMgY2FsbGZyYW1lcyBwb3NzaWJs
ZS4KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGNhbGxGcmFtZS0+ZHluYW1pY0dsb2Jh
bE9iamVjdCgpLT5kZWJ1Z2dlcigpKSB7CkBAIC02OTUsMTkgKzY4NSwzOSBAQCBORVZFUl9JTkxJ
TkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbihDYWxsRnJhbWUqJiBj
YWxsRnJhbWUsIEpTVgogICAgICAgICBkZWJ1Z2dlci0+ZXhjZXB0aW9uKGRlYnVnZ2VyQ2FsbEZy
YW1lLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5zb3VyY2VJRCgpLCBjb2RlQmxvY2st
PmxpbmVOdW1iZXJGb3JCeXRlY29kZU9mZnNldChjYWxsRnJhbWUsIGJ5dGVjb2RlT2Zmc2V0KSwg
aGFzSGFuZGxlcik7CiAgICAgfQogCisgICAgLy8gSWYgd2UgdGhyb3cgaW4gdGhlIG1pZGRsZSBv
ZiBhIGNhbGwgaW5zdHJ1Y3Rpb24sIHdlIG5lZWQgdG8gbm90aWZ5CisgICAgLy8gdGhlIHByb2Zp
bGVyIG1hbnVhbGx5IHRoYXQgdGhlIGNhbGwgaW5zdHJ1Y3Rpb24gaGFzIHJldHVybmVkLCBzaW5j
ZQorICAgIC8vIHdlJ2xsIG5ldmVyIHJlYWNoIHRoZSByZWxldmFudCBvcF9wcm9maWxlX2RpZF9j
YWxsLgorICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSAqUHJvZmlsZXI6OmVuYWJsZWRQcm9m
aWxlclJlZmVyZW5jZSgpKSB7CisjaWYgRU5BQkxFKElOVEVSUFJFVEVSKQorICAgICAgICBpZiAo
IWNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogV2h5IDg/IC0gd29yayBvdXQgd2hhdCB0aGlzIG1hZ2ljIHZhbHVlIGlzLCByZXBsYWNl
IHRoZSBjb25zdGFudCB3aXRoIHNvbWV0aGluZyBtb3JlIGhlbHBmdWwuCisgICAgICAgICAgICBp
ZiAoaXNDYWxsQnl0ZWNvZGUoY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNl
dF0udS5vcGNvZGUpKQorICAgICAgICAgICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxG
cmFtZSwgY2FsbEZyYW1lLT5yKGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZz
ZXQgKyAxXS51Lm9wZXJhbmQpLmpzVmFsdWUoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLnNpemUoKSA+IChieXRlY29kZU9mZnNldCArIDgpICYmIGNv
ZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVPZmZzZXQgKyA4XS51Lm9wY29kZSA9PSBn
ZXRPcGNvZGUob3BfY29uc3RydWN0KSkKKyAgICAgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhl
Y3V0ZShjYWxsRnJhbWUsIGNhbGxGcmFtZS0+cihjb2RlQmxvY2stPmluc3RydWN0aW9ucygpW2J5
dGVjb2RlT2Zmc2V0ICsgOV0udS5vcGVyYW5kKS5qc1ZhbHVlKCkpOworICAgICAgICB9CisjaWYg
RU5BQkxFKEpJVCkKKyAgICAgICAgZWxzZQorI2VuZGlmCisjZW5kaWYKKyNpZiBFTkFCTEUoSklU
KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZnVuY3Rpb25SZWdpc3RlckluZGV4OworICAg
ICAgICAgICAgaWYgKGNvZGVCbG9jay0+ZnVuY3Rpb25SZWdpc3RlckZvckJ5dGVjb2RlT2Zmc2V0
KGJ5dGVjb2RlT2Zmc2V0LCBmdW5jdGlvblJlZ2lzdGVySW5kZXgpKQorICAgICAgICAgICAgICAg
IHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5yKGZ1bmN0aW9uUmVn
aXN0ZXJJbmRleCkuanNWYWx1ZSgpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCiAgICAg
Ly8gQ2FsY3VsYXRlIGFuIGV4Y2VwdGlvbiBoYW5kbGVyIHZQQywgdW53aW5kaW5nIGNhbGwgZnJh
bWVzIGFzIG5lY2Vzc2FyeS4KKwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gMDsKLSAgICB3
aGlsZSAoaXNJbnRlcnJ1cHQgfHwgIShoYW5kbGVyID0gY29kZUJsb2NrLT5oYW5kbGVyRm9yQnl0
ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgewotICAgICAgICBpZiAoIXVud2luZENhbGxG
cmFtZShjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCBieXRlY29kZU9mZnNldCwgY29kZUJsb2Nr
KSkgewotICAgICAgICAgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9ICpQcm9maWxlcjo6ZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2Vw
dGlvblVud2luZChjYWxsRnJhbWUpOworICAgIHdoaWxlICghKGhhbmRsZXIgPSBjb2RlQmxvY2st
PmhhbmRsZXJGb3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkpKSB7CisgICAgICAgIGlm
ICghdW53aW5kQ2FsbEZyYW1lKGNhbGxGcmFtZSwgZXhjZXB0aW9uVmFsdWUsIGJ5dGVjb2RlT2Zm
c2V0LCBjb2RlQmxvY2spKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KICAgICB9
CiAKLSAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gKlByb2ZpbGVyOjplbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UoKSkKLSAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChjYWxsRnJh
bWUpOwotCiAgICAgLy8gU2hyaW5rIHRoZSBKUyBzdGFjaywgaW4gY2FzZSBzdGFjayBvdmVyZmxv
dyBtYWRlIGl0IGh1Z2UuCiAgICAgUmVnaXN0ZXIqIGhpZ2hXYXRlck1hcmsgPSAwOwogICAgIGZv
ciAoQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZTsgY2FsbGVyRnJhbWU7IGNhbGxl
ckZyYW1lID0gY2FsbGVyRnJhbWUtPmNhbGxlckZyYW1lKCktPnJlbW92ZUhvc3RDYWxsRnJhbWVG
bGFnKCkpIHsKQEAgLTc3OSw3ICs3ODksNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
KFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUwogCiAg
ICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVu
Y2UoKTsKICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAoKnByb2ZpbGVyKS0+d2lsbEV2YWx1
YXRlKG5ld0NhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygp
KTsKKyAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKG5ld0NhbGxGcmFtZSwgcHJvZ3Jh
bS0+c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKIAogICAgIEpTVmFsdWUgcmVzdWx0
OwogICAgIHsKQEAgLTc5Nyw3ICs4MDcsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
KFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUwogICAg
IH0KIAogICAgIGlmICgqcHJvZmlsZXIpCi0gICAgICAgICgqcHJvZmlsZXIpLT5kaWRFdmFsdWF0
ZShjYWxsRnJhbWUsIHByb2dyYW0tPnNvdXJjZVVSTCgpLCBwcm9ncmFtLT5saW5lTm8oKSk7Cisg
ICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNl
VVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKIAogICAgIGlmIChtX3JlZW50cnlEZXB0aCAmJiBs
YXN0R2xvYmFsT2JqZWN0ICYmIGdsb2JhbE9iamVjdCAhPSBsYXN0R2xvYmFsT2JqZWN0KQogICAg
ICAgICBsYXN0R2xvYmFsT2JqZWN0LT5jb3B5R2xvYmFsc1RvKG1fcmVnaXN0ZXJGaWxlKTsKQEAg
LTg0OCw2ICs4NTgsMTAgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKIAogICAgICAgICBEeW5h
bWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2NvcGUobmV3Q2FsbEZyYW1lLCBjYWxs
RGF0YVNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdCk7CiAKKyAgICAgICAgUHJvZmlsZXIqKiBwcm9m
aWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKKyAgICAgICAgaWYg
KCpwcm9maWxlcikKKyAgICAgICAgICAgICgqcHJvZmlsZXIpLT53aWxsRXhlY3V0ZShuZXdDYWxs
RnJhbWUsIGZ1bmN0aW9uKTsKKwogICAgICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICAgICAgewog
ICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVy
LmdldCgpKTsKQEAgLTg2Miw2ICs4NzYsOSBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
Q2FsbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVAogICAg
ICAgICAgICAgbV9yZWVudHJ5RGVwdGgtLTsKICAgICAgICAgfQogCisgICAgICAgIGlmICgqcHJv
ZmlsZXIpCisgICAgICAgICAgICAoKnByb2ZpbGVyKS0+ZGlkRXhlY3V0ZShuZXdDYWxsRnJhbWUs
IGZ1bmN0aW9uKTsKKwogICAgICAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsob2xkRW5kKTsKICAg
ICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKICAgICB9CkBAIC04NzMsMTMgKzg5
MCwxOSBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVAogCiAgICAgRHluYW1pY0dsb2JhbE9iamVj
dFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKG5ld0NhbGxGcmFtZSwgc2NvcGVDaGFpbi0+Z2xvYmFs
T2JqZWN0KTsKIAorICAgIFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFBy
b2ZpbGVyUmVmZXJlbmNlKCk7CisgICAgaWYgKCpwcm9maWxlcikKKyAgICAgICAgKCpwcm9maWxl
ciktPndpbGxFeGVjdXRlKG5ld0NhbGxGcmFtZSwgZnVuY3Rpb24pOworCiAgICAgSlNWYWx1ZSBy
ZXN1bHQ7CiAgICAgewotICAgICAgICBQcm9maWxlSG9zdENhbGwgcHJvZmlsZUhvc3RDYWxsKG5l
d0NhbGxGcmFtZSk7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6SG9zdENhbGxSZWNvcmQgY2FsbFJl
Y29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUo
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwogICAgIH0KIAorICAgIGlm
ICgqcHJvZmlsZXIpCisgICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKG5ld0NhbGxGcmFt
ZSwgZnVuY3Rpb24pOworCiAgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKG9sZEVuZCk7CiAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KQEAgLTkyNCw2ICs5NDcsMTAgQEAgSlNP
YmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1l
LCBKU09iamVjdCogY29uc3RydWMKIAogICAgICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUg
Z2xvYmFsT2JqZWN0U2NvcGUobmV3Q2FsbEZyYW1lLCBjb25zdHJ1Y3REYXRhU2NvcGVDaGFpbi0+
Z2xvYmFsT2JqZWN0KTsKIAorICAgICAgICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6
OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOworICAgICAgICBpZiAoKnByb2ZpbGVyKQorICAg
ICAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKG5ld0NhbGxGcmFtZSwgY29uc3RydWN0
b3IpOworCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBT
YW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwpAQCAt
OTM4LDYgKzk2NSw5IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgICAgICAgICBtX3Jl
ZW50cnlEZXB0aC0tOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKCpwcm9maWxlcikKKyAgICAg
ICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKG5ld0NhbGxGcmFtZSwgY29uc3RydWN0b3Ip
OworCiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgICAgICBpZiAo
Y2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtOTUy
LDEzICs5ODIsMTkgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogY29uc3RydWMKIAogICAgIER5bmFtaWNHbG9i
YWxPYmplY3RTY29wZSBnbG9iYWxPYmplY3RTY29wZShuZXdDYWxsRnJhbWUsIHNjb3BlQ2hhaW4t
Pmdsb2JhbE9iamVjdCk7CiAKKyAgICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVu
YWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOworICAgIGlmICgqcHJvZmlsZXIpCisgICAgICAgICgq
cHJvZmlsZXIpLT53aWxsRXhlY3V0ZShuZXdDYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKKwogICAg
IEpTVmFsdWUgcmVzdWx0OwogICAgIHsKLSAgICAgICAgUHJvZmlsZUhvc3RDYWxsIHByb2ZpbGVI
b3N0Q2FsbChuZXdDYWxsRnJhbWUpOwogICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RDYWxsUmVj
b3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgcmVzdWx0ID0gSlNWYWx1
ZTo6ZGVjb2RlKGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwog
ICAgIH0KIAorICAgIGlmICgqcHJvZmlsZXIpCisgICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVj
dXRlKG5ld0NhbGxGcmFtZSwgY29uc3RydWN0b3IpOworCiAgICAgbV9yZWdpc3RlckZpbGUuc2hy
aW5rKG9sZEVuZCk7CiAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtMTAxMiw2ICsxMDQ4LDkgQEAgQ2FsbEZyYW1lQ2xvc3VyZSBJbnRlcnBy
ZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwoRnVuY3Rpb25FeGVjdXRhYmxlKiBGdW5jdGlvbkUK
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkg
CiB7CiAgICAgY2xvc3VyZS5yZXNldENhbGxGcmFtZSgpOworICAgIFByb2ZpbGVyKiogcHJvZmls
ZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CisgICAgaWYgKCpwcm9m
aWxlcikKKyAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNsb3N1cmUub2xkQ2FsbEZy
YW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsKICAgICAKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7
CkBAIC0xMDMzLDYgKzEwNzIsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxG
cmFtZUNsb3N1cmUmIGNsb3N1cmUpCiAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgfQog
ICAgIAorICAgIGlmICgqcHJvZmlsZXIpCisgICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRl
KGNsb3N1cmUub2xkQ2FsbEZyYW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsKICAgICByZXR1cm4gY2hl
Y2tlZFJldHVybihyZXN1bHQpOwogfQogCkBAIC0xMTE4LDcgKzExNTksNyBAQCBKU1ZhbHVlIElu
dGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNPYmplYwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFi
bGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAoKnBy
b2ZpbGVyKS0+d2lsbEV2YWx1YXRlKG5ld0NhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2
YWwtPmxpbmVObygpKTsKKyAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKG5ld0NhbGxG
cmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmxpbmVObygpKTsKIAogICAgIEpTVmFsdWUg
cmVzdWx0OwogICAgIHsKQEAgLTExNDIsNyArMTE4Myw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09i
amVjCiAgICAgfQogCiAgICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPmRp
ZEV2YWx1YXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmxpbmVObygpKTsK
KyAgICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VV
UkwoKSwgZXZhbC0+bGluZU5vKCkpOwogCiAgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKG9sZEVu
ZCk7CiAgICAgaWYgKHB1c2hlZFNjb3BlKQpAQCAtMzg4OSw3ICszOTMwLDYgQEAgc2tpcF9pZF9j
dXN0b21fc2VsZjoKIAogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBQcm9maWxlSG9zdENhbGwgcHJvZmlsZUhvc3RDYWxsKG5l
d0NhbGxGcmFtZSk7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29y
ZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0NhbGxGcmFt
ZSkpOwogICAgICAgICAgICAgfQpAQCAtNDA0OCw3ICs0MDg4LDYgQEAgc2tpcF9pZF9jdXN0b21f
c2VsZjoKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQcm9maWxlSG9zdENhbGwgcHJvZmlsZUhvc3RD
YWxsKG5ld0NhbGxGcmFtZSk7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2Fs
bFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0Nh
bGxGcmFtZSkpOwogICAgICAgICAgICAgfQpAQCAtNDM5NCw3ICs0NDMzLDYgQEAgc2tpcF9pZF9j
dXN0b21fc2VsZjoKIAogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBQcm9maWxlSG9zdENhbGwgcHJvZmlsZUhvc3RDYWxsKG5l
d0NhbGxGcmFtZSk7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29y
ZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2Fs
bEZyYW1lKSk7CiAgICAgICAgICAgICB9CkBAIC00NzMyLDI4ICs0NzcwLDMyIEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgIHZQQyArPSBPUENPREVfTEVOR1RIKG9wX2RlYnVnKTsKICAg
ICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KLSAgICBERUZJTkVfT1BDT0RFKG9wX3By
b2ZpbGVfaGFzX2NhbGxlZCkgewotICAgICAgICAvKiBvcF9wcm9maWxlX2hhc19jYWxsZWQKKyAg
ICBERUZJTkVfT1BDT0RFKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKSB7CisgICAgICAgIC8qIG9wX3By
b2ZpbGVfd2lsbF9jYWxsIGZ1bmN0aW9uKHIpCiAKICAgICAgICAgIE5vdGlmaWVzIHRoZSBwcm9m
aWxlciBvZiB0aGUgYmVnaW5uaW5nIG9mIGEgZnVuY3Rpb24gY2FsbC4gVGhpcyBvcGNvZGUKICAg
ICAgICAgIGlzIG9ubHkgZ2VuZXJhdGVkIGlmIGRldmVsb3BlciB0b29scyBhcmUgZW5hYmxlZC4K
ICAgICAgICAgKi8KKyAgICAgICAgaW50IGZ1bmN0aW9uID0gdlBDWzFdLnUub3BlcmFuZDsKKwog
ICAgICAgICBpZiAoKmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkKLSAgICAgICAgICAgICgqZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlKS0+aGFzQ2FsbGVkKGNhbGxGcmFtZSk7CisgICAgICAgICAg
ICAoKmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSktPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgY2Fs
bEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpOwogCi0gICAgICAgIHZQQyArPSBPUENPREVf
TEVOR1RIKG9wX3Byb2ZpbGVfaGFzX2NhbGxlZCk7CisgICAgICAgIHZQQyArPSBPUENPREVfTEVO
R1RIKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwog
ICAgIH0KLSAgICBERUZJTkVfT1BDT0RFKG9wX3Byb2ZpbGVfd2lsbF9yZXR1cm4pIHsKLSAgICAg
ICAgLyogb3BfcHJvZmlsZV93aWxsX3JldHVybgorICAgIERFRklORV9PUENPREUob3BfcHJvZmls
ZV9kaWRfY2FsbCkgeworICAgICAgICAvKiBvcF9wcm9maWxlX2RpZF9jYWxsIGZ1bmN0aW9uKHIp
CiAKICAgICAgICAgIE5vdGlmaWVzIHRoZSBwcm9maWxlciBvZiB0aGUgZW5kIG9mIGEgZnVuY3Rp
b24gY2FsbC4gVGhpcyBvcGNvZGUKICAgICAgICAgIGlzIG9ubHkgZ2VuZXJhdGVkIGlmIGRldmVs
b3BlciB0b29scyBhcmUgZW5hYmxlZC4KICAgICAgICAgKi8KKyAgICAgICAgaW50IGZ1bmN0aW9u
ID0gdlBDWzFdLnUub3BlcmFuZDsKKwogICAgICAgICBpZiAoKmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSkKLSAgICAgICAgICAgICgqZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKS0+d2lsbFJldHVy
bihjYWxsRnJhbWUpOworICAgICAgICAgICAgKCplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UpLT5k
aWRFeGVjdXRlKGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpOwog
Ci0gICAgICAgIHZQQyArPSBPUENPREVfTEVOR1RIKG9wX3Byb2ZpbGVfd2lsbF9yZXR1cm4pOwor
ICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICAg
ICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KICAgICB2bV90aHJvdzogewpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAppbmRleCA5OTk3OTdiOTczMTlkMjBlNWU1Y2M0YzZmMTAyNmQxNjI5MmE0MDA5Li4zZjJlYzU5
ZjVkMzYwNDA3NDRiNDUzY2VjOGZlODkwM2NiMzZiOGJmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjg0
LDggKzI4NCw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAg
REVGSU5FX09QKG9wX3Bvc3RfaW5jKQogICAgICAgICBERUZJTkVfT1Aob3BfcHJlX2RlYykKICAg
ICAgICAgREVGSU5FX09QKG9wX3ByZV9pbmMpCi0gICAgICAgIERFRklORV9PUChvcF9wcm9maWxl
X2hhc19jYWxsZWQpCi0gICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX3dpbGxfcmV0dXJuKQor
ICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmlsZV9kaWRfY2FsbCkKKyAgICAgICAgREVGSU5FX09Q
KG9wX3Byb2ZpbGVfd2lsbF9jYWxsKQogICAgICAgICBERUZJTkVfT1Aob3BfcHVzaF9uZXdfc2Nv
cGUpCiAgICAgICAgIERFRklORV9PUChvcF9wdXNoX3Njb3BlKQogICAgICAgICBERUZJTkVfT1Ao
b3BfcHV0X2J5X2lkKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGZkMTkzZTVmNGJiODkzNjZiMjQyZWUyZTMyOGQ0
YzgwMWM3YzI5OTIuLjkwN2E3NzRiYjIwYTlkYjY2MGZiNGRlZmE0ZDlmODY5YThlNmZmN2UgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKQEAgLTc5Nyw4ICs3OTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9p
ZCBlbWl0X29wX3Bvc3RfaW5jKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9w
cmVfZGVjKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcmVfaW5jKEluc3Ry
dWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX2hhc19jYWxsZWQoSW5zdHJ1
Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfd2lsbF9yZXR1cm4oSW5zdHJ1
Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwoSW5zdHJ1Y3Rp
b24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKEluc3RydWN0aW9u
Kik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wdXNoX25ld19zY29wZShJbnN0cnVjdGlvbiopOwog
ICAgICAgICB2b2lkIGVtaXRfb3BfcHVzaF9zY29wZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKaW5kZXggYzk5OTNhMTc0M2EzNjU4NzI3ZDgyOTFmZjA0MTc1MThjYjU5NjgzZS4uZDc4
MzU4MTdkZWQ4NDEyYjQzODZmMWQ1ZDQzNmQzOTcwYmMzMTZmNyAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcApAQCAtMTMwNiwyMyArMTMwNiwyNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jcmVh
dGVfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHN0dWJDYWxsLmNh
bGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKLXZvaWQgSklUOjplbWl0
X29wX3Byb2ZpbGVfaGFzX2NhbGxlZChJbnN0cnVjdGlvbiopCit2b2lkIEpJVDo6ZW1pdF9vcF9w
cm9maWxlX3dpbGxfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IHBlZWsocmVnVDEsIE9CSkVDVF9PRkZTRVRPRihKSVRTdGFja0ZyYW1lLCBlbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UpIC8gc2l6ZW9mKHZvaWQqKSk7CiAgICAgSnVtcCBub1Byb2ZpbGVyID0gYnJh
bmNoVGVzdFB0cihaZXJvLCBBZGRyZXNzKHJlZ1QxKSk7CiAKLSAgICBKSVRTdHViQ2FsbCBzdHVi
Q2FsbCh0aGlzLCBjdGlfb3BfcHJvZmlsZV9oYXNfY2FsbGVkKTsKKyAgICBKSVRTdHViQ2FsbCBz
dHViQ2FsbCh0aGlzLCBjdGlfb3BfcHJvZmlsZV93aWxsX2NhbGwpOworICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxKTsKICAgICBz
dHViQ2FsbC5jYWxsKCk7CiAgICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogCiB9CiAKLXZvaWQg
SklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9yZXR1cm4oSW5zdHJ1Y3Rpb24qKQordm9pZCBKSVQ6
OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogewogICAgIHBlZWsocmVnVDEsIE9CSkVDVF9PRkZTRVRPRihKSVRTdGFja0ZyYW1lLCBlbmFi
bGVkUHJvZmlsZXJSZWZlcmVuY2UpIC8gc2l6ZW9mKHZvaWQqKSk7CiAgICAgSnVtcCBub1Byb2Zp
bGVyID0gYnJhbmNoVGVzdFB0cihaZXJvLCBBZGRyZXNzKHJlZ1QxKSk7CiAKLSAgICBKSVRTdHVi
Q2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcHJvZmlsZV93aWxsX3JldHVybik7CisgICAgSklU
U3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Byb2ZpbGVfZGlkX2NhbGwpOworICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1Qx
KTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogfQpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCAyNWM1M2I3MGE5ZDNlN2Vj
NDZjODBlY2VlMmI5NTgzNDI0MTNhODYxLi4wNzY2NDlkY2MyOTdkNzAxM2YzM2MxOWMxNjIxNDFi
OTMxMTYxNWU0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMTYz
NSwyMiArMTYzNSwyNCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzX3N0cmlj
dChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0bwogICAgIHN0dWJDYWxsLmNh
bGwodGhpc1JlZ2lzdGVyKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9oYXNfY2Fs
bGVkKEluc3RydWN0aW9uKikKK3ZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgcGVlayhyZWdUMiwgT0JKRUNU
X09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkgLyBzaXpl
b2Yodm9pZCopKTsKICAgICBKdW1wIG5vUHJvZmlsZXIgPSBicmFuY2hUZXN0UHRyKFplcm8sIEFk
ZHJlc3MocmVnVDIpKTsKIAotICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9w
cm9maWxlX2hhc19jYWxsZWQpOworICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9v
cF9wcm9maWxlX3dpbGxfY2FsbCk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIG5vUHJv
ZmlsZXIubGluayh0aGlzKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxsX3Jl
dHVybihJbnN0cnVjdGlvbiopCit2b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgcGVlayhyZWdUMiwgT0JKRUNU
X09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkgLyBzaXpl
b2Yodm9pZCopKTsKICAgICBKdW1wIG5vUHJvZmlsZXIgPSBicmFuY2hUZXN0UHRyKFplcm8sIEFk
ZHJlc3MocmVnVDIpKTsKIAotICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9w
cm9maWxlX3dpbGxfcmV0dXJuKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlf
b3BfcHJvZmlsZV9kaWRfY2FsbCk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIG5vUHJv
ZmlsZXIubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGFiMmY5ZTNm
ZmQzYThkZjI5OTg0Yzc1OGRjMDEzNWE0MTViNTBhNjkuLjM2ZDM2YTJlOWExZTJmMjMyNTY4OTlh
NDcxOTM4NTMwMjAxOGNhMjggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMjI2NCwyMCAr
MjI2NCwyMCBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF90ZWFyX29mZl9hcmd1bWVu
dHMpCiAgICAgYXNBcmd1bWVudHMoc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSktPmNvcHlS
ZWdpc3RlcnMoKTsKIH0KIAotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHJvZmlsZV9o
YXNfY2FsbGVkKQorREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHJvZmlsZV93aWxsX2Nh
bGwpCiB7CiAgICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwogCiAgICAgQVNT
RVJUKCpzdGFja0ZyYW1lLmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSk7Ci0gICAgKCpzdGFja0Zy
YW1lLmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSktPmhhc0NhbGxlZChzdGFja0ZyYW1lLmNhbGxG
cmFtZSk7CisgICAgKCpzdGFja0ZyYW1lLmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSktPndpbGxF
eGVjdXRlKHN0YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgp
KTsKIH0KIAotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHJvZmlsZV93aWxsX3JldHVy
bikKK0RFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3Byb2ZpbGVfZGlkX2NhbGwpCiB7CiAg
ICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwogCiAgICAgQVNTRVJUKCpzdGFj
a0ZyYW1lLmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSk7Ci0gICAgKCpzdGFja0ZyYW1lLmVuYWJs
ZWRQcm9maWxlclJlZmVyZW5jZSktPndpbGxSZXR1cm4oc3RhY2tGcmFtZS5jYWxsRnJhbWUpOwor
ICAgICgqc3RhY2tGcmFtZS5lbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UpLT5kaWRFeGVjdXRlKHN0
YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpKTsKIH0KIAog
REVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcmV0X3Njb3BlQ2hhaW4pCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5oCmluZGV4IGY2NzAzZWFhZWYxMjI4OWI3OTVkODQzNjNmMmJjNGZmN2NkODFkOGEuLjkz
NzEzNGJiM2I5ZWZiOTZiZTFmNTQ4ZDFmYWQ1MWNhMTk0MzlhYmIgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCkBAIC0zNzcsOCArMzc3LDggQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZCBKSVRfU1RVQiBj
dGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTik7CiAgICAgdm9pZCBKSVRfU1RVQiBjdGlf
b3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIHZvaWQgSklUX1NUVUIg
Y3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3Byb2ZpbGVfaGFzX2NhbGxlZChTVFVCX0FSR1NfREVDTEFSQVRJT04pOwotICAg
IHZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfd2lsbF9yZXR1cm4oU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKTsKKyAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTik7CisgICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV93aWxs
X2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICB2b2lkIEpJVF9TVFVCIGN0aV9v
cF9wdXRfYnlfaWRfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTik7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCmluZGV4IDFhODQ1MThjMWJiYjk1MzhjN2ZmZDhkN2U1
NDc0MTE5ZWI5NWIzYjMuLmJjMjM5YjM0ZjlhNmEwYWJlZDhiNzg3MmQ5ZWVjY2FjMzc0YjFkMzgg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFByb2Zp
bGU6OlByb2ZpbGUoY29uc3QgVVN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCkKIHsKICAgICAv
LyBGSVhNRTogV2hlbiBtdWx0aS10aHJlYWRpbmcgaXMgc3VwcG9ydGVkIHRoaXMgd2lsbCBiZSBh
IHZlY3RvciBhbmQgY2FsbHMKICAgICAvLyBpbnRvIHRoZSBwcm9maWxlciB3aWxsIG5lZWQgdG8g
a25vdyB3aGljaCB0aHJlYWQgaXQgaXMgZXhlY3V0aW5nIG9uLgotICAgIG1faGVhZCA9IFByb2Zp
bGVOb2RlOjpjcmVhdGUoMCwgQ2FsbElkZW50aWZpZXIoIlRocmVhZF8xIiwgVVN0cmluZygpLCAw
KSwgMCwgMCk7CisgICAgbV9oZWFkID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShDYWxsSWRlbnRpZmll
cigiVGhyZWFkXzEiLCBVU3RyaW5nKCksIDApLCAwLCAwKTsKIH0KIAogUHJvZmlsZTo6flByb2Zp
bGUoKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRv
ci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAppbmRl
eCA3OGQ4NWU1MzhhZTA0M2FkZjcyY2NhYjdiM2M0Yjc1NzljNzE4NDE2Li4xZDkxNmVhMWNjMWQx
YzU1MjkzYjkxZmM3M2MxZGZiZjM0NGI1ZDE2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFByb2ZpbGVHZW5l
cmF0b3I6OmFkZFBhcmVudEZvckNvbnNvbGVTdGFydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNW
YWx1ZSBmdW5jdGlvbjsKIAogICAgIGV4ZWMtPmludGVycHJldGVyKCktPnJldHJpZXZlTGFzdENh
bGxlcihleGVjLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCwgc291cmNlVVJMLCBmdW5jdGlvbik7Ci0g
ICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoZXhlYywgUHJvZmlsZXI6OmNy
ZWF0ZUNhbGxJZGVudGlmaWVyKGV4ZWMsIGZ1bmN0aW9uID8gZnVuY3Rpb24udG9UaGlzT2JqZWN0
KGV4ZWMpIDogMCwgc291cmNlVVJMLCBsaW5lTnVtYmVyKSwgbV9oZWFkLmdldCgpLCBtX2hlYWQu
Z2V0KCkpOworICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKFByb2ZpbGVy
OjpjcmVhdGVDYWxsSWRlbnRpZmllcihleGVjLCBmdW5jdGlvbiA/IGZ1bmN0aW9uLnRvVGhpc09i
amVjdChleGVjKSA6IDAsIHNvdXJjZVVSTCwgbGluZU51bWJlciksIG1faGVhZC5nZXQoKSwgbV9o
ZWFkLmdldCgpKTsKICAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50Tm9kZS5nZXQoKSk7
CiB9CiAKQEAgLTcyLDcgKzcyLDcgQEAgY29uc3QgVVN0cmluZyYgUHJvZmlsZUdlbmVyYXRvcjo6
dGl0bGUoKSBjb25zdAogICAgIHJldHVybiBtX3Byb2ZpbGUtPnRpdGxlKCk7CiB9CiAKLXZvaWQg
UHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDYWxs
SWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCit2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OndpbGxF
eGVjdXRlKGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKIHsKICAgICBpZiAo
SkFWQVNDUklQVENPUkVfUFJPRklMRV9XSUxMX0VYRUNVVEVfRU5BQkxFRCgpKSB7CiAgICAgICAg
IENTdHJpbmcgbmFtZSA9IGNhbGxJZGVudGlmaWVyLm1fbmFtZS51dGY4KCk7CkBAIC04MywxMSAr
ODMsMTEgQEAgdm9pZCBQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWQKICAgICBpZiAoIW1fb3JpZ2luYXRpbmdH
bG9iYWxFeGVjKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7
Ci0gICAgbV9jdXJyZW50Tm9kZSA9IG1fY3VycmVudE5vZGUtPndpbGxFeGVjdXRlKGV4ZWMsIGNh
bGxJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfQVJHKG1fY3VycmVudE5vZGUsIG1fY3VycmVudE5v
ZGUpOworICAgIG1fY3VycmVudE5vZGUgPSBtX2N1cnJlbnROb2RlLT53aWxsRXhlY3V0ZShjYWxs
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKK3ZvaWQg
UHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZShjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElk
ZW50aWZpZXIpCiB7CiAgICAgaWYgKEpBVkFTQ1JJUFRDT1JFX1BST0ZJTEVfRElEX0VYRUNVVEVf
RU5BQkxFRCgpKSB7CiAgICAgICAgIENTdHJpbmcgbmFtZSA9IGNhbGxJZGVudGlmaWVyLm1fbmFt
ZS51dGY4KCk7CkBAIC05OCw5ICs5OCw5IEBAIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhl
Y3V0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlCiAgICAg
aWYgKCFtX29yaWdpbmF0aW5nR2xvYmFsRXhlYykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKG1fY3VycmVudE5vZGUpOworICAgIEFTU0VSVF9BUkcobV9jdXJyZW50Tm9kZSwgbV9jdXJy
ZW50Tm9kZSk7CiAgICAgaWYgKG1fY3VycmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkgIT0gY2Fs
bElkZW50aWZpZXIpIHsKLSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiByZXR1cm5pbmdOb2Rl
ID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShleGVjLCBjYWxsSWRlbnRpZmllciwgbV9oZWFkLmdldCgp
LCBtX2N1cnJlbnROb2RlLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiByZXR1
cm5pbmdOb2RlID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShjYWxsSWRlbnRpZmllciwgbV9oZWFkLmdl
dCgpLCBtX2N1cnJlbnROb2RlLmdldCgpKTsKICAgICAgICAgcmV0dXJuaW5nTm9kZS0+c2V0U3Rh
cnRUaW1lKG1fY3VycmVudE5vZGUtPnN0YXJ0VGltZSgpKTsKICAgICAgICAgcmV0dXJuaW5nTm9k
ZS0+ZGlkRXhlY3V0ZSgpOwogICAgICAgICBtX2N1cnJlbnROb2RlLT5pbnNlcnROb2RlKHJldHVy
bmluZ05vZGUucmVsZWFzZSgpKTsKQEAgLTExMCwxNSArMTEwLDYgQEAgdm9pZCBQcm9maWxlR2Vu
ZXJhdG9yOjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2FsbElkZW50aWZpZXIm
IGNhbGxJZGUKICAgICBtX2N1cnJlbnROb2RlID0gbV9jdXJyZW50Tm9kZS0+ZGlkRXhlY3V0ZSgp
OwogfQogCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJikKLXsKLSAgICBBU1NFUlQobV9jdXJyZW50Tm9k
ZSk7Ci0gICAgd2hpbGUgKG1fY3VycmVudE5vZGUtPmV4ZWMoKSA+IGV4ZWMpIHsKLSAgICAgICAg
ZGlkRXhlY3V0ZShleGVjLCBtX2N1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpKTsKLSAgICAg
ICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIH0KLX0KLQogdm9pZCBQcm9maWxlR2VuZXJh
dG9yOjpzdG9wUHJvZmlsaW5nKCkKIHsKICAgICBtX3Byb2ZpbGUtPmZvckVhY2goJlByb2ZpbGVO
b2RlOjpzdG9wUHJvZmlsaW5nKTsKQEAgLTEyNiwxNCArMTE3LDE0IEBAIHZvaWQgUHJvZmlsZUdl
bmVyYXRvcjo6c3RvcFByb2ZpbGluZygpCiAgICAgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7CiAgICAg
cmVtb3ZlUHJvZmlsZUVuZCgpOwogCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOworICAgIEFT
U0VSVF9BUkcobV9jdXJyZW50Tm9kZSwgbV9jdXJyZW50Tm9kZSk7CiAKICAgICAvLyBTZXQgdGhl
IGN1cnJlbnQgbm9kZSB0byB0aGUgcGFyZW50LCBiZWNhdXNlIHdlIGFyZSBpbiBhIGNhbGwgdGhh
dAogICAgIC8vIHdpbGwgbm90IGdldCBkaWRFeGVjdXRlIGNhbGwuCiAgICAgbV9jdXJyZW50Tm9k
ZSA9IG1fY3VycmVudE5vZGUtPnBhcmVudCgpOwogCiAgICBpZiAoZG91YmxlIGhlYWRTZWxmVGlt
ZSA9IG1faGVhZC0+c2VsZlRpbWUoKSkgewotICAgICAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGlk
bGVOb2RlID0gUHJvZmlsZU5vZGU6OmNyZWF0ZSgwLCBDYWxsSWRlbnRpZmllcihOb25KU0V4ZWN1
dGlvbiwgVVN0cmluZygpLCAwKSwgbV9oZWFkLmdldCgpLCBtX2hlYWQuZ2V0KCkpOworICAgICAg
ICBSZWZQdHI8UHJvZmlsZU5vZGU+IGlkbGVOb2RlID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShDYWxs
SWRlbnRpZmllcihOb25KU0V4ZWN1dGlvbiwgVVN0cmluZygpLCAwKSwgbV9oZWFkLmdldCgpLCBt
X2hlYWQuZ2V0KCkpOwogCiAgICAgICAgIGlkbGVOb2RlLT5zZXRUb3RhbFRpbWUoaGVhZFNlbGZU
aW1lKTsKICAgICAgICAgaWRsZU5vZGUtPnNldFNlbGZUaW1lKGhlYWRTZWxmVGltZSk7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKaW5kZXggNzFhOGY3YTM0Yzli
ODk1YTNiOWU2ODg2NjJhMjY5MjhmYmVjNGZmNS4uODIxNDliMzNkNjE2NzVkNDEwZGRiMGFkYTVk
MWMxNDI0NjVmZDkwNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0
b3IuaApAQCAtNTAsMTUgKzUwLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1bnNpZ25l
ZCBwcm9maWxlR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX3Byb2ZpbGVHcm91cDsgfQogCiAgICAg
ICAgIC8vIENvbGxlY3RpbmcKLSAgICAgICAgdm9pZCB3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0gICAgICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0KLSAgICAgICAgdm9pZCBleGNl
cHRpb25VbndpbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDYWxsSWRlbnRpZmllciYpOworICAg
ICAgICB2b2lkIHdpbGxFeGVjdXRlKGNvbnN0IENhbGxJZGVudGlmaWVyJik7CisgICAgICAgIHZv
aWQgZGlkRXhlY3V0ZShjb25zdCBDYWxsSWRlbnRpZmllciYpOwogCiAgICAgICAgIC8vIFN0b3Bw
aW5nIFByb2ZpbGluZwogICAgICAgICB2b2lkIHN0b3BQcm9maWxpbmcoKTsKIAotICAgICAgICB0
eXBlZGVmIHZvaWQgKFByb2ZpbGVHZW5lcmF0b3I6OipQcm9maWxlRnVuY3Rpb24pKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKTsKKyAgICAgICAg
dHlwZWRlZiB2b2lkIChQcm9maWxlR2VuZXJhdG9yOjoqUHJvZmlsZUZ1bmN0aW9uKShjb25zdCBD
YWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
UHJvZmlsZUdlbmVyYXRvcihjb25zdCBVU3RyaW5nJiB0aXRsZSwgRXhlY1N0YXRlKiBvcmlnaW5h
dGluZ0V4ZWMsIHVuc2lnbmVkIHVpZCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlTm9kZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9k
ZS5jcHAKaW5kZXggZGMzYjg4ZGUxNzM2MzRiOTFiZjQ0NmZkMGZhMDRlN2MwZDZkY2E4ZS4uYmZj
ZmNiZTU3YWRkMTdkOWZiYjFhZWE2Mzc5ZDkzNjhkNWQ1NTNmZiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcApAQCAtNTYsOSArNTYsOCBAQCBzdGF0aWMgZG91YmxlIGdl
dENvdW50KCkKICNlbmRpZgogfQogCi1Qcm9maWxlTm9kZTo6UHJvZmlsZU5vZGUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2Rl
KiBoZWFkTm9kZSwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCi0gICAgOiBtX2V4ZWMoZXhlYykK
LSAgICAsIG1fY2FsbElkZW50aWZpZXIoY2FsbElkZW50aWZpZXIpCitQcm9maWxlTm9kZTo6UHJv
ZmlsZU5vZGUoY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyLCBQcm9maWxlTm9k
ZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQorICAgIDogbV9jYWxsSWRlbnRp
ZmllcihjYWxsSWRlbnRpZmllcikKICAgICAsIG1faGVhZChoZWFkTm9kZSkKICAgICAsIG1fcGFy
ZW50KHBhcmVudE5vZGUpCiAgICAgLCBtX25leHRTaWJsaW5nKDApCkBAIC03Myw5ICs3Miw4IEBA
IFByb2ZpbGVOb2RlOjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENhbGxJZGVu
dGlmaWVyJiBjYWxsSWRlbnRpZmllciwKICAgICBzdGFydFRpbWVyKCk7CiB9CiAKLVByb2ZpbGVO
b2RlOjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGV4ZWMsIFByb2ZpbGVOb2RlKiBoZWFkTm9kZSwg
UHJvZmlsZU5vZGUqIG5vZGVUb0NvcHkpCi0gICAgOiBtX2V4ZWMoZXhlYykKLSAgICAsIG1fY2Fs
bElkZW50aWZpZXIobm9kZVRvQ29weS0+Y2FsbElkZW50aWZpZXIoKSkKK1Byb2ZpbGVOb2RlOjpQ
cm9maWxlTm9kZShQcm9maWxlTm9kZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBub2RlVG9Db3B5
KQorICAgIDogbV9jYWxsSWRlbnRpZmllcihub2RlVG9Db3B5LT5jYWxsSWRlbnRpZmllcigpKQog
ICAgICwgbV9oZWFkKGhlYWROb2RlKQogICAgICwgbV9wYXJlbnQobm9kZVRvQ29weS0+cGFyZW50
KCkpCiAgICAgLCBtX25leHRTaWJsaW5nKDApCkBAIC04OSw3ICs4Nyw3IEBAIFByb2ZpbGVOb2Rl
OjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGV4ZWMsIFByb2ZpbGVOb2RlKiBoZWFkTm9kZSwgUHJv
ZmlsZU5vZGUqIG5vCiB7CiB9CiAKLVByb2ZpbGVOb2RlKiBQcm9maWxlTm9kZTo6d2lsbEV4ZWN1
dGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIp
CitQcm9maWxlTm9kZSogUHJvZmlsZU5vZGU6OndpbGxFeGVjdXRlKGNvbnN0IENhbGxJZGVudGlm
aWVyJiBjYWxsSWRlbnRpZmllcikKIHsKICAgICBmb3IgKFN0YWNrSXRlcmF0b3IgY3VycmVudENo
aWxkID0gbV9jaGlsZHJlbi5iZWdpbigpOyBjdXJyZW50Q2hpbGQgIT0gbV9jaGlsZHJlbi5lbmQo
KTsgKytjdXJyZW50Q2hpbGQpIHsKICAgICAgICAgaWYgKCgqY3VycmVudENoaWxkKS0+Y2FsbElk
ZW50aWZpZXIoKSA9PSBjYWxsSWRlbnRpZmllcikgewpAQCAtOTgsNyArOTYsNyBAQCBQcm9maWxl
Tm9kZSogUHJvZmlsZU5vZGU6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2Fs
bElkZW50aWZpZXImIGNhbAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPFByb2ZpbGVO
b2RlPiBuZXdDaGlsZCA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoZXhlYywgY2FsbElkZW50aWZpZXIs
IG1faGVhZCA/IG1faGVhZCA6IHRoaXMsIHRoaXMpOyAvLyBJZiB0aGlzIFByb2ZpbGVOb2RlIGhh
cyBubyBoZWFkIGl0IGlzIHRoZSBoZWFkLgorICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbmV3Q2hp
bGQgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKGNhbGxJZGVudGlmaWVyLCBtX2hlYWQgPyBtX2hlYWQg
OiB0aGlzLCB0aGlzKTsgLy8gSWYgdGhpcyBQcm9maWxlTm9kZSBoYXMgbm8gaGVhZCBpdCBpcyB0
aGUgaGVhZC4KICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkpCiAgICAgICAgIG1fY2hpbGRyZW4u
bGFzdCgpLT5zZXROZXh0U2libGluZyhuZXdDaGlsZC5nZXQoKSk7CiAgICAgbV9jaGlsZHJlbi5h
cHBlbmQobmV3Q2hpbGQucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVOb2RlLmggYi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9k
ZS5oCmluZGV4IGQ0NmFkZWVkYTkwZjg1YWQzZDJlMmE2YTdmNzQxMWZkMzA5MzRmZmYuLmVhZmVl
YTZjYmZjZmYwNWIzMmFjMzFlNTUxOWI3MjkzM2RkZjUwNGUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZU5vZGUuaApAQCAtMzcsNyArMzcsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
ICAgIGNsYXNzIEV4ZWNTdGF0ZTsKICAgICBjbGFzcyBQcm9maWxlTm9kZTsKIAogICAgIHR5cGVk
ZWYgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9kZT4gPjo6Y29uc3RfaXRlcmF0b3IgU3RhY2tJdGVy
YXRvcjsKQEAgLTQ1LDI0ICs0NCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFBy
b2ZpbGVOb2RlIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZU5vZGU+IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2Rl
KiBoZWFkTm9kZSwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVu
dGlmaWVyLCBQcm9maWxlTm9kZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVOb2RlKGV4
ZWMsIGNhbGxJZGVudGlmaWVyLCBoZWFkTm9kZSwgcGFyZW50Tm9kZSkpOworICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsSWRlbnRpZmllciwgaGVhZE5vZGUs
IHBhcmVudE5vZGUpKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9m
aWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvZmlsZU5vZGUqIGhlYWROb2RlLCBQ
cm9maWxlTm9kZSogbm9kZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+
IGNyZWF0ZShQcm9maWxlTm9kZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBub2RlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVOb2RlKGV4ZWMsIGhl
YWROb2RlLCBub2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVO
b2RlKGhlYWROb2RlLCBub2RlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIG9wZXJhdG9y
PT0oUHJvZmlsZU5vZGUqIG5vZGUpIHsgcmV0dXJuIG1fZXhlYyA9PSBub2RlLT5tX2V4ZWMgJiYg
bV9jYWxsSWRlbnRpZmllciA9PSBub2RlLT5jYWxsSWRlbnRpZmllcigpOyB9CisgICAgICAgIGJv
b2wgb3BlcmF0b3I9PShQcm9maWxlTm9kZSogbm9kZSkgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmll
ciA9PSBub2RlLT5jYWxsSWRlbnRpZmllcigpOyB9CiAKLSAgICAgICAgUHJvZmlsZU5vZGUqIHdp
bGxFeGVjdXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKKyAgICAg
ICAgUHJvZmlsZU5vZGUqIHdpbGxFeGVjdXRlKGNvbnN0IENhbGxJZGVudGlmaWVyJik7CiAgICAg
ICAgIFByb2ZpbGVOb2RlKiBkaWRFeGVjdXRlKCk7CiAKICAgICAgICAgdm9pZCBzdG9wUHJvZmls
aW5nKCk7CiAKICAgICAgICAgLy8gQ2FsbElkZW50aWZpZXIgbWVtYmVycwotICAgICAgICBjb25z
dCBFeGVjU3RhdGUqIGV4ZWMoKSBjb25zdCB7IHJldHVybiBtX2V4ZWM7IH0KICAgICAgICAgY29u
c3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxs
SWRlbnRpZmllcjsgfQogICAgICAgICBjb25zdCBVU3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBjb25z
dCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLm1fbmFtZTsgfQogICAgICAgICBjb25zdCBVU3Ry
aW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLm1fdXJsOyB9CkBAIC0x
MzAsOCArMTI4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIFByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2FsbElkZW50aWZpZXIm
LCBQcm9maWxlTm9kZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKTsKLSAgICAg
ICAgUHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBleGVjLCBQcm9maWxlTm9kZSogaGVhZE5vZGUsIFBy
b2ZpbGVOb2RlKiBub2RlVG9Db3B5KTsKKyAgICAgICAgUHJvZmlsZU5vZGUoY29uc3QgQ2FsbElk
ZW50aWZpZXImLCBQcm9maWxlTm9kZSogaGVhZE5vZGUsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2Rl
KTsKKyAgICAgICAgUHJvZmlsZU5vZGUoUHJvZmlsZU5vZGUqIGhlYWROb2RlLCBQcm9maWxlTm9k
ZSogbm9kZVRvQ29weSk7CiAKICAgICAgICAgdm9pZCBzdGFydFRpbWVyKCk7CiAgICAgICAgIHZv
aWQgcmVzZXRDaGlsZHJlbnNTaWJsaW5ncygpOwpAQCAtMTQ5LDcgKzE0Nyw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgZnVuY3Rpb25OYW1lRGVzY2VuZGlu
Z0NvbXBhcmF0b3IoY29uc3QgUmVmUHRyPFByb2ZpbGVOb2RlPiYgYSwgY29uc3QgUmVmUHRyPFBy
b2ZpbGVOb2RlPiYgYikgeyByZXR1cm4gYS0+ZnVuY3Rpb25OYW1lKCkgPiBiLT5mdW5jdGlvbk5h
bWUoKTsgfQogICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgZnVuY3Rpb25OYW1lQXNjZW5kaW5n
Q29tcGFyYXRvcihjb25zdCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBhLCBjb25zdCBSZWZQdHI8UHJv
ZmlsZU5vZGU+JiBiKSB7IHJldHVybiBhLT5mdW5jdGlvbk5hbWUoKSA8IGItPmZ1bmN0aW9uTmFt
ZSgpOyB9CiAKLSAgICAgICAgRXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgICAgIENhbGxJZGVudGlm
aWVyIG1fY2FsbElkZW50aWZpZXI7CiAgICAgICAgIFByb2ZpbGVOb2RlKiBtX2hlYWQ7CiAgICAg
ICAgIFByb2ZpbGVOb2RlKiBtX3BhcmVudDsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyLmNwcCBiL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyLmNw
cAppbmRleCAwOGY2N2NiYWRhNWY0YWRkYWNmYzk0MWU1YTRmYzBhY2ZhYjhiMTE5Li43OGZlMmY1
NjYzMTE3ZWFhM2Y4ODI1YjU2N2UyNDQxZmM5YjE4MDExIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXIuY3BwCkBAIC05OSw1MSArOTksNDIgQEAgUGFzc1JlZlB0cjxQcm9maWxlPiBQcm9m
aWxlcjo6c3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHRpdGwK
ICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRnVuY3Rpb25U
b1Byb2ZpbGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2Vu
ZXJhdG9yPiA+JiBwcm9maWxlcywgUHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIHVuc2lnbmVkIGN1
cnJlbnRQcm9maWxlVGFyZ2V0R3JvdXApCitzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hGdW5j
dGlvblRvUHJvZmlsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiA+JiBw
cm9maWxlcywgUHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25z
dCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIHVuc2lnbmVkIGN1cnJlbnRQcm9maWxl
VGFyZ2V0R3JvdXApCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9maWxlcy5zaXpl
KCk7ICsraSkgewogICAgICAgICBpZiAocHJvZmlsZXNbaV0tPnByb2ZpbGVHcm91cCgpID09IGN1
cnJlbnRQcm9maWxlVGFyZ2V0R3JvdXAgfHwgIXByb2ZpbGVzW2ldLT5vcmlnaW5hdGluZ0dsb2Jh
bEV4ZWMoKSkKLSAgICAgICAgICAgIChwcm9maWxlc1tpXS5nZXQoKS0+KmZ1bmN0aW9uKShleGVj
LCBjYWxsSWRlbnRpZmllcik7CisgICAgICAgICAgICAocHJvZmlsZXNbaV0uZ2V0KCktPipmdW5j
dGlvbikoY2FsbElkZW50aWZpZXIpOwogICAgIH0KIH0KIAotdm9pZCBQcm9maWxlcjo6aGFzQ2Fs
bGVkKEV4ZWNTdGF0ZSogZXhlYykKK3ZvaWQgUHJvZmlsZXI6OndpbGxFeGVjdXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoIW1fY3VycmVudFByb2Zp
bGVzLmlzRW1wdHkoKSk7CiAKLSAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gZXhlYy0+Y2FsbGVlKCk7
Ci0gICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMoZXhlYywgbV9jdXJyZW50UHJvZmlsZXMs
ICZQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSwgY3JlYXRlQ2FsbElkZW50aWZpZXIoZXhl
YywgZnVuY3Rpb24sICIiLCAwKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxl
R3JvdXAoKSk7CisgICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMobV9jdXJyZW50UHJvZmls
ZXMsICZQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSwgY3JlYXRlQ2FsbElkZW50aWZpZXIo
ZXhlYywgZnVuY3Rpb24sICIiLCAwKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9m
aWxlR3JvdXAoKSk7CiB9CiAKLXZvaWQgUHJvZmlsZXI6OndpbGxFdmFsdWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlcikK
K3ZvaWQgUHJvZmlsZXI6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKQogewogICAgIEFTU0VSVCghbV9j
dXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKIAogICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVu
dGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoZXhlYywgSlNWYWx1ZSgpLCBzb3VyY2VVUkws
IHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyhl
eGVjLCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlLCBj
YWxsSWRlbnRpZmllciwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAo
KSk7CisgICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMobV9jdXJyZW50UHJvZmlsZXMsICZQ
cm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSwgY2FsbElkZW50aWZpZXIsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwogfQogCi12b2lkIFByb2ZpbGVyOjp3
aWxsUmV0dXJuKEV4ZWNTdGF0ZSogZXhlYykKK3ZvaWQgUHJvZmlsZXI6OmRpZEV4ZWN1dGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVCghbV9jdXJyZW50
UHJvZmlsZXMuaXNFbXB0eSgpKTsKIAotICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBleGVjLT5jYWxs
ZWUoKTsKLSAgICBkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyhleGVjLCBtX2N1cnJlbnRQcm9m
aWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIGNyZWF0ZUNhbGxJZGVudGlmaWVy
KGV4ZWMsIGZ1bmN0aW9uLCAiIiwgMCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJv
ZmlsZUdyb3VwKCkpOworICAgIGRpc3BhdGNoRnVuY3Rpb25Ub1Byb2ZpbGVzKG1fY3VycmVudFBy
b2ZpbGVzLCAmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwgY3JlYXRlQ2FsbElkZW50aWZp
ZXIoZXhlYywgZnVuY3Rpb24sICIiLCAwKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5w
cm9maWxlR3JvdXAoKSk7CiB9CiAKLXZvaWQgUHJvZmlsZXI6OmRpZEV2YWx1YXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
KQordm9pZCBQcm9maWxlcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJp
bmcmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlcikKIHsKICAgICBBU1NFUlQoIW1f
Y3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7CiAKLSAgICBkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9m
aWxlcyhleGVjLCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1
dGUsIGNyZWF0ZUNhbGxJZGVudGlmaWVyKGV4ZWMsIEpTVmFsdWUoKSwgc291cmNlVVJMLCBzdGFy
dGluZ0xpbmVOdW1iZXIpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91
cCgpKTsKLX0KLQotdm9pZCBQcm9maWxlcjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogZXhl
YykKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBk
aXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyhleGVjLCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2Zp
bGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZCwgY3JlYXRlQ2FsbElkZW50aWZpZXIoZXhlYywg
SlNWYWx1ZSgpLCAiIiwgMCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdy
b3VwKCkpOworICAgIGRpc3BhdGNoRnVuY3Rpb25Ub1Byb2ZpbGVzKG1fY3VycmVudFByb2ZpbGVz
LCAmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwgY3JlYXRlQ2FsbElkZW50aWZpZXIoZXhl
YywgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciksIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwogfQogCiBDYWxsSWRlbnRpZmllciBQ
cm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZpZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGZ1
bmN0aW9uVmFsdWUsIGNvbnN0IFVTdHJpbmcmIGRlZmF1bHRTb3VyY2VVUkwsIGludCBkZWZhdWx0
TGluZU51bWJlcikKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
LmggYi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5oCmluZGV4IGE1OTJhYTEzODk5
MGU0OTRkZmFkYmFjMjZlOGM0YWM0NzBhNGM4ZWIuLjRiOGI0YTAxOWYwZDBjMDU3MGM3NGUzYjRi
MDdiNzNlNDI5ZjBhNGIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXIuaApAQCAtNTcsMTQg
KzU3LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHN0YXJ0UHJvZmlsaW5nKEV4
ZWNTdGF0ZSosIGNvbnN0IFVTdHJpbmcmIHRpdGxlKTsKICAgICAgICAgUGFzc1JlZlB0cjxQcm9m
aWxlPiBzdG9wUHJvZmlsaW5nKEV4ZWNTdGF0ZSosIGNvbnN0IFVTdHJpbmcmIHRpdGxlKTsKIAot
ICAgICAgICAvLyBDYWxsZWQgZm9yIHByb2dyYW0gY29kZSBhbmQgZXZhbC4KLSAgICAgICAgdm9p
ZCB3aWxsRXZhbHVhdGUoRXhlY1N0YXRlKiwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQg
c3RhcnRpbmdMaW5lTnVtYmVyKTsKLSAgICAgICAgdm9pZCBkaWRFdmFsdWF0ZShFeGVjU3RhdGUq
LCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIpOwotCi0g
ICAgICAgIHZvaWQgaGFzQ2FsbGVkKEV4ZWNTdGF0ZSopOwotICAgICAgICB2b2lkIHdpbGxSZXR1
cm4oRXhlY1N0YXRlKik7Ci0KLSAgICAgICAgdm9pZCBleGNlcHRpb25VbndpbmQoRXhlY1N0YXRl
Kik7CisgICAgICAgIHZvaWQgd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBmdW5jdGlv
bik7CisgICAgICAgIHZvaWQgd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiwgY29uc3QgVVN0cmluZyYg
c291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKTsKKyAgICAgICAgdm9pZCBkaWRFeGVj
dXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgZnVuY3Rpb24pOworICAgICAgICB2b2lkIGRpZEV4ZWN1
dGUoRXhlY1N0YXRlKiwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5l
TnVtYmVyKTsKIAogICAgICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+
ID4mIGN1cnJlbnRQcm9maWxlcygpIHsgcmV0dXJuIG1fY3VycmVudFByb2ZpbGVzOyB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>