<?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>141957</bug_id>
          
          <creation_ts>2015-02-23 23:22:21 -0800</creation_ts>
          <short_desc>REGRESSION(r180547): Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).</short_desc>
          <delta_ts>2015-02-23 23:27:46 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141640</blocked>
    
    <blocked>141859</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1071554</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 23:22:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/180547 broke the build:
Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071557</commentid>
    <comment_count>1</comment_count>
      <attachid>247206</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 23:23:03 -0800</bug_when>
    <thetext>Created attachment 247206
ROLLOUT of r180547

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

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071559</commentid>
    <comment_count>2</comment_count>
      <attachid>247206</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 23:27:42 -0800</bug_when>
    <thetext>Comment on attachment 247206
ROLLOUT of r180547

Clearing flags on attachment: 247206

Committed r180551: &lt;http://trac.webkit.org/changeset/180551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071560</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 23:27:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247206</attachid>
            <date>2015-02-23 23:23:03 -0800</date>
            <delta_ts>2015-02-23 23:27:42 -0800</delta_ts>
            <desc>ROLLOUT of r180547</desc>
            <filename>bug-141957-20150223232251.patch</filename>
            <type>text/plain</type>
            <size>139918</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OWY1YzI1MGQ1NDBkMjJhMDgwYjFmZTViODE3ZTMxMzQ3MzcyNjNhLi4yNjY1Mzg2YjRjOWE1NTk4
MDJkMmZhZTkyZWM1MTQ4OGU2MTY1Njk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wMi0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MDU0NyBhbmQgcjE4
MDU1MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MTk1NworCisgICAgICAgIEJyb2tlIDEwIFdpbmRvd3MgdGVzdHMuIChSZXF1ZXN0ZWQgYnkgYmZ1
bGdoYW1fIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAg
ICAgICAgIlJFR1JFU1NJT04ocjE3OTQyOSk6IENhbid0IHR5cGUgY29tbWVudHMgaW4gRmFjZWJv
b2siCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4
NTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNTQ3CisKKyAg
ICAgICAgIkNvbnN0cnVjdG9yIHJldHVybmluZyBudWxsIHNob3VsZCBjb25zdHJ1Y3QgYW4gb2Jq
ZWN0IGluc3RlYWQKKyAgICAgICAgb2YgbnVsbCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTY0MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xODA1NTAKKwogMjAxNS0wMi0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBDb25zdHJ1Y3RvciByZXR1cm5pbmcgbnVsbCBz
aG91bGQgY29uc3RydWN0IGFuIG9iamVjdCBpbnN0ZWFkIG9mIG51bGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDg4ZGRiY2U0Njk2ODVkZTI0ZTNlMDdjMzNhYzEzZGU5ZDBjM2EzLi41MGNmN2I4MDg1ZjEwOTA1
ZjU4NjVmNzA4MTg3ZmU3NmMwYjM0OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTUtMDItMjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODA1NDcgYW5kIHIxODA1NTAuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NTcKKworICAgICAg
ICBCcm9rZSAxMCBXaW5kb3dzIHRlc3RzLiAoUmVxdWVzdGVkIGJ5IGJmdWxnaGFtXyBvbiAjd2Vi
a2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJSRUdSRVNT
SU9OKHIxNzk0MjkpOiBDYW4ndCB0eXBlIGNvbW1lbnRzIGluIEZhY2Vib29rIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxODU5CisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4MDU0NworCisgICAgICAgICJDb25zdHJ1
Y3RvciByZXR1cm5pbmcgbnVsbCBzaG91bGQgY29uc3RydWN0IGFuIG9iamVjdCBpbnN0ZWFkCisg
ICAgICAgIG9mIG51bGwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDE2NDAKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTgwNTUwCisKIDIwMTUtMDItMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRGlzYWJsZSBmb250IGxvYWRpbmcgZXZlbnRzIHVudGlsIG91ciBpbXBsZW1lbnRh
dGlvbiBnZXRzIHVwZGF0ZWQgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVjCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNmQ2NmYwYjY4ZmU2MWEwMTUyYmIzMmRiMjkzMDE5NWZhNWQzZDYwNi4uMjZlODYzMmM3
OGVhNmY2ZjcyNmY1NGQ1ZTlkOGI3NjEzNzk3NDk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDE1LTAyLTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgwNTQ3IGFuZCByMTgw
NTUwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQx
OTU3CisKKyAgICAgICAgQnJva2UgMTAgV2luZG93cyB0ZXN0cy4gKFJlcXVlc3RlZCBieSBiZnVs
Z2hhbV8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAg
ICAgICAiUkVHUkVTU0lPTihyMTc5NDI5KTogQ2FuJ3QgdHlwZSBjb21tZW50cyBpbiBGYWNlYm9v
ayIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTg1
OQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODA1NDcKKworICAg
ICAgICAiQ29uc3RydWN0b3IgcmV0dXJuaW5nIG51bGwgc2hvdWxkIGNvbnN0cnVjdCBhbiBvYmpl
Y3QgaW5zdGVhZAorICAgICAgICBvZiBudWxsIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNjQwCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzE4MDU1MAorCiAyMDE1LTAyLTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIERpc2FibGUgZm9udCBsb2FkaW5nIGV2ZW50cyB1bnRpbCBv
dXIgaW1wbGVtZW50YXRpb24gZ2V0cyB1cGRhdGVkIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlYwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDMzYmM0Y2YwODJkMzg5M2EwY2Y2OTU0YjIxNDE0NjNkZTI0YWZjMzkuLmMy
N2EwZjEzMmY1ZjI0Y2JmMTIwNjJhZDczNzAzNGQxNWMzMTRiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wMi0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MDU0NyBhbmQgcjE4
MDU1MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MTk1NworCisgICAgICAgIEJyb2tlIDEwIFdpbmRvd3MgdGVzdHMuIChSZXF1ZXN0ZWQgYnkgYmZ1
bGdoYW1fIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAg
ICAgICAgIlJFR1JFU1NJT04ocjE3OTQyOSk6IENhbid0IHR5cGUgY29tbWVudHMgaW4gRmFjZWJv
b2siCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4
NTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNTQ3CisKKyAg
ICAgICAgIkNvbnN0cnVjdG9yIHJldHVybmluZyBudWxsIHNob3VsZCBjb25zdHJ1Y3QgYW4gb2Jq
ZWN0IGluc3RlYWQKKyAgICAgICAgb2YgbnVsbCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTY0MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xODA1NTAKKwogMjAxNS0wMi0yMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxlIGZvbnQgbG9hZGluZyBldmVudHMgdW50aWwg
b3VyIGltcGxlbWVudGF0aW9uIGdldHMgdXBkYXRlZCB0byBtYXRjaCB0aGUgbGF0ZXN0IHNwZWMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCBiZmE3MmE5
MGNlNjU1NzgyZjI4N2EzZjZkZWRiNDFjZjM0NTc4OWYzLi4yNmJlMGVlMjc2ZTBlZTVjODZlNjEw
OTk5ZjJkNDc2YjBkZDgwNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLm9yZGVyCkBAIC02MzcsNiArNjM3LDcgQEAgX19aTjNKU0MxNE1hY2hpbmVUaHJlYWRzMjlt
YWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkc0V2CiBfX1pOM0pTQzEyR2xvYmFsSlNMb2NrRDFF
dgogX0pTR2xvYmFsQ29udGV4dENyZWF0ZUluR3JvdXAKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVj
dEMxRVJOU18yVk1FUE5TXzlTdHJ1Y3R1cmVFUEtOU18yM0dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
RQorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjhqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVk
RVBLUzBfCiBfSlNHbG9iYWxDb250ZXh0UmV0YWluCiBfSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJp
bmcKIF9KU0V2YWx1YXRlU2NyaXB0CkBAIC0xMzQ4LDYgKzEzNDksNyBAQCBfX1pOM0pTQzE3Qnl0
ZWNvZGVHZW5lcmF0b3IyMGVtaXROZXh0UHJvcGVydHlOYW1lRVBOU18xMFJlZ2lzdGVySURFUzJf
UzJfUzJfUzJfUAogX19aTjNKU0MxMVBvc3RmaXhOb2RlMTJlbWl0Qnl0ZWNvZGVFUk5TXzE3Qnl0
ZWNvZGVHZW5lcmF0b3JFUE5TXzEwUmVnaXN0ZXJJREUKIF9fWk4zSlNDMTFQb3N0Zml4Tm9kZTEx
ZW1pdFJlc29sdmVFUk5TXzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TXzEwUmVnaXN0ZXJJREUKIF9f
Wk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjdlbWl0SW5jRVBOU18xMFJlZ2lzdGVySURFCitfX1pO
M0pTQzE0anNJc09iamVjdFR5cGVFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pT
QzZKU0NlbGwxMWdldENhbGxEYXRhRVBTMF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M4SlNPYmpl
Y3QxNmdldFByb3BlcnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFt
ZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blBy
b3BlcnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQpAQCAtMTY2NCw3ICsxNjY2LDcgQEAgX2N0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMKIF9fWk4zSlNDTDhnZXRCeVZhbEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1
ZUVTMl9OU18xNlJldHVybkFkZHJlc3NQdHJFCiBfY3RpX29wX3N0cmljdGVxCiBfY3RpX29wX2p0
cnVlCi1fY3RpX29wX2lzX29iamVjdF9vcl9udWxsCitfY3RpX29wX2lzX29iamVjdAogX19aTjNK
U0M4SlNTdHJpbmcxMnRvVGhpc09iamVjdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUUKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3RDMUVSTlNfMlZNRVBOU185U3RydWN0dXJlRQogX19aTkszSlND
NkpTQ2VsbDExdG9QcmltaXRpdmVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRp
dmVUeXBlRQpAQCAtMjk2Miw2ICsyOTY0LDcgQEAgX19aTjNKU0M2UGFyc2VySU5TXzVMZXhlckl0
RUVFMTlwYXJzZUJyZWFrU3RhdGVtZW50SU5TXzEwQVNUQnVpbGRlckVFRU5UXzlTdGF0ZW0KIF9f
Wk4zV1RGNlZlY3RvcklQTjNKU0M4SlNPYmplY3RFTG00RU5TXzE1Q3Jhc2hPbk92ZXJmbG93RUUx
NXJlc2VydmVDYXBhY2l0eUVtCiBfX1pOM1dURjE1QmluYXJ5U2VtYXBob3JlNHdhaXRFZAogX19a
TjNXVEYxNUJpbmFyeVNlbWFwaG9yZTZzaWduYWxFdgorX0pTVmFsdWVJc09iamVjdAogX19aTjNK
U0NMMTlhcnJheVByb3RvRnVuY1NoaWZ0RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0M1c2hpZnRJ
TE5TXzdKU0FycmF5MTRTaGlmdENvdW50TW9kZUUwRUVFdlBOU185RXhlY1N0YXRlRVBOU184SlNP
YmplY3RFampqagogX19aTjNKU0M3SlNBcnJheTI2c2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2VF
ampQTlNfMTJBcnJheVN0b3JhZ2VFCkBAIC0zMzg4LDYgKzMzOTEsNyBAQCBfb3BlcmF0aW9uRW5z
dXJlQ29udGlndW91cwogX19aTjNKU0M4SlNPYmplY3QyMGVuc3VyZUNvbnRpZ3VvdXNTbG93RVJO
U18yVk1FCiBfX1pOM0pTQzhKU09iamVjdDIwZW5zdXJlQ29udGlndW91c1Nsb3dFUk5TXzJWTUVO
UzBfMjJEb3VibGVUb0NvbnRpZ3VvdXNNb2RlRQogX29wZXJhdGlvbk1ha2VSb3BlMworX29wZXJh
dGlvbklzT2JqZWN0CiBfX1pOM0pTQzNERkcxMnNsb3dQYXRoQ2FsbElOU18yMkFic3RyYWN0TWFj
cm9Bc3NlbWJsZXJJTlNfMTJYODZBc3NlbWJsZXJFRTRKdW1wRVBGeFBOU185RXhlY1N0YXRlRXhQ
TlNfN0pTQXJyYXlFRU5TMF8xMU5vUmVzdWx0VGFnRU5TXzEyWDg2UmVnaXN0ZXJzMTBSZWdpc3Rl
cklERVNFX1NFX0VFTjNXVEYxMFBhc3NPd25QdHJJTlMwXzE3U2xvd1BhdGhHZW5lcmF0b3JFRUVU
X1BOUzBfMTRTcGVjdWxhdGl2ZUpJVEVUMF9UMV9UMl9UM19UNF9OUzBfMThTcGlsbFJlZ2lzdGVy
c01vZGVFCiBfX1pOM0pTQzNERkcxNFNwZWN1bGF0aXZlSklUMTNjYWxsT3BlcmF0aW9uRVBGeFBO
U185RXhlY1N0YXRlRXhQTlNfN0pTQXJyYXlFRU5TXzEyWDg2UmVnaXN0ZXJzMTBSZWdpc3RlcklE
RVM5X1M5XwogX29wZXJhdGlvbkFycmF5UHVzaApAQCAtNDg5NCw3ICs0ODk4LDcgQEAgX2xsaW50
X3Nsb3dfcGF0aF9iaXR4b3IKIF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlCiBf
bGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2YKIF9sbGludF9zbG93X3BhdGhfdHlwZW9mCi1fbGxp
bnRfc2xvd19wYXRoX2lzX29iamVjdF9vcl9udWxsCitfbGxpbnRfc2xvd19wYXRoX2lzX29iamVj
dAogX2xsaW50X3Nsb3dfcGF0aF9pc19mdW5jdGlvbgogX2xsaW50X3Nsb3dfcGF0aF9pbgogX2xs
aW50X3Nsb3dfcGF0aF9yZXNvbHZlCkBAIC01MDMyLDcgKzUwMzYsNyBAQCBfbGxpbnRfb3BfZ3Jl
YXRlcgogX2xsaW50X29wX2dyZWF0ZXJlcQogX2xsaW50X29wX21vZAogX2xsaW50X29wX3R5cGVv
ZgotX2xsaW50X29wX2lzX29iamVjdF9vcl9udWxsCitfbGxpbnRfb3BfaXNfb2JqZWN0CiBfbGxp
bnRfb3BfaXNfZnVuY3Rpb24KIF9sbGludF9vcF9pbgogX2xsaW50X29wX3B1dF90b19iYXNlX3Zh
cmlhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCA3M2UxNTQ3
MzRmOWQ0YTk3MzYwZmVmZGNmNGIwNjcxMWU4NGM4MDE3Li40MWIyYmQxNzlkNDBiZDA0YWI4MGI1
YWQ3YzAzZDdiNTYxMjI5NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oKQEAgLTE2MTEsNyArMTYxMSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXFJlZ0V4cE9iamVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxSZWdFeHBQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcUmVqZWN0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFJ1bnRp
bWVGbGFncy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxTYW1wbGlu
Z0NvdW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0Q29u
c3RydWN0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0SXRl
cmF0b3JDb25zdHJ1Y3Rvci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGZmZjcyMGM4MWQwMjY0NGNlZDQ3NWYxMGRjZmJjMGQw
Y2IyNmY5OTMuLjgwNDhhYmU0NzE2YWE3MDM2MGY1MTMyODU1OTk3NGYxMzI1OGU1MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTI4
NjIsOSArMjg2Miw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFJlamVj
dC5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxSdW50aW1lRmxhZ3MuaCI+Ci0gICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2FtcGxpbmdDb3VudGVyLmgiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGNhZDMzMzNhMWY3ZDQ2ZTI2MTdkMmZkODA1MmEyZGViYjcxYjY3MjYuLjJj
MDFkNmYxMDI1MGI1NWIzZjljNjUzZGMwNDAyMDAyZDhlZWI0ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC05NDksNyArOTQ5LDYgQEAKIAkJNzA1QjQxQjAxQTZFNTAxRTAwNzE2
NzU3IC8qIFN5bWJvbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzA1QjQxQTgxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9iamVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcwNUI0MUIx
MUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzA1QjQxQTkxQTZFNTAxRTAwNzE2NzU3IC8q
IFN5bWJvbFByb3RvdHlwZS5jcHAgKi87IH07CiAJCTcwNUI0MUIyMUE2RTUwMUUwMDcxNjc1NyAv
KiBTeW1ib2xQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcwNUI0MUFBMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xQcm90b3R5cGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MEIwQTlE
MTFBOUI2NjQ2MDAwMTMwNkEgLyogUnVudGltZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEIwQTlEMDFBOUI2NjIwMDAwMTMwNkEgLyogUnVu
dGltZUZsYWdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENEMDE4
NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJN0MwMDhD
RDMxODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDExODZGOEE5MzAwOTU1QzI0
IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VE
ZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwICovOyB9
OwpAQCAtMjYyOSw3ICsyNjI4LDYgQEAKIAkJNzA1QjQxQTgxQTZFNTAxRTAwNzE2NzU3IC8qIFN5
bWJvbE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xPYmpl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzA1QjQxQTkxQTZFNTAxRTAwNzE2
NzU3IC8qIFN5bWJvbFByb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTeW1ib2xQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MDVCNDFBQTFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sUHJvdG90eXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bWJvbFByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3MEIwQTlEMDFBOUI2NjIwMDAwMTMwNkEgLyogUnVudGltZUZsYWdz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bnRpbWVGbGFncy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzAwOENEMDE4NkY4QTkzMDA5NTVDMjQgLyogSlNQ
cm9taXNlRnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVu
ZGluZyA9IDA7IHBhdGggPSBKU1Byb21pc2VGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNw
cDsgfTsKIAkJN0MwMDhDRDExODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb21pc2VGdW5jdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8q
IEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUHJvbWlzZURlZmVycmVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ1MzgsNyArNDUzNiw2IEBACiAJCQkJQkNEMjAyQzAwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4
cFByb3RvdHlwZS5oICovLAogCQkJCTBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3Rl
clByZXNlcnZhdGlvbk1vZGUuaCAqLywKIAkJCQkwRkI3RjM5MTE1RUQ4RTM4MDBGMTY3QjIgLyog
UmVqZWN0LmggKi8sCi0JCQkJNzBCMEE5RDAxQTlCNjYyMDAwMDEzMDZBIC8qIFJ1bnRpbWVGbGFn
cy5oICovLAogCQkJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIu
Y3BwICovLAogCQkJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIu
aCAqLywKIAkJCQlBNzI5OURBMzE3RDEyODU4MDA1RjVGRjkgLyogU2V0Q29uc3RydWN0b3IuY3Bw
ICovLApAQCAtNjI3OCw3ICs2Mjc1LDYgQEAKIAkJCQkwRkY0Mjc0NDE1OEVCRTkxMDA0Q0I5RkYg
LyogdWRpczg2X2lucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY0Mjc0ODE1OEVCRTkxMDA0
Q0I5RkYgLyogdWRpczg2X3N5bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3NDkxNThFQkU5
MTAwNENCOUZGIC8qIHVkaXM4Nl90eXBlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzBCMEE5RDEx
QTlCNjY0NjAwMDEzMDZBIC8qIFJ1bnRpbWVGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdF
NUFCMzkxNzk5RTRCMjAwRDI4MzNEIC8qIFVEaXM4NkRpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdBOEFGNDExN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQxNkFycmF5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkU4MzQxODFBNkVGOTdCMDBEMDQ4NDcgLyogUG9seW1vcnBoaWNDYWxs
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDgwNGU4Y2RmYTU1NWRhYWUwZmI2ZWZi
ZDQyYTE4NGU1ZTZhZTc5YzAuLjVjMWYwZDg3NjhjNWVmOTk4ZWQwZGJlZTI0MDdiZjI4MzBmZjhh
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
Lmpzb24KQEAgLTUzLDcgKzUzLDYgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX251
bWJlciIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfc3Ry
aW5nIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19vYmpl
Y3QiLCAibGVuZ3RoIiA6IDMgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX29iamVj
dF9vcl9udWxsIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9p
c19mdW5jdGlvbiIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
aW4iLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luaXRfZ2xv
YmFsX2NvbnN0X25vcCIsICJsZW5ndGgiIDogNSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA5MmU1OGNhMzZlYTc0OTliZGRjNGM5
OTc5MTgwZDY2ZDI5NGU0NTJlLi43OGZlYjZjMjRkOWQxMTZiZDNkYWNhZTkxZDZmZjM3NDY2YjUy
ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaApAQCAtMTMzLDcgKzEzMyw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCgKICAgICBjYXNlIG9wX2lzX251bWJlcjoKICAgICBjYXNlIG9wX2lzX3N0cmluZzoKICAgICBj
YXNlIG9wX2lzX29iamVjdDoKLSAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNh
c2Ugb3BfaXNfZnVuY3Rpb246CiAgICAgY2FzZSBvcF90b19udW1iZXI6CiAgICAgY2FzZSBvcF9u
ZWdhdGU6CkBAIC0zMzMsNyArMzMyLDYgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zm
c2V0KENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwKICAgICBj
YXNlIG9wX2lzX251bWJlcjoKICAgICBjYXNlIG9wX2lzX3N0cmluZzoKICAgICBjYXNlIG9wX2lz
X29iamVjdDoKLSAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNhc2Ugb3BfaXNf
ZnVuY3Rpb246CiAgICAgY2FzZSBvcF9pbjoKICAgICBjYXNlIG9wX3RvX251bWJlcjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNDM4ZGQzYzVj
YWUwOTVjYzFjNjk0YzBlMGEzNTc0NDk1MmQ3NDdmMC4uZWRkNDBhNTc5NTZiMjk2ZWE5NmQ3Mjcx
NGE1YTc0Mzk5MmNiMTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTEwMDgsMTAgKzEwMDgsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKAogICAgICAgICAgICAgcHJpbnRVbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0
LCAiaXNfb2JqZWN0Iik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBj
YXNlIG9wX2lzX29iamVjdF9vcl9udWxsOiB7Ci0gICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0
LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpc19vYmplY3Rfb3JfbnVsbCIpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjogewogICAgICAg
ICAgICAgcHJpbnRVbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAiaXNfZnVuY3Rpb24i
KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1B1dEJ5SWRTdGF0dXMuY3BwCmluZGV4IGI3ZmU1YTAwNDZlM2RlN2FmNDQxY2Y0NmQ5ZWQ4
ZDdlNTk4NjE3NDEuLjRhODJiYTdjNGY3ZmRiYjcwNzIxODZkZjZjYjlmYjBiZDA2YjU2NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAK
QEAgLTM2MCw3ICszNjAsNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RydQogCiAgICAgICAgIC8v
IElmIHRoZSBzdHJ1Y3R1cmUgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIHRoYXQgaXNuJ3QgYW4g
b2JqZWN0LCB0aGVuIGdpdmUgdXAsIHNpbmNlCiAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8g
YmUgYWRkaW5nIHByb3BlcnRpZXMgdG8gc3RyaW5ncy4KLSAgICAgICAgaWYgKCFzdHJ1Y3R1cmUt
PnR5cGVJbmZvKCkuaXNPYmplY3QoKSkKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8o
KS50eXBlKCkgPT0gU3RyaW5nVHlwZSkKICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVz
KFRha2VzU2xvd1BhdGgpOwogICAgIAogICAgICAgICBSZWZQdHI8SW50ZW5kZWRTdHJ1Y3R1cmVD
aGFpbj4gY2hhaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGFiZGRmYWM5MzM3YzFkYmQ2YzNmNmY0
NzQ2OGVjMjc2OGQyNTRhMDguLmU0NzcwZmUxNmQ2MTQ3ZDVhMDY5NTRjN2M1NmJlYjE1YWNjMWI4
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEVxdWFsaXR5T3AoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lz
dGVySUQqIGRzdAogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHZhbHVlID09ICJvYmpl
Y3QiKSB7CiAgICAgICAgICAgICAgICAgcmV3aW5kVW5hcnlPcCgpOwotICAgICAgICAgICAgICAg
IGVtaXRPcGNvZGUob3BfaXNfb2JqZWN0X29yX251bGwpOworICAgICAgICAgICAgICAgIGVtaXRP
cGNvZGUob3BfaXNfb2JqZWN0KTsKICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoZHN0LT5pbmRleCgpKTsKICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
c3JjSW5kZXgpOwogICAgICAgICAgICAgICAgIHJldHVybiBkc3Q7CkBAIC0xOTQ1LDYgKzE5NDUs
MTUgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXR1cm4oUmVnaXN0ZXJJ
RCogc3JjKQogICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoaXNPYmplY3RSZWdpc3Rlci0+
aW5kZXgoKSk7CiAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChpc09iamVjdExhYmVsLT5i
aW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKIAorICAgICAgICBlbWl0T3Bjb2Rl
KG9wX2lzX2Z1bmN0aW9uKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGlzT2JqZWN0
UmVnaXN0ZXItPmluZGV4KCkpOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjLT5p
bmRleCgpKTsKKworICAgICAgICBiZWdpbiA9IGluc3RydWN0aW9ucygpLnNpemUoKTsKKyAgICAg
ICAgZW1pdE9wY29kZShvcF9qdHJ1ZSk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChp
c09iamVjdFJlZ2lzdGVyLT5pbmRleCgpKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KGlzT2JqZWN0TGFiZWwtPmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOworCiAg
ICAgICAgIGVtaXRVbmFyeU5vRHN0T3Aob3BfcmV0LCAmbV90aGlzUmVnaXN0ZXIpOwogCiAgICAg
ICAgIGVtaXRMYWJlbChpc09iamVjdExhYmVsLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRl
eCBlMjQ2ZDc3NmMwMDA5ZmJkOTI2ZGE2MzgwNDgyZDM4OTk2NjE4YmRkLi4wMTA4NzZiMGNhOWIx
NGI0M2NkYzZiN2QxMDdlM2UzNmFiOTM5YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC04MDAs
NyArODAwLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICBjYXNlIElzTnVtYmVyOgog
ICAgIGNhc2UgSXNTdHJpbmc6CiAgICAgY2FzZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0
T3JOdWxsOgogICAgIGNhc2UgSXNGdW5jdGlvbjogewogICAgICAgICBKU1ZhbHVlIGNoaWxkID0g
Zm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgaWYgKGNoaWxkKSB7CkBA
IC04MjIsOSArODIxLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgICAg
ICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oaXNKU1N0cmluZyhjaGlsZCkpKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgSXNPYmplY3Q6Ci0gICAgICAgICAg
ICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGNoaWxkLmlzT2JqZWN0KCkpKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAg
ICAgICAgICAgICAgICAgaWYgKGNoaWxkLmlzTnVsbCgpIHx8ICFjaGlsZC5pc09iamVjdCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihjaGlsZC5p
c051bGwoKSkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMWFhNTM5YjdmNjUyNzY1
YjRmYmNmNjk4MWRlYTJkNDY3YWU3NmI4OS4uMjdjNThkZGI3MDA3MWIwOGI0ODUwZDBlZTE4OTk1
NDE2ZDVlOTE3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTI4ODcsMTIgKzI4ODcsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaXNf
b2JqZWN0KTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfaXNfb2JqZWN0X29yX251bGw6
IHsKLSAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzT2JqZWN0
T3JOdWxsLCB2YWx1ZSkpOwotICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaXNfb2JqZWN0X29y
X251bGwpOwotICAgICAgICB9Ci0KICAgICAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjogewogICAg
ICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpKTsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSXNGdW5jdGlvbiwgdmFs
dWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApp
bmRleCBlZGMyNTQ2OTcxOGJmNmE3YWI2NTAyMjk4N2YyNmRiNTRiMjI0Yjg3Li5lZTRkNGQxZWFh
MTY5NTczODZlMmVlNzJkMDBkMWUzOTk3ZjM2ZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMzIsNyArMTMyLDYgQEAgQ2FwYWJpbGl0
eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX2lzX251bWJlcjoKICAgICBjYXNlIG9wX2lzX3N0
cmluZzoKICAgICBjYXNlIG9wX2lzX29iamVjdDoKLSAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9u
dWxsOgogICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246CiAgICAgY2FzZSBvcF9ub3Q6CiAgICAgY2Fz
ZSBvcF9sZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRl
eCAxMmRmZTg4MmE5MGYwNDliMGE3MjhmZTJiY2IyNDIwMWMwMGY1ZmQyLi43MjNlZGFhMjBmMjJm
MjAxZGQ5ODVmNjFkZGYzYTg1M2NiYjBlYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0
ZUZ1CiAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgY2FzZSBJc051bWJlcjoKICAgICBjYXNlIElz
U3RyaW5nOgotICAgIGNhc2UgSXNPYmplY3Q6CiAgICAgY2FzZSBMb2dpY2FsTm90OgogICAgIGNh
c2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIERvdWJsZVJlcDoKQEAgLTM0MSw5ICszNDAsOSBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVu
Y3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEFsbG9j
YXRpb25Qcm9maWxlV2F0Y2hwb2ludExvYywgTWlzY0ZpZWxkcyksIG5vZGUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAotICAgIGNhc2UgSXNPYmplY3RPck51bGw6CisgICAgY2FzZSBJc09i
amVjdDoKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKLSAgICAgICAgZGVmKEhlYXBMb2NhdGlv
bihJc09iamVjdE9yTnVsbExvYywgTWlzY0ZpZWxkcywgbm9kZS0+Y2hpbGQxKCkpLCBub2RlKTsK
KyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihJc09iamVjdExvYywgTWlzY0ZpZWxkcywgbm9kZS0+
Y2hpbGQxKCkpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIElz
RnVuY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNH
Qy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggYzFh
OTEzNWQ2Y2IxZTQ2ZmM2MDFmYTQ5NzdmMjgwNzA1YTQxNzJhZS4uYjBiNzg5NmE3MmNjYjZkOGZk
ZmY3OWFlMjM2ZTkzYmNjMTViN2M3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDLmNwcApAQCAtMTM1LDcgKzEzNSw2IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSkKICAgICBjYXNlIElzTnVtYmVyOgogICAgIGNhc2UgSXNTdHJpbmc6CiAgICAgY2Fz
ZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgogICAgIGNhc2UgSXNGdW5jdGlv
bjoKICAgICBjYXNlIFR5cGVPZjoKICAgICBjYXNlIExvZ2ljYWxOb3Q6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBlNDY3NWMyYjkwNTI1MGEwMGM4
MzBhZDQ4ZjE2YzYzNTRjZDkwZTRkLi4wYzQwNjc3OTUxMmY0MjBmN2M3OTdkNTc3Mjg2NmIxZDM2
ODBhYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
QEAgLTEwODksMTYgKzEwODksNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBJc09iamVjdDoKLSAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAgICBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICBtX2luZGV4SW5C
bG9jaywgU3BlY05vbmUsIFBoYW50b20sIG5vZGUtPm9yaWdpbiwKLSAgICAgICAgICAgICAgICAg
ICAgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIE9iamVjdFVzZSkpOwotICAgICAgICAgICAg
ICAgIG1fZ3JhcGguY29udmVydFRvQ29uc3RhbnQobm9kZSwganNCb29sZWFuKHRydWUpKTsKLSAg
ICAgICAgICAgICAgICBvYnNlcnZlVXNlS2luZE9uTm9kZTxPYmplY3RVc2U+KG5vZGUpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgY2FzZSBHZXRFbnVtZXJh
YmxlTGVuZ3RoOiB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI0MCw3ICsxMjMwLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAg
IGNhc2UgSXNOdW1iZXI6Ci0gICAgICAgIGNhc2UgSXNPYmplY3RPck51bGw6CisgICAgICAgIGNh
c2UgSXNPYmplY3Q6CiAgICAgICAgIGNhc2UgSXNGdW5jdGlvbjoKICAgICAgICAgY2FzZSBDcmVh
dGVBcmd1bWVudHM6CiAgICAgICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAppbmRleCA5NDRhOGE2NjU4YmI3
MmE3OGRkMmVkODg1YWQ2MzAzZTRhYjU2ZmNiLi5hMjBhOGRiMGExMTBkNDI5ZTcyYjYyOTkwNzhj
Y2NjOWM3ZjgyZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9j
YXRpb24uY3BwCkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJpbnQoIkludmFsaWRh
dGlvblBvaW50TG9jIik7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgY2FzZSBJc09i
amVjdE9yTnVsbExvYzoKLSAgICAgICAgb3V0LnByaW50KCJJc09iamVjdE9yTnVsbExvYyIpOwor
ICAgIGNhc2UgSXNPYmplY3RMb2M6CisgICAgICAgIG91dC5wcmludCgiSXNPYmplY3RMb2MiKTsK
ICAgICAgICAgcmV0dXJuOwotCisgICAgICAgIAogICAgIGNhc2UgSXNGdW5jdGlvbkxvYzoKICAg
ICAgICAgb3V0LnByaW50KCJJc0Z1bmN0aW9uTG9jIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCmluZGV4IDU2OGQzMGRlNTY3
NzFiOTA0YjI5NDM5NjFiMWIyZGVmNGFhMWNmYmEuLmUyMTdiNTlmZjg3ZjMxY2QxZmM3YjhjMTll
YTIzOTY0ZDA0Y2ZlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9j
YXRpb24uaApAQCAtNTAsNyArNTAsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7CiAgICAgSW5zdGFu
Y2VPZkxvYywKICAgICBJbnZhbGlkYXRpb25Qb2ludExvYywKICAgICBJc0Z1bmN0aW9uTG9jLAot
ICAgIElzT2JqZWN0T3JOdWxsTG9jLAorICAgIElzT2JqZWN0TG9jLAogICAgIE15QXJndW1lbnRC
eVZhbExvYywKICAgICBNeUFyZ3VtZW50c0xlbmd0aExvYywKICAgICBOYW1lZFByb3BlcnR5TG9j
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDc3MzU4NDEzZmZh
MTM0MGRhZDQ2NTg5NDBhZThjMDY3MjRjOWE3NDMuLmUwMDMxMzdhMmIwOGY4OGE0ODk1ZjljZGMy
MmJlNDBlNGE1NzBiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgK
QEAgLTI1MCw3ICsyNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAg
bWFjcm8oSXNOdW1iZXIsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNTdHJpbmcs
IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNPYmplY3QsIE5vZGVSZXN1bHRCb29s
ZWFuKSBcCi0gICAgbWFjcm8oSXNPYmplY3RPck51bGwsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAg
ICAgbWFjcm8oSXNGdW5jdGlvbiwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhUeXBl
T2YsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExvZ2ljYWxOb3QsIE5vZGVSZXN1bHRCb29s
ZWFuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBkZDVlNzFjMDQ5ZjE5ODY5NDNmZGQ5ZmE4NmEwMGZmMWMzMDMyZWU5Li45YzQ2ZmM5NzZkMzE0
OTE2MTg3NTU0ZWQ0NTBmOTQyNWEwMTk5Yjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTgwOCw5ICs4MDgsOSBAQCBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3RnVuY3Rpb25Ob0NoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNTY29w
ZSogc2NvcAogICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHN0YXRpY19jYXN0PEZ1
bmN0aW9uRXhlY3V0YWJsZSo+KGZ1bmN0aW9uRXhlY3V0YWJsZSksIHNjb3BlKTsKIH0KIAotc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXNPYmplY3RPck51bGwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklz
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0
dXJuIGpzSXNPYmplY3RUeXBlT3JOdWxsKGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOwor
ICAgIHJldHVybiBqc0lzT2JqZWN0VHlwZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsK
IH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXNGdW5jdGlvbihFbmNvZGVkSlNW
YWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5k
ZXggOWZlZDk4YjRmNmM3YzFlYjQ4YTA0YzVhZTY3ZmQ2NDEyNWRiM2M1NS4uNzg1NzRlMWMzOWE4
OGQ2NTMxYTllYmI3ZGY0ZTFkZjExOTYxNjBkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldElubGluZWRBcmd1bWVudEJ5VmFsKEV4ZWNTdGF0ZSosIGlu
dDMyXwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRBcmd1bWVudEJ5
VmFsKEV4ZWNTdGF0ZSosIGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdGdW5jdGlvbk5vQ2hlY2soRXhlY1N0YXRlKiwgSlNT
Y29wZSosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkZNb2RPbkludHMoaW50MzJfdCwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSXNPYmplY3RPck51bGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklzT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Jc0Z1bmN0aW9uKEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mKEV4ZWNTdGF0ZSosIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5KEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggOWUzMjU5ZDQ2ZDllNzBmNTMzODQ1MTll
NmNiN2U4ZjEyNTgyMTk2Ni4uNWE1Y2VjNTFmYWEwOTA2ZWMzZTc1MDNjZmIzMzlhNzQyYTU1OTQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTM1OCw3ICszNTgsNiBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIElzTnVtYmVyOgogICAgICAgICBjYXNlIElzU3RyaW5nOgogICAgICAgICBj
YXNlIElzT2JqZWN0OgotICAgICAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgogICAgICAgICBjYXNl
IElzRnVuY3Rpb246IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVj
Qm9vbGVhbik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMGRhMmZmMmEzMjM0NWFmM2JmMzRkYTU3MDE5MWVh
Mzc4MzI5OWQ1NC4uOTE5OWU1NDVjMDUxMDU0MGFjMDMzZTRlY2YxZWE2MjhkNjViMDRkYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTIxMCw3
ICsyMTAsNiBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBJc051bWJlcjoKICAgICBjYXNlIElz
U3RyaW5nOgogICAgIGNhc2UgSXNPYmplY3Q6Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAg
ICBjYXNlIElzRnVuY3Rpb246CiAgICAgY2FzZSBUeXBlT2Y6CiAgICAgY2FzZSBMb2dpY2FsTm90
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCA5MmU1NWNmODhiOTUxZDRkNTcxODEzYzRiMWQxN2I4ODU0M2NmYjBkLi43NDc4ODY1NDY5
MzgwZDkzYjIwNmI2MWFkMDQzODI1ZWVmODRkNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTE1NywxNyArMTE1NywzMyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmplY3RFcXVhbGl0eShOb2RlKiBu
b2RlLCBOb2RlKiBicmFuY2hOb2RlKQogICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0
Y2hwb2ludElzU3RpbGxWYWxpZCgpKSB7CiAgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobm9k
ZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVjT2JqZWN0KSB7CiAgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAotICAgICAgICAgICAgICAgIEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94
ZWRDZWxsKG9wMUdQUiksIG5vZGUtPmNoaWxkMSgpLCBicmFuY2hOb3RPYmplY3Qob3AxR1BSKSk7
CisgICAgICAgICAgICAgICAgQmFkVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3Ax
R1BSKSwgbm9kZS0+Y2hpbGQxKCksIAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFN0cnVj
dHVyZVB0cigKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+
c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fc3RhdGUu
Zm9yTm9kZShub2RlLT5jaGlsZDIoKSkubV90eXBlICYgflNwZWNPYmplY3QpIHsKICAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgQmFkVHlwZSwgSlNWYWx1ZVNv
dXJjZTo6dW5ib3hlZENlbGwob3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksIGJyYW5jaE5vdE9iamVj
dChvcDJHUFIpKTsKKyAgICAgICAgICAgICAgICBCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJv
eGVkQ2VsbChvcDJHUFIpLCBub2RlLT5jaGlsZDIoKSwKKyAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpF
cXVhbCwgCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQ
UiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgICAgIG1f
aml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgR1BSVGVt
cG9yYXJ5IHRlbXAodGhpcyk7CisgICAgICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1
cmUuZ3ByKCk7CisKKyAgICAgICAgbV9qaXQuZW1pdExvYWRTdHJ1Y3R1cmUob3AxR1BSLCBzdHJ1
Y3R1cmVHUFIsIHRlbXAuZ3ByKCkpOwogICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKS5tX3R5cGUgJiB+U3BlY09iamVjdCkgewogICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKICAgICAgICAgICAgICAgICBCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVk
Q2VsbChvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwKLSAgICAgICAgICAgICAgICBicmFuY2hOb3RP
YmplY3Qob3AxR1BSKSk7CisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3R1cmVHUFIsIAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgICAg
IH0KICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJv
eGVkQ2VsbChvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwKICAgICAgICAgICAgIG1faml0LmJyYW5j
aFRlc3Q4KApAQCAtMTE3NSwxMCArMTE5MSwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUGVlcEhvbGVPYmplY3RFcXVhbGl0eShOb2RlKiBub2RlLCBOb2RlKiBicmFuY2hOb2RlKQog
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjp0
eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKSk7CiAKKyAgICAgICAgbV9qaXQu
ZW1pdExvYWRTdHJ1Y3R1cmUob3AyR1BSLCBzdHJ1Y3R1cmVHUFIsIHRlbXAuZ3ByKCkpOwogICAg
ICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS5tX3R5cGUgJiB+U3BlY09i
amVjdCkgewogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKICAgICAgICAgICAgICAgICBC
YWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDJHUFIpLCBub2RlLT5jaGlsZDIo
KSwKLSAgICAgICAgICAgICAgICBicmFuY2hOb3RPYmplY3Qob3AyR1BSKSk7CisgICAgICAgICAg
ICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6RXF1YWwsIAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVHUFIsIAorICAgICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJp
bmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgICAgIH0KICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDJHUFIpLCBub2RlLT5jaGls
ZDIoKSwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KApAQCAtMzk0Myw3ICszOTYzLDEw
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdUb1VudHlwZWRFcXVhbGl0eShO
b2RlKiBub2RlLCBFZGdlIHN0cmluZ0VkZ2UsCiAgICAgZmFzdFRydWUuYXBwZW5kKG1faml0LmJy
YW5jaFB0cigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBsZWZ0R1BSLCByaWdodFJl
Z3MucGF5bG9hZEdQUigpKSk7CiAgICAgCi0gICAgZmFzdEZhbHNlLmFwcGVuZChicmFuY2hOb3RT
dHJpbmcocmlnaHRSZWdzLnBheWxvYWRHUFIoKSkpOworICAgIGZhc3RGYWxzZS5hcHBlbmQobV9q
aXQuYnJhbmNoU3RydWN0dXJlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyaWdodFJlZ3MucGF5bG9hZEdQUigp
LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgbV9qaXQudm0oKS0+c3Ry
aW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgCiAgICAgY29tcGlsZVN0cmluZ0VxdWFsaXR5KAog
ICAgICAgICBub2RlLCBsZWZ0R1BSLCByaWdodFJlZ3MucGF5bG9hZEdQUigpLCBsZW5ndGhHUFIs
IGxlZnRUZW1wR1BSLCByaWdodFRlbXBHUFIsIGxlZnRUZW1wMkdQUiwKQEAgLTM5OTEsNyArNDAx
NCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRUb05vdFN0cmlu
Z1ZhckVxdWFsaXR5KAogICAgIG1vdmVGYWxzZVRvKHJpZ2h0VGVtcEdQUik7CiAgICAgSklUQ29t
cGlsZXI6Okp1bXBMaXN0IG5vdFN0cmluZzsKICAgICBub3RTdHJpbmcuYXBwZW5kKGJyYW5jaE5v
dENlbGwocmlnaHRSZWdzKSk7Ci0gICAgbm90U3RyaW5nLmFwcGVuZChicmFuY2hOb3RTdHJpbmco
cmlnaHRSZWdzLnBheWxvYWRHUFIoKSkpOworICAgIG5vdFN0cmluZy5hcHBlbmQobV9qaXQuYnJh
bmNoU3RydWN0dXJlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIAorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyaWdodFJlZ3MucGF5bG9hZEdQUigpLCBKU0Nl
bGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3Ry
dWN0dXJlLmdldCgpKSk7CiAgICAgCiAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnRBbmRMb2FkU3Rv
cmFnZShub3RTdHJpbmdWYXJFZGdlLCByaWdodFJlZ3MucGF5bG9hZEdQUigpLCByaWdodFRlbXBH
UFIpOwogICAgIApAQCAtNDQzNCwxMCArNDQ2MCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVG9TdHJpbmdPbkNlbGwoTm9kZSogbm9kZSkKIAogICAgICAgICBtX2ppdC5sb2FkMzIo
SklUQ29tcGlsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCByZXN1bHRHUFIpOwogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc1N0cmluZyA9IG1faml0
LmJyYW5jaFN0cnVjdHVyZVB0cigKLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpFcXVhbCwKKyAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpFcXVhbCwgCiAgICAgICAgICAgICByZXN1bHRHUFIsCiAg
ICAgICAgICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpOwotCisgICAgICAg
IAogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUobm9kZS0+Y2hpbGQx
KCksIHJlc3VsdEdQUik7CiAgICAgICAgIAogICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBp
bGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlQ2VsbE9m
ZnNldCgpKSwgcmVzdWx0R1BSKTsKQEAgLTQ0NjMsNyArNDQ4OSwxMCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlVG9TdHJpbmdPbkNlbGwoTm9kZSogbm9kZSkKICAgICAgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZTsKICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5nKSB7Ci0gICAgICAgICAg
ICBKSVRDb21waWxlcjo6SnVtcCBuZWVkQ2FsbCA9IGJyYW5jaE5vdFN0cmluZyhvcDFHUFIpOwor
ICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbmVlZENhbGwgPSBtX2ppdC5icmFuY2hTdHJ1
Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwKKyAgICAgICAgICAgICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUu
Z2V0KCkpOwogICAgICAgICAgICAgbV9qaXQubW92ZShvcDFHUFIsIHJlc3VsdEdQUik7CiAgICAg
ICAgICAgICBkb25lID0gbV9qaXQuanVtcCgpOwogICAgICAgICAgICAgbmVlZENhbGwubGluaygm
bV9qaXQpOwpAQCAtNDY4Nyw3ICs0NzE2LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZU9iamVjdChFZGdlIGVkZ2UpCiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0
aGlzLCBlZGdlKTsKICAgICBHUFJSZWcgZ3ByID0gb3BlcmFuZC5ncHIoKTsKICAgICBERkdfVFlQ
RV9DSEVDSygKLSAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoZ3ByKSwgZWRnZSwg
U3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KGdwcikpOworICAgICAgICBKU1ZhbHVlU291cmNl
Ojp1bmJveGVkQ2VsbChncHIpLCBlZGdlLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1
cmVQdHIoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZ3ByLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCAKKyAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwogfQog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVGdW5jdGlvbihFZGdlIGVkZ2UpCkBAIC00
NzE5LDcgKzQ3NTEsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JP
dGhlcihFZGdlIGVkZ2UpCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2VsbCA9IGJyYW5j
aE5vdENlbGwob3BlcmFuZC5qc1ZhbHVlUmVncygpKTsKICAgICBHUFJSZWcgZ3ByID0gb3BlcmFu
ZC5qc1ZhbHVlUmVncygpLnBheWxvYWRHUFIoKTsKICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAg
ICAgb3BlcmFuZC5qc1ZhbHVlUmVncygpLCBlZGdlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3Qs
IGJyYW5jaE5vdE9iamVjdChncHIpKTsKKyAgICAgICAgb3BlcmFuZC5qc1ZhbHVlUmVncygpLCBl
ZGdlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigK
KyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhncHIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAorICAg
ICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICBub3RDZWxsLmxpbmsoJm1f
aml0KTsKICAgICBpZiAobmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0NlbGwgfCBTcGVjT3RoZXIp
KSB7CkBAIC00NzMzLDcgKzQ3NjgsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
T2JqZWN0T3JPdGhlcihFZGdlIGVkZ2UpCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
dHJpbmcoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKIHsKICAgICBERkdfVFlQRV9DSEVDSygKLSAg
ICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTdHJpbmcg
fCB+U3BlY0NlbGwsIGJyYW5jaE5vdFN0cmluZyhjZWxsKSk7CisgICAgICAgIEpTVmFsdWVTb3Vy
Y2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjU3RyaW5nIHwgflNwZWNDZWxsLAorICAg
ICAgICBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbCwg
SlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICBtX2ppdC52bSgpLT5z
dHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlU3RyaW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQ
UlJlZyBzdG9yYWdlKQpAQCAtNDgzOCw3ICs0ODc3LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZU5vdFN0cmluZ1ZhcihFZGdlIGVkZ2UpCiAgICAgSklUQ29tcGlsZXI6Okp1bXAg
bm90Q2VsbCA9IGJyYW5jaE5vdENlbGwob3BlcmFuZC5qc1ZhbHVlUmVncygpKTsKICAgICBHUFJS
ZWcgY2VsbCA9IG9wZXJhbmQuanNWYWx1ZVJlZ3MoKS5wYXlsb2FkR1BSKCk7CiAgICAgCi0gICAg
SklUQ29tcGlsZXI6Okp1bXAgbm90U3RyaW5nID0gYnJhbmNoTm90U3RyaW5nKGNlbGwpOworICAg
IEpJVENvbXBpbGVyOjpKdW1wIG5vdFN0cmluZyA9IG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAorICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhjZWxsLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAorICAgICAgICBt
X2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpOwogICAgIAogICAgIHNwZWN1bGF0ZVN0
cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UoZWRnZSwgY2VsbCwgdGVtcEdQUik7CiAgICAgCkBAIC01
MTE0LDcgKzUxNTYsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaENoYXIoTm9k
ZSogbm9kZSwgU3dpdGNoRGF0YSogZGF0YSkKICAgICAgICAgCiAgICAgICAgIGFkZEJyYW5jaChi
cmFuY2hOb3RDZWxsKG9wMVJlZ3MpLCBkYXRhLT5mYWxsVGhyb3VnaC5ibG9jayk7CiAgICAgICAg
IAotICAgICAgICBhZGRCcmFuY2goYnJhbmNoTm90U3RyaW5nKG9wMVJlZ3MucGF5bG9hZEdQUigp
KSwgZGF0YS0+ZmFsbFRocm91Z2guYmxvY2spOworICAgICAgICBhZGRCcmFuY2goCisgICAgICAg
ICAgICBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KG9wMVJlZ3MucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAorICAg
ICAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisgICAgICAg
ICAgICBkYXRhLT5mYWxsVGhyb3VnaC5ibG9jayk7CiAgICAgICAgIAogICAgICAgICBlbWl0U3dp
dGNoQ2hhclN0cmluZ0p1bXAoZGF0YSwgb3AxUmVncy5wYXlsb2FkR1BSKCksIHRlbXBHUFIpOwog
ICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwpAQCAt
NTM5OSw3ICs1NDQ2LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hTdHJpbmco
Tm9kZSogbm9kZSwgU3dpdGNoRGF0YSogZGF0YSkKICAgICAgICAgCiAgICAgICAgIGFkZEJyYW5j
aChicmFuY2hOb3RDZWxsKG9wMVJlZ3MpLCBkYXRhLT5mYWxsVGhyb3VnaC5ibG9jayk7CiAgICAg
ICAgIAotICAgICAgICBhZGRCcmFuY2goYnJhbmNoTm90U3RyaW5nKG9wMVJlZ3MucGF5bG9hZEdQ
UigpKSwgZGF0YS0+ZmFsbFRocm91Z2guYmxvY2spOworICAgICAgICBhZGRCcmFuY2goCisgICAg
ICAgICAgICBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKG9wMVJlZ3MucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAor
ICAgICAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisgICAg
ICAgICAgICBkYXRhLT5mYWxsVGhyb3VnaC5ibG9jayk7CiAgICAgICAgIAogICAgICAgICBlbWl0
U3dpdGNoU3RyaW5nT25TdHJpbmcoZGF0YSwgb3AxUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAg
ICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwpAQCAtNTQ0OSwz
OCArNTUwMSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmxpbmtCcmFuY2hlcygpCiAgICAgfQog
fQogCi1KSVRDb21waWxlcjo6SnVtcCBTcGVjdWxhdGl2ZUpJVDo6YnJhbmNoSXNPYmplY3QoR1BS
UmVnIGNlbGxHUFIpCi17Ci0gICAgcmV0dXJuIG1faml0LmJyYW5jaDgoCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLAotICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpKTsKLX0KLQotSklUQ29tcGlsZXI6Okp1
bXAgU3BlY3VsYXRpdmVKSVQ6OmJyYW5jaE5vdE9iamVjdChHUFJSZWcgY2VsbEdQUikKLXsKLSAg
ICByZXR1cm4gbV9qaXQuYnJhbmNoOCgKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJlbG93LAot
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZv
VHlwZU9mZnNldCgpKSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihPYmpl
Y3RUeXBlKSk7Ci19Ci0KLUpJVENvbXBpbGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpicmFuY2hJ
c1N0cmluZyhHUFJSZWcgY2VsbEdQUikKLXsKLSAgICByZXR1cm4gbV9qaXQuYnJhbmNoU3RydWN0
dXJlUHRyKAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsCi0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksCi0g
ICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSk7Ci19Ci0KLUpJVENvbXBp
bGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpicmFuY2hOb3RTdHJpbmcoR1BSUmVnIGNlbGxHUFIp
Ci17Ci0gICAgcmV0dXJuIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjZWxs
R1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAotICAgICAgICBtX2ppdC52bSgpLT5z
dHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpOwotfQotCiAjaWYgRU5BQkxFKEdHQykKIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVTdG9yZUJhcnJpZXIoTm9kZSogbm9kZSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjNjM3MjNkYWQzMmU1
MTE1ODcxOTA1YWUzMjkzZTU1NGRjNmQ2N2EzLi5iZmU2YWUzMzNkOTU1OGNhODU0NDM2Yjk5ZjA3
MWE3MTk5M2RkYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0yMTkxLDEwICsyMTkxLDYgQEAgcHVibGljOgogICAgIEpJVENvbXBpbGVy
OjpKdW1wIGJyYW5jaE5vdENlbGwoSlNWYWx1ZVJlZ3MpOwogICAgIEpJVENvbXBpbGVyOjpKdW1w
IGJyYW5jaElzT3RoZXIoSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSKTsKICAgICBKSVRDb21w
aWxlcjo6SnVtcCBicmFuY2hOb3RPdGhlcihKU1ZhbHVlUmVncywgR1BSUmVnIHRlbXBHUFIpOwot
ICAgIEpJVENvbXBpbGVyOjpKdW1wIGJyYW5jaElzT2JqZWN0KEdQUlJlZyBjZWxsR1BSKTsKLSAg
ICBKSVRDb21waWxlcjo6SnVtcCBicmFuY2hOb3RPYmplY3QoR1BSUmVnIGNlbGxHUFIpOwotICAg
IEpJVENvbXBpbGVyOjpKdW1wIGJyYW5jaElzU3RyaW5nKEdQUlJlZyBjZWxsR1BSKTsKLSAgICBK
SVRDb21waWxlcjo6SnVtcCBicmFuY2hOb3RTdHJpbmcoR1BSUmVnIGNlbGxHUFIpOwogICAgIAog
ICAgIHZvaWQgbW92ZVRydWVUbyhHUFJSZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVn
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCmluZGV4IDBjNjc5YjFlNzI2YWM3ZDIwMmI0ODdhYmYzYmQwYzgxNjFhODFmNDYu
LjYyYjE4MzYyNDZjNzFhZjJlYTA4YTdlZTM1YWQwMTYxZDJkZDFmODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAt
MTIwMCwyNCArMTIwMCwzNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0RXF1
YWxpdHkoTm9kZSogbm9kZSkKICAgICAKICAgICBpZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdh
dGNocG9pbnRJc1N0aWxsVmFsaWQoKSkgewogICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAg
ICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQUiksIG5vZGUtPmNoaWxkMSgp
LCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3AxR1BSKSk7CisgICAgICAgICAgICBKU1Zh
bHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwgU3BlY09iamVj
dCwgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0Nl
bGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAg
ICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwob3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNPYmplY3QsIGJyYW5jaE5vdE9iamVj
dChvcDJHUFIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMkdQ
UiksIG5vZGUtPmNoaWxkMigpLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hQdHIoCisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0LnZtKCkt
PnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBERkdfVFlQ
RV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQUiks
IG5vZGUtPmNoaWxkMSgpLCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3AxR1BSKSk7Ci0g
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENl
bGwob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksCisgICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1
bmJveGVkQ2VsbChvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwgU3BlY09iamVjdCwgbV9qaXQuYnJh
bmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CisgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwg
bm9kZS0+Y2hpbGQxKCksIAogICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDgoCiAgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIAotICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkp
LAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxs
Ojp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKSk7CiAKICAgICAgICAgREZH
X1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDJH
UFIpLCBub2RlLT5jaGlsZDIoKSwgU3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMkdQUikp
OwotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94
ZWRDZWxsKG9wMkdQUiksIG5vZGUtPmNoaWxkMigpLAorICAgICAgICAgICAgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwob3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNPYmplY3QsIG1faml0
LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOworICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMkdQ
UiksIG5vZGUtPmNoaWxkMigpLCAKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAotICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAotICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0
KCkpLAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCAKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6dHlwZUluZm9G
bGFnc09mZnNldCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSkpOwogICAgIH0KICAgICAKQEAgLTEyNTAsMTAg
KzEyNjIsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZWN0T3JP
dGhlckVxdWFsaXR5KEVkZ2UgbGVmdENoaWxkLCBFZGdlIHIKIAogICAgIGlmIChtYXNxdWVyYWRl
c0FzVW5kZWZpbmVkV2F0Y2hwb2ludFZhbGlkKSB7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAot
ICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxk
LCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3AxR1BSKSk7CisgICAgICAgICAgICBKU1Zh
bHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBsZWZ0Q2hpbGQsIFNwZWNPYmplY3QsIG1f
aml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCBTcGVjT2JqZWN0LCBicmFuY2hOb3RP
YmplY3Qob3AxR1BSKSk7CisgICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChv
cDFHUFIpLCBsZWZ0Q2hpbGQsIFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5z
dHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlw
ZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCAKICAgICAg
ICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpOb25aZXJvLCAKQEAgLTEyNjksMTAgKzEyODcsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KEVkZ2UgbGVmdENoaWxkLCBFZGdl
IHIKICAgICAvLyBXZSBrbm93IHRoYXQgd2l0aGluIHRoaXMgYnJhbmNoLCByaWdodENoaWxkIG11
c3QgYmUgYSBjZWxsLgogICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludFZh
bGlkKSB7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mo
b3AyVGFnR1BSLCBvcDJQYXlsb2FkR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2VsbCkgfCBTcGVj
T2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3AyUGF5bG9hZEdQUikpOworICAgICAgICAgICAgSlNW
YWx1ZVJlZ3Mob3AyVGFnR1BSLCBvcDJQYXlsb2FkR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2Vs
bCkgfCBTcGVjT2JqZWN0LAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Mob3AyUGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQu
dm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIERG
R19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyVGFnR1BSLCBvcDJQYXls
b2FkR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2VsbCkgfCBTcGVjT2JqZWN0LCBicmFuY2hOb3RP
YmplY3Qob3AyUGF5bG9hZEdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyVGFnR1BS
LCBvcDJQYXlsb2FkR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2VsbCkgfCBTcGVjT2JqZWN0LAor
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpFcXVhbCwKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJQ
YXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1
cmUuZ2V0KCkpKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJl
Z3Mob3AyVGFnR1BSLCBvcDJQYXlsb2FkR1BSKSwgcmlnaHRDaGlsZCwgCiAgICAgICAgICAgICBt
X2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVy
bywgCkBAIC0xMzI5LDEwICsxMzU1LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQ
ZWVwSG9sZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KEVkZ2UgbGVmdENoaWxkCiAKICAg
ICBpZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRWYWxpZCkgewogICAgICAgICBE
RkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9w
MUdQUiksIGxlZnRDaGlsZCwgU3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMUdQUikpOwor
ICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxk
LCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhv
cDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5n
ZXQoKSkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAg
ICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQUiksIGxlZnRDaGlsZCwgU3BlY09i
amVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMUdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFu
Y2hQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJl
SURPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQUiksIGxl
ZnRDaGlsZCwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCAKQEAgLTEzNDgsMTEgKzEzODAsMTcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxp
dHkoRWRnZSBsZWZ0Q2hpbGQKICAgICBpZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9p
bnRWYWxpZCkgewogICAgICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzKG9wMlRhZ0dQUiwgb3AyUGF5bG9hZEdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwg
U3BlY09iamVjdCwKLSAgICAgICAgICAgIGJyYW5jaE5vdE9iamVjdChvcDJQYXlsb2FkR1BSKSk7
CisgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhv
cDJQYXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1
Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCiAg
ICAgICAgICAgICBKU1ZhbHVlUmVncyhvcDJUYWdHUFIsIG9wMlBheWxvYWRHUFIpLCByaWdodENo
aWxkLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsCi0gICAgICAgICAgICBicmFuY2hOb3RPYmpl
Y3Qob3AyUGF5bG9hZEdQUikpOworICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Mob3AyUGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9q
aXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKG9wMlRhZ0dQUiwgb3AyUGF5bG9hZEdQUiksIHJpZ2h0
Q2hpbGQsCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgCkBAIC0xNDM2LDExICsxNDc0LDE5IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5vdChFZGdlIG5vZGVVc2Up
CiAgICAgaWYgKG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50VmFsaWQpIHsKICAgICAg
ICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwg
dmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwgKH5TcGVjQ2VsbCkgfCBTcGVjT2JqZWN0LAotICAg
ICAgICAgICAgYnJhbmNoTm90T2JqZWN0KHZhbHVlUGF5bG9hZEdQUikpOworICAgICAgICAgICAg
bV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwK
KyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIs
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkp
OwogICAgIH0gZWxzZSB7CisgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3ModmFsdWVQYXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzdHJ1
Y3R1cmVHUFIpOworCiAgICAgICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICAgICAgSlNWYWx1
ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsICh+U3BlY0NlbGwp
IHwgU3BlY09iamVjdCwKLSAgICAgICAgICAgIGJyYW5jaE5vdE9iamVjdCh2YWx1ZVBheWxvYWRH
UFIpKTsKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsCisgICAgICAgICAgICAgICAgc3RydWN0dXJlR1BSLAorICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0LnZtKCktPnN0cmlu
Z1N0cnVjdHVyZS5nZXQoKSkpKTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpc05v
dE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4
KApAQCAtMTQ0OCw3ICsxNDk0LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVj
dE9yT3RoZXJMb2dpY2FsTm90KEVkZ2Ugbm9kZVVzZSkKICAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09m
ZnNldCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkKSk7CiAKLSAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
SlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsIAogICAg
ICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpFcXVhbCwgCkBAIC0xNTU4LDE4ICsxNjAzLDI1IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRPYmplY3RPck90aGVyQnJhbmNoKEVkZ2Ugbm9kZVVzZSwgQmFzaWNCbG9jayogdGFrZW4sIEJh
CiAgICAgaWYgKG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50SXNTdGlsbFZhbGlkKCkp
IHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyh2YWx1
ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwgKH5TcGVjQ2VsbCkgfCBTcGVjT2Jq
ZWN0LAotICAgICAgICAgICAgYnJhbmNoTm90T2JqZWN0KHZhbHVlUGF5bG9hZEdQUikpOworICAg
ICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpFcXVhbCwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFsdWVQ
YXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1
cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworCiAgICAgICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsICh+
U3BlY0NlbGwpIHwgU3BlY09iamVjdCwKLSAgICAgICAgICAgIGJyYW5jaE5vdE9iamVjdCh2YWx1
ZVBheWxvYWRHUFIpKTsKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIs
CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQudm0o
KS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogCiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1w
IGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAg
ICAgICAgSklUQ29tcGlsZXI6Olplcm8sIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3ModmFsdWVQYXlsb2FkR1BSLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAog
ICAgICAgICAgICAgVHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKTsKIAotICAg
ICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHZhbHVlUGF5bG9hZEdQ
UiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5
bG9hZEdQUiksIG5vZGVVc2UsCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCiAgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKQEAgLTMxMTMsNyArMzE2NSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIG1faml0
Lm1vdmUob3AxUGF5bG9hZEdQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhbHJlYWR5UHJpbWl0aXZlID0gYnJh
bmNoTm90Q2VsbChvcDEuanNWYWx1ZVJlZ3MoKSk7Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBub3RQcmltaXRpdmUgPSBicmFuY2hJc09iamVjdChvcDFQYXlsb2FkR1BSKTsKKyAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdFByaW1pdGl2ZSA9IG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9w
MVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBhbHJlYWR5UHJpbWl0aXZlLmxpbmsoJm1faml0KTsKICAg
ICAgICAgICAgIG1faml0Lm1vdmUob3AxVGFnR1BSLCByZXN1bHRUYWdHUFIpOwpAQCAtMzE0Myw3
ICszMTk1LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmU7CiAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnByZWRpY3Rpb24oKSAmIFNwZWNTdHJpbmcpIHsKICAgICAgICAgICAgICAgICBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aDEgPSBicmFuY2hOb3RDZWxsKG9wMS5qc1ZhbHVlUmVn
cygpKTsKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aDIgPSBicmFu
Y2hOb3RTdHJpbmcob3AxUGF5bG9hZEdQUik7CisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6
Okp1bXAgc2xvd1BhdGgyID0gbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgICAgICBK
SVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpB
ZGRyZXNzKG9wMVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksCisgICAg
ICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJl
LmdldCgpKSk7CiAgICAgICAgICAgICAgICAgbV9qaXQubW92ZShvcDFQYXlsb2FkR1BSLCByZXN1
bHRHUFIpOwogICAgICAgICAgICAgICAgIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgICAgICAg
ICAgICAgc2xvd1BhdGgxLmxpbmsoJm1faml0KTsKQEAgLTQxNTIsMzIgKzQyMDcsMTIgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAgY2FzZSBJc09iamVj
dDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlLCBUYWdXb3Jk
KTsKLQotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc05vdENlbGwgPSBicmFuY2hOb3RDZWxs
KHZhbHVlLmpzVmFsdWVSZWdzKCkpOwotCi0gICAgICAgIG1faml0LmNvbXBhcmU4KEpJVENvbXBp
bGVyOjpBYm92ZU9yRXF1YWwsCi0gICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyh2YWx1
ZS5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLAotICAgICAgICAg
ICAgVHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpLAotICAgICAgICAgICAgcmVzdWx0LmdwcigpKTsK
LSAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKLQotICAgICAg
ICBpc05vdENlbGwubGluaygmbV9qaXQpOwotICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0z
MigwKSwgcmVzdWx0LmdwcigpKTsKLQotICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKLSAgICAg
ICAgYm9vbGVhblJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5k
IHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSUmVnIHZhbHVlVGFnR1BS
ID0gdmFsdWUudGFnR1BSKCk7CiAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIgPSB2YWx1
ZS5wYXlsb2FkR1BSKCk7CiAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Jc09iamVjdE9y
TnVsbCwgcmVzdWx0R1BSLCB2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKTsKKyAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25Jc09iamVjdCwgcmVzdWx0R1BSLCB2YWx1ZVRhZ0dQUiwg
dmFsdWVQYXlsb2FkR1BSKTsKICAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHQuZ3ByKCksIG5v
ZGUpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC00MjEyLDcgKzQyNDcsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgREZHX1RZUEVf
Q0hFQ0soSlNWYWx1ZVJlZ3ModGFnR1BSLCBwYXlsb2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNw
ZWNDZWxsLCBpc05vdENlbGwpOwogCiAgICAgICAgIGlmICghbm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZU9iamVjdCgpIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBTdHJpbmdV
c2UpIHsKLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdFN0cmluZyA9IGJyYW5jaE5v
dFN0cmluZyhwYXlsb2FkR1BSKTsKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdFN0
cmluZyA9IG1faml0LmJyYW5jaDgoCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVx
dWFsLCAKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhwYXlsb2FkR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgVHJ1c3RlZElt
bTMyKFN0cmluZ1R5cGUpKTsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gU3RyaW5nVXNlKQogICAgICAgICAgICAgICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVS
ZWdzKHRhZ0dQUiwgcGF5bG9hZEdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nLCBub3RT
dHJpbmcpOwogICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKG1faml0LnZtKCkt
PnNtYWxsU3RyaW5ncy5zdHJpbmdTdHJpbmcoKSksIHJlc3VsdEdQUik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBiZmI4M2Ex
OWMxMmU5NzlmYTRkMzZiNzczZjIzZDYxZmM3ZmE4MjFhLi4zZjE4NTU2NTdhMDNhMDM2NTAyZTU2
MmE2YTJjY2E1ZTI0MmY0MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTEzMDYsMTIgKzEzMDYsMjEgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEVxdWFsaXR5KE5vZGUqIG5vZGUpCiAgICAKICAgICBp
ZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQoKSkgewogICAg
ICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKG9wMUdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qo
b3AxR1BSKSk7CisgICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIp
LCBub2RlLT5jaGlsZDEoKSwgU3BlY09iamVjdCwgbV9qaXQuYnJhbmNoU3RydWN0dXJlUHRyKAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0
KCkpLCAKKyAgICAgICAgICAgICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkp
KTsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1
bmJveGVkQ2VsbChvcDJHUFIpLCBub2RlLT5jaGlsZDIoKSwgU3BlY09iamVjdCwgYnJhbmNoTm90
T2JqZWN0KG9wMkdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwo
b3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVy
ZVB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJl
LmdldCgpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAg
ICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwg
U3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMUdQUikpOworICAgICAgICAgICAgSlNWYWx1
ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNPYmplY3Qs
IG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6RXF1YWwsIAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQ
UiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgbV9qaXQu
dm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbm9kZS0+Y2hpbGQx
KCksCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Tm9uWmVybywgCkBAIC0xMzE5LDcgKzEzMjgsMTAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU9iamVjdEVxdWFsaXR5KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSkp
OwogCiAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6
dW5ib3hlZENlbGwob3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNPYmplY3QsIGJyYW5jaE5v
dE9iamVjdChvcDJHUFIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxs
KG9wMkdQUiksIG5vZGUtPmNoaWxkMigpLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1
cmVQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJl
SURPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJl
LmdldCgpKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwob3AyR1BSKSwgbm9kZS0+Y2hpbGQyKCksCiAgICAgICAgICAgICBtX2pp
dC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywg
CkBAIC0xMzUyLDEwICsxMzY0LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eShFZGdlIGxlZnRDaGlsZCwgRWRnZSByCiAKICAgICBp
ZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRWYWxpZCkgewogICAgICAgICBERkdf
VFlQRV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQ
UiksIGxlZnRDaGlsZCwgU3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMUdQUikpOworICAg
ICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCBT
cGVjT2JqZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAorICAgICAgICAgICAg
ICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3Ax
R1BSKSk7CisgICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBs
ZWZ0Q2hpbGQsIFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAg
ICAgICAgICAgICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChv
cDFHUFIpLCBsZWZ0Q2hpbGQsCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgCkBAIC0xMzcwLDEwICsxMzg4LDE2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamVjdE9yT3RoZXJFcXVh
bGl0eShFZGdlIGxlZnRDaGlsZCwgRWRnZSByCiAgICAgLy8gV2Uga25vdyB0aGF0IHdpdGhpbiB0
aGlzIGJyYW5jaCwgcmlnaHRDaGlsZCBtdXN0IGJlIGEgY2VsbC4gCiAgICAgaWYgKG1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50VmFsaWQpIHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0so
Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyhvcDJHUFIpLCByaWdodENoaWxkLCAoflNwZWNDZWxs
KSB8IFNwZWNPYmplY3QsIGJyYW5jaE5vdE9iamVjdChvcDJHUFIpKTsKKyAgICAgICAgICAgIEpT
VmFsdWVSZWdzKG9wMkdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwg
bV9qaXQuYnJhbmNoU3RydWN0dXJlUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpFcXVhbCwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AyR1BS
LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICBtX2ppdC52
bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBERkdf
VFlQRV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMkdQUiksIHJpZ2h0Q2hpbGQs
ICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9wMkdQUikpOworICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2VsbCkgfCBT
cGVjT2JqZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkVxdWFsLAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKG9wMkdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAg
ICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3Mob3AyR1BSKSwgcmlnaHRDaGlsZCwKICAgICAg
ICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpOb25aZXJvLCAKQEAgLTE0MzAsMTAgKzE0NTQsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVBlZXBIb2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkoRWRnZSBsZWZ0Q2hp
bGQKIAogICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludFZhbGlkKSB7CiAg
ICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwob3AxR1BSKSwgbGVmdENoaWxkLCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3Qob3Ax
R1BSKSk7CisgICAgICAgICAgICBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBs
ZWZ0Q2hpbGQsIFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigKKyAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisg
ICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICBKU1ZhbHVlU291
cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBsZWZ0Q2hpbGQsIFNwZWNPYmplY3QsIGJyYW5jaE5v
dE9iamVjdChvcDFHUFIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxs
KG9wMUdQUiksIGxlZnRDaGlsZCwgU3BlY09iamVjdCwgbV9qaXQuYnJhbmNoU3RydWN0dXJlUHRy
KAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zm
c2V0KCkpLAorICAgICAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQo
KSkpOwogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVu
Ym94ZWRDZWxsKG9wMUdQUiksIGxlZnRDaGlsZCwgCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hU
ZXN0OCgKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgCkBAIC0xNDQ4
LDEwICsxNDc4LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVj
dFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KEVkZ2UgbGVmdENoaWxkCiAgICAgLy8gV2Uga25vdyB0
aGF0IHdpdGhpbiB0aGlzIGJyYW5jaCwgcmlnaHRDaGlsZCBtdXN0IGJlIGEgY2VsbC4gCiAgICAg
aWYgKG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50VmFsaWQpIHsKICAgICAgICAgREZH
X1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICBKU1ZhbHVlUmVncyhvcDJHUFIpLCByaWdodENoaWxk
LCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIGJyYW5jaE5vdE9iamVjdChvcDJHUFIpKTsKKyAg
ICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMkdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwg
U3BlY09iamVjdCwgbV9qaXQuYnJhbmNoU3RydWN0dXJlUHRyKAorICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpFcXVhbCwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Mob3AyR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCAKKyAgICAgICAgICAg
ICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMkdQUiks
IHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwgYnJhbmNoTm90T2JqZWN0KG9w
MkdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyR1BSKSwgcmlnaHRDaGlsZCwgKH5T
cGVjQ2VsbCkgfCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksCisg
ICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3Mob3AyR1BSKSwgcmlnaHRD
aGlsZCwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpOb25aZXJvLCAKQEAgLTE1NzMsMTAgKzE2MDksMTYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KEVkZ2Ugbm9kZVVzZSkK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gYnJhbmNoTm90Q2VsbChKU1ZhbHVl
UmVncyh2YWx1ZUdQUikpOwogICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2lu
dFZhbGlkKSB7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVJl
Z3ModmFsdWVHUFIpLCBub2RlVXNlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIGJyYW5jaE5v
dE9iamVjdCh2YWx1ZUdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBu
b2RlVXNlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0
cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsCisgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFsdWVHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSksCisgICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdl
dCgpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAg
ICBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5vZGVVc2UsICh+U3BlY0NlbGwpIHwgU3BlY09iamVj
dCwgYnJhbmNoTm90T2JqZWN0KHZhbHVlR1BSKSk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyh2
YWx1ZUdQUiksIG5vZGVVc2UsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwgbV9qaXQuYnJhbmNo
U3RydWN0dXJlUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwKKyAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZUdQUiwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgbV9qaXQudm0oKS0+c3RyaW5n
U3RydWN0dXJlLmdldCgpKSk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNOb3RN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gCiAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgK
QEAgLTE3MTcsMTAgKzE3NTksMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdE9iamVjdE9y
T3RoZXJCcmFuY2goRWRnZSBub2RlVXNlLCBCYXNpY0Jsb2NrKiB0YWtlbiwgQmEKICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gYnJhbmNoTm90Q2VsbChKU1ZhbHVlUmVncyh2YWx1
ZUdQUikpOwogICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludElzU3RpbGxW
YWxpZCgpKSB7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgSlNWYWx1ZVJl
Z3ModmFsdWVHUFIpLCBub2RlVXNlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIGJyYW5jaE5v
dE9iamVjdCh2YWx1ZUdQUikpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBu
b2RlVXNlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIG1faml0LmJyYW5jaFN0cnVjdHVyZVB0
cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlE
T2Zmc2V0KCkpLAorICAgICAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5n
ZXQoKSkpOyAgICAgICAgICAgICAgICAKICAgICB9IGVsc2UgewogICAgICAgICBERkdfVFlQRV9D
SEVDSygKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9kZVVzZSwgKH5TcGVj
Q2VsbCkgfCBTcGVjT2JqZWN0LCBicmFuY2hOb3RPYmplY3QodmFsdWVHUFIpKTsKKyAgICAgICAg
ICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9kZVVzZSwgKH5TcGVjQ2VsbCkgfCBTcGVjT2Jq
ZWN0LCBtX2ppdC5icmFuY2hTdHJ1Y3R1cmVQdHIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2
YWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwKKyAgICAgICAgICAgICAgICBt
X2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKIAogICAgICAgICBKSVRDb21waWxl
cjo6SnVtcCBpc05vdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSBtX2ppdC5icmFuY2hUZXN0OCgK
ICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpaZXJvLCAKQEAgLTMyMzEsNyArMzI3OSwxMCBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIG9wMS51c2Uo
KTsKICAgICAgICAgCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFscmVhZHlQcmltaXRp
dmUgPSBicmFuY2hOb3RDZWxsKEpTVmFsdWVSZWdzKG9wMUdQUikpOwotICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBub3RQcmltaXRpdmUgPSBicmFuY2hJc09iamVjdChvcDFHUFIpOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RQcmltaXRpdmUgPSBtX2ppdC5icmFuY2hTdHJ1
Y3R1cmVQdHIoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIAorICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlE
T2Zmc2V0KCkpLCAKKyAgICAgICAgICAgIG1faml0LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQo
KSk7CiAgICAgICAgIAogICAgICAgICBhbHJlYWR5UHJpbWl0aXZlLmxpbmsoJm1faml0KTsKICAg
ICAgICAgbV9qaXQubW92ZShvcDFHUFIsIHJlc3VsdEdQUik7CkBAIC0zMjU2LDcgKzMzMDcsMTAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgZG9uZTsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpICYgU3BlY1N0cmluZykgewogICAgICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoMSA9IGJyYW5jaE5vdENlbGwoSlNWYWx1ZVJlZ3Mob3AxR1BSKSk7Ci0g
ICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGgyID0gYnJhbmNoTm90U3Ry
aW5nKG9wMUdQUik7CisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGgy
ID0gbV9qaXQuYnJhbmNoU3RydWN0dXJlUHRyKAorICAgICAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNz
KG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgbV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKTsKICAgICAgICAgICAgICAgICBt
X2ppdC5tb3ZlKG9wMUdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgICAgICAgICBkb25lID0gbV9q
aXQuanVtcCgpOwogICAgICAgICAgICAgICAgIHNsb3dQYXRoMS5saW5rKCZtX2ppdCk7CkBAIC00
MjA4LDM1ICs0MjYyLDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIERhdGFGb3JtYXRK
U0Jvb2xlYW4pOwogICAgICAgICBicmVhazsKICAgICB9Ci0KKyAgICAgICAgCiAgICAgY2FzZSBJ
c09iamVjdDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlKTsK
LQotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc05vdENlbGwgPSBicmFuY2hOb3RDZWxsKHZh
bHVlLmpzVmFsdWVSZWdzKCkpOwotCi0gICAgICAgIG1faml0LmNvbXBhcmU4KEpJVENvbXBpbGVy
OjpBYm92ZU9yRXF1YWwsCi0gICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyh2YWx1ZS5n
cHIoKSwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCi0gICAgICAgICAgICBUcnVzdGVk
SW1tMzIoT2JqZWN0VHlwZSksCi0gICAgICAgICAgICByZXN1bHQuZ3ByKCkpOwotICAgICAgICBt
X2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKLSAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKLQotICAgICAgICBpc05v
dENlbGwubGluaygmbV9qaXQpOwotICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1
ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKLQotICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKLSAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xl
YW4pOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOiB7
Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7CiAgICAgICAgIEdQUkZsdXNoZWRD
YWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3Vs
dC5ncHIoKTsKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Jc09iamVjdE9yTnVsbCwgcmVzdWx0R1BSLCB2YWx1ZUdQUik7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSXNPYmplY3QsIHJlc3VsdEdQUiwgdmFsdWVHUFIpOwog
ICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsK
ICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIERhdGFGb3JtYXRKU0Jv
b2xlYW4pOwogICAgICAgICBicmVhazsKQEAgLTQyNzAsNyArNDMwMywxMCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBERkdfVFlQRV9DSEVD
SyhKU1ZhbHVlU291cmNlKHZhbHVlR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNDZWxsLCBpc05v
dENlbGwpOwogCiAgICAgICAgIGlmICghbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU9i
amVjdCgpIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdFN0cmluZyA9IGJyYW5jaE5vdFN0cmluZyh2YWx1
ZUdQUik7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RTdHJpbmcgPSBtX2ppdC5i
cmFuY2g4KAorICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgCisgICAgICAg
ICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3ModmFsdWVHUFIsIEpTQ2VsbDo6dHlwZUluZm9U
eXBlT2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkp
OwogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2Up
CiAgICAgICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZSh2YWx1ZUdQUiks
IG5vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nLCBub3RTdHJpbmcpOwogICAgICAgICAgICAgbV9q
aXQubW92ZShUcnVzdGVkSW1tUHRyKG1faml0LnZtKCktPnNtYWxsU3RyaW5ncy5zdHJpbmdTdHJp
bmcoKSksIHJlc3VsdEdQUik7CkBAIC01MDQyLDcgKzUwNzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBqdW1wVG9FbmQuYXBwZW5kKG1f
aml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgdmFsdWVHUFIsIEdQUklu
Zm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogICAgICAgICBlbHNlIGlmIChjYWNoZWRUeXBl
TG9jYXRpb24tPm1fbGFzdFNlZW5UeXBlID09IFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGlzTm90Q2VsbCA9IGJyYW5jaE5vdENlbGwoSlNWYWx1ZVJlZ3Mo
dmFsdWVHUFIpKTsKLSAgICAgICAgICAgIGp1bXBUb0VuZC5hcHBlbmQoYnJhbmNoSXNTdHJpbmco
dmFsdWVHUFIpKTsKKyAgICAgICAgICAgIGp1bXBUb0VuZC5hcHBlbmQobV9qaXQuYnJhbmNoOChN
YWNyb0Fzc2VtYmxlcjo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHZhbHVlR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ1R5cGUpKSk7
CiAgICAgICAgICAgICBpc05vdENlbGwubGluaygmbV9qaXQpOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCAyZWJlYzMz
NDVlMTllMGU1NDViMzE4ZDUxNWVjYWYzYTc4YTgxYjM0Li5iNDMxM2JlYTJhYjdjZDNjODIzNWE2
ZDFjMmIzMmMzNGFhMmRhMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCkBAIC0xNTYsNyArMTU2LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBJc051bWJlcjoKICAgICBjYXNlIElz
U3RyaW5nOgogICAgIGNhc2UgSXNPYmplY3Q6Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAg
ICBjYXNlIElzRnVuY3Rpb246CiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgIGNhc2Ug
SW5zdGFuY2VPZjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKaW5kZXggYmJhMjI1NmYwMDgxZDNlODZhYzkzNzRmYjg2MGU1NGNiNzMzMjU5MS4u
ODZjOWYyY2Y5ZDM1MjRkZmFmOWJiMmM0YzQ5Zjc2NTQ0NjAzNjllYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTc2MSw5ICs3NjEs
NiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIElzT2JqZWN0OgogICAgICAgICAgICAgY29tcGls
ZUlzT2JqZWN0KCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJc09iamVjdE9y
TnVsbDoKLSAgICAgICAgICAgIGNvbXBpbGVJc09iamVjdE9yTnVsbCgpOwotICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgSXNGdW5jdGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVJc0Z1
bmN0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMwOTksNyArMzA5Niw5IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNo
b3IodmFsdWUpOwogICAgICAgICAgICAgTFZhbHVlIGlzU3RyaW5nUHJlZGljYXRlOwogICAgICAg
ICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSAmIFNwZWNTdHJpbmcpIHsK
LSAgICAgICAgICAgICAgICBpc1N0cmluZ1ByZWRpY2F0ZSA9IGlzU3RyaW5nKHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBpc1N0cmluZ1ByZWRpY2F0ZSA9IG1fb3V0LmVxdWFsKAorICAgICAgICAg
ICAgICAgICAgICBtX291dC5sb2FkMzIodmFsdWUsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlE
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgpLnN0cmluZ1N0cnVj
dHVyZS0+aWQoKSkpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgaXNTdHJp
bmdQcmVkaWNhdGUgPSBtX291dC5ib29sZWFuRmFsc2U7CiAgICAgICAgICAgICBtX291dC5icmFu
Y2goaXNTdHJpbmdQcmVkaWNhdGUsIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUobm90U3Ry
aW5nKSk7CkBAIC00MjA1LDI5ICs0MjA0LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICBzZXRCb29sZWFuKG1fb3V0
LnBoaShtX291dC5ib29sZWFuLCBub3RDZWxsUmVzdWx0LCBjZWxsUmVzdWx0KSk7CiAgICAgfQot
CisgICAgCiAgICAgdm9pZCBjb21waWxlSXNPYmplY3QoKQogICAgIHsKLSAgICAgICAgTFZhbHVl
IHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKLQotICAgICAgICBMQmFzaWNC
bG9jayBpc0NlbGxDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJJc09iamVjdCBjZWxsIGNh
c2UiKSk7Ci0gICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiSXNPYmplY3QgY29udGludWF0aW9uIikpOwotCi0gICAgICAgIFZhbHVlRnJvbUJs
b2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhbkZhbHNlKTsKLSAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1ZSksIHVuc3VyZShpc0NlbGxDYXNlKSwgdW5z
dXJlKGNvbnRpbnVhdGlvbikpOwotCi0gICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9v
dXQuYXBwZW5kVG8oaXNDZWxsQ2FzZSwgY29udGludWF0aW9uKTsKLSAgICAgICAgVmFsdWVGcm9t
QmxvY2sgY2VsbFJlc3VsdCA9IG1fb3V0LmFuY2hvcihpc09iamVjdCh2YWx1ZSkpOwotICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29u
dGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKG1fb3V0
LmJvb2xlYW4sIG5vdENlbGxSZXN1bHQsIGNlbGxSZXN1bHQpKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGNvbXBpbGVJc09iamVjdE9yTnVsbCgpCi0gICAgewogICAgICAgICBMVmFsdWUgcG9pbnRlclJl
c3VsdCA9IHZtQ2FsbCgKLSAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Jc09i
amVjdE9yTnVsbCksIG1fY2FsbEZyYW1lLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKTsK
KyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Jc09iamVjdCksIG1fY2FsbEZy
YW1lLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKTsKICAgICAgICAgc2V0Qm9vbGVhbiht
X291dC5ub3ROdWxsKHBvaW50ZXJSZXN1bHQpKTsKICAgICB9CiAgICAgCkBAIC01MTQ5LDcgKzUx
MzAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBmaWx0
ZXIsIGlzTm90T2JqZWN0KGNlbGwpKTsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlEID0gbV9v
dXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKTsKKyAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIGZpbHRl
ciwKKyAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0cnVjdHVyZUlELCBtX291dC5jb25zdEludDMy
KHZtKCkuc3RyaW5nU3RydWN0dXJlLT5pZCgpKSkpOwogICAgICAgICBzcGVjdWxhdGUoCiAgICAg
ICAgICAgICBCYWRUeXBlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2Uubm9kZSgpLAogICAgICAg
ICAgICAgbV9vdXQudGVzdE5vblplcm84KApAQCAtNTQ1OSw3ICs1NDQzLDEwIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDZWxsQ2FzZVNwZWN1bGF0ZXNPYmpl
Y3Q6CiAgICAgICAgICAgICBGVExfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAgICBqc1ZhbHVl
VmFsdWUodmFsdWUpLCBlZGdlLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIGlzTm90T2JqZWN0
KHZhbHVlKSk7CisgICAgICAgICAgICAgICAganNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgKH5T
cGVjQ2VsbCkgfCBTcGVjT2JqZWN0LAorICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKAorICAg
ICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIodmFsdWUsIG1faGVhcHMuSlNDZWxsX3N0cnVj
dHVyZUlEKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgpLnN0cmlu
Z1N0cnVjdHVyZS0+aWQoKSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIApAQCAtNjI4NSwyNSArNjI3MiwxNiBAQCBwcml2YXRlOgogICAgIAogICAgIExWYWx1ZSBp
c09iamVjdChMVmFsdWUgY2VsbCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX291dC5hYm92ZU9y
RXF1YWwoCi0gICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBl
SW5mb1R5cGUpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE9iamVjdFR5cGUpKTsKLSAg
ICB9Ci0KLSAgICBMVmFsdWUgaXNOb3RPYmplY3QoTFZhbHVlIGNlbGwpCi0gICAgewotICAgICAg
ICByZXR1cm4gbV9vdXQuYmVsb3coCi0gICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hl
YXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE9i
amVjdFR5cGUpKTsKLSAgICB9Ci0KLSAgICBMVmFsdWUgaXNOb3RTdHJpbmcoTFZhbHVlIGNlbGwp
Ci0gICAgewogICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwoCiAgICAgICAgICAgICBtX291
dC5sb2FkMzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLAogICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnQzMih2bSgpLnN0cmluZ1N0cnVjdHVyZS0+aWQoKSkpOwogICAgIH0KICAg
ICAKKyAgICBMVmFsdWUgaXNOb3RTdHJpbmcoTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBy
ZXR1cm4gaXNPYmplY3QoY2VsbCk7CisgICAgfQorICAgIAogICAgIExWYWx1ZSBpc1N0cmluZyhM
VmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKQEAgLTYzMTEs
NiArNjI4OSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgp
LnN0cmluZ1N0cnVjdHVyZS0+aWQoKSkpOwogICAgIH0KICAgICAKKyAgICBMVmFsdWUgaXNOb3RP
YmplY3QoTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICByZXR1cm4gaXNTdHJpbmcoY2VsbCk7
CisgICAgfQorICAgIAogICAgIExWYWx1ZSBpc0FycmF5VHlwZShMVmFsdWUgY2VsbCwgQXJyYXlN
b2RlIGFycmF5TW9kZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkg
ewpAQCAtNjUwNyw3ICs2NDkwLDExIEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzcGVjdWxh
dGVOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewotICAgICAgICBG
VExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNPYmplY3QsIGlzTm90
T2JqZWN0KGNlbGwpKTsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1Zh
bHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNPYmplY3QsIAorICAgICAgICAgICAgbV9vdXQuZXF1
YWwoCisgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0
cnVjdHVyZUlEKSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3RyaW5n
U3RydWN0dXJlLT5pZCgpKSkpOwogICAgICAgICBpZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdh
dGNocG9pbnRJc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjQ3NzJmYmM4NWE3ZTBlOWNhYWE3MzUxNjhi
OGFkMjA4MDQ5MjNlZC4uOWFiZjk0YjZjZTA4OTMwMTEzYTlkY2E1MTMzMTQ4NzY1NTIwNTJlMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX1NMT1dfT1AoZ3JlYXRl
cikKICAgICAgICAgREVGSU5FX1NMT1dfT1AoZ3JlYXRlcmVxKQogICAgICAgICBERUZJTkVfU0xP
V19PUChpc19mdW5jdGlvbikKLSAgICAgICAgREVGSU5FX1NMT1dfT1AoaXNfb2JqZWN0X29yX251
bGwpCisgICAgICAgIERFRklORV9TTE9XX09QKGlzX29iamVjdCkKICAgICAgICAgREVGSU5FX1NM
T1dfT1AodHlwZW9mKQogCiAgICAgICAgIERFRklORV9PUChvcF90b3VjaF9lbnRyeSkKQEAgLTIy
NSw3ICsyMjUsNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAg
IERFRklORV9PUChvcF9pc19ib29sZWFuKQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfbnVtYmVy
KQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfc3RyaW5nKQotICAgICAgICBERUZJTkVfT1Aob3Bf
aXNfb2JqZWN0KQogICAgICAgICBERUZJTkVfT1Aob3BfamVxX251bGwpCiAgICAgICAgIERFRklO
RV9PUChvcF9qZmFsc2UpCiAgICAgICAgIERFRklORV9PUChvcF9qbXApCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAppbmRleCAxNmRhNTU0ZTdkMGU0M2M1NzVlYWEwMTgxYzc1MmRiNzBmNjc3NzI4Li5k
ZDg2ZDhlZmQxOTAxN2I2MDVkOGRmYjZmN2I0MzQyN2RkMGRiMTdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKQEAgLTMwNyw3ICszMDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAg
ICAgICAgIHZvaWQgZW1pdExvYWREb3VibGUoaW50IGluZGV4LCBGUFJlZ2lzdGVySUQgdmFsdWUp
OwogICAgICAgICB2b2lkIGVtaXRMb2FkSW50MzJUb0RvdWJsZShpbnQgaW5kZXgsIEZQUmVnaXN0
ZXJJRCB2YWx1ZSk7Ci0gICAgICAgIEp1bXAgZW1pdEp1bXBJZkNlbGxPYmplY3QoUmVnaXN0ZXJJ
RCBjZWxsUmVnKTsKICAgICAgICAgSnVtcCBlbWl0SnVtcElmQ2VsbE5vdE9iamVjdChSZWdpc3Rl
cklEIGNlbGxSZWcpOwogCiAgICAgICAgIGVudW0gV3JpdGVCYXJyaWVyTW9kZSB7IFVuY29uZGl0
aW9uYWxXcml0ZUJhcnJpZXIsIFNob3VsZEZpbHRlckJhc2UsIFNob3VsZEZpbHRlclZhbHVlLCBT
aG91bGRGaWx0ZXJCYXNlQW5kVmFsdWUgfTsKQEAgLTQ5MCw3ICs0ODksNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2lzX2Jvb2xlYW4oSW5zdHJ1Y3Rpb24qKTsKICAg
ICAgICAgdm9pZCBlbWl0X29wX2lzX251bWJlcihJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfaXNfc3RyaW5nKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9p
c19vYmplY3QoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2plcV9udWxsKElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qZmFsc2UoSW5zdHJ1Y3Rpb24qKTsK
ICAgICAgICAgdm9pZCBlbWl0X29wX2ptcChJbnN0cnVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaAppbmRleCBkNjE2MTkyZDc1MWU4OTNjNTdjZTFhYWEzNTMyYjcy
NjU2MjBlMmIzLi43OTk2OWE2ZWFjYjA0Yjg1ZGVkYmVhMjliYmY2MTcyYTM3YTkzODA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNjg1LDExICs2ODUsNiBAQCBB
TFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0SnVtcFNsb3dUb0hvdChKdW1wIGp1bXAsIGludCBy
ZWxhdGl2ZU9mZnNldCkKICAgICBqdW1wLmxpbmtUbyhtX2xhYmVsc1ttX2J5dGVjb2RlT2Zmc2V0
ICsgcmVsYXRpdmVPZmZzZXRdLCB0aGlzKTsKIH0KIAotQUxXQVlTX0lOTElORSBKSVQ6Okp1bXAg
SklUOjplbWl0SnVtcElmQ2VsbE9iamVjdChSZWdpc3RlcklEIGNlbGxSZWcpCi17Ci0gICAgcmV0
dXJuIGJyYW5jaDgoQWJvdmVPckVxdWFsLCBBZGRyZXNzKGNlbGxSZWcsIEpTQ2VsbDo6dHlwZUlu
Zm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwotfQotCiBBTFdBWVNf
SU5MSU5FIEpJVDo6SnVtcCBKSVQ6OmVtaXRKdW1wSWZDZWxsTm90T2JqZWN0KFJlZ2lzdGVySUQg
Y2VsbFJlZykKIHsKICAgICByZXR1cm4gYnJhbmNoOChCZWxvdywgQWRkcmVzcyhjZWxsUmVnLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDAwYTIwZGMyZTBi
NWIyMTBiZGJmM2I5NTgyY2RlMmM5YWEwNDZiZTIuLjU4M2U1Mjk3MTBmOTI4ZjZhNTExM2FmNDk2
NDljY2YwYTk1ODRlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cApAQCAtMjI2LDI1ICsyMjYsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pc19zdHJpbmcoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRz
dCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2lzX29iamVjdChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQotewotICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwotICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7
Ci0KLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMCk7Ci0gICAgSnVtcCBp
c05vdENlbGwgPSBlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QwKTsKLQotICAgIGNvbXBhcmU4KEFi
b3ZlT3JFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihPYmplY3RUeXBlKSwgcmVnVDApOwotICAgIGVtaXRUYWdBc0Jvb2xJbW1l
ZGlhdGUocmVnVDApOwotICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKLQotICAgIGlzTm90Q2VsbC5s
aW5rKHRoaXMpOwotICAgIG1vdmUoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZWdUMCk7Ci0K
LSAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwot
fQotCiB2b2lkIEpJVDo6ZW1pdF9vcF90ZWFyX29mZl9hcmd1bWVudHMoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgYXJndW1lbnRzID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKQEAgLTI3OSw3ICsyNjAsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90
b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKHNyYywgcmVnVDApOwogICAgIAogICAgIEp1bXAgaXNJbW0gPSBlbWl0
SnVtcElmTm90SlNDZWxsKHJlZ1QwKTsKLSAgICBhZGRTbG93Q2FzZShlbWl0SnVtcElmQ2VsbE9i
amVjdChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwg
CisgICAgICAgIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAor
ICAgICAgICBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKICAgICBpc0ltbS5saW5rKHRo
aXMpOwogCiAgICAgaWYgKGRzdCAhPSBzcmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggYjc5ZGY3MWVkYWE4ODFjYjA3ZGI0OWQyMGVjN2Yx
ZDJjMWI2MmNkMC4uY2M4NTM0OTA0ODIzNDVkMDlmMTJlOTk3MWZmNzg3Y2E2NjgyYWY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMzMx
LDI0ICszMzEsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pc19zdHJpbmcoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogfQogCi12
b2lkIEpJVDo6ZW1pdF9vcF9pc19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKLXsKLSAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAg
ICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotCi0gICAgZW1p
dExvYWQodmFsdWUsIHJlZ1QxLCByZWdUMCk7Ci0gICAgSnVtcCBpc05vdENlbGwgPSBicmFuY2gz
MihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7Ci0KLSAg
ICBjb21wYXJlOChBYm92ZU9yRXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9U
eXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSksIHJlZ1QwKTsKLSAgICBKdW1w
IGRvbmUgPSBqdW1wKCk7Ci0KLSAgICBpc05vdENlbGwubGluayh0aGlzKTsKLSAgICBtb3ZlKFRy
dXN0ZWRJbW0zMigwKSwgcmVnVDApOwotCi0gICAgZG9uZS5saW5rKHRoaXMpOwotICAgIGVtaXRT
dG9yZUJvb2woZHN0LCByZWdUMCk7Ci19Ci0KIHZvaWQgSklUOjplbWl0X29wX3RlYXJfb2ZmX2Fy
Z3VtZW50cyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIFZpcnR1YWxS
ZWdpc3RlciBhcmd1bWVudHMgPSBWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCk7CkBAIC0zNjksNyArMzUxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fcHJp
bWl0aXZlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdExvYWQoc3Jj
LCByZWdUMSwgcmVnVDApOwogCiAgICAgSnVtcCBpc0ltbSA9IGJyYW5jaDMyKE5vdEVxdWFsLCBy
ZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKLSAgICBhZGRTbG93Q2FzZShl
bWl0SnVtcElmQ2VsbE9iamVjdChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihO
b3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgVHJ1
c3RlZEltbVB0cihtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgaXNJbW0ubGlu
ayh0aGlzKTsKIAogICAgIGlmIChkc3QgIT0gc3JjKQpAQCAtNjQyLDEyICs2MjQsMTIgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcFN0cmljdEVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IENvbXBpbGVPcFN0cmljdEVxVHkKICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwg
cmVnVDEsIHJlZ1QzKSk7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQmVsb3csIHJlZ1QxLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwogCi0gICAgLy8gSnVtcCB0byBhIHNs
b3cgY2FzZSBpZiBib3RoIGFyZSBzdHJpbmdzIG9yIHN5bWJvbHMgKG5vbiBvYmplY3QpLgorICAg
IC8vIEp1bXAgdG8gYSBzbG93IGNhc2UgaWYgYm90aCBhcmUgc3RyaW5ncy4KICAgICBKdW1wIG5v
dENlbGwgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSk7Ci0gICAgSnVtcCBmaXJzdElzT2JqZWN0ID0gZW1pdEp1bXBJZkNlbGxPYmplY3Qo
cmVnVDApOwotICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZDZWxsTm90T2JqZWN0KHJlZ1QyKSk7
CisgICAgSnVtcCBmaXJzdE5vdFN0cmluZyA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhy
ZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgVHJ1c3RlZEltbVB0cihtX3ZtLT5z
dHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hQdHIoRXF1YWws
IEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIFRydXN0ZWRJbW1Q
dHIobV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIG5vdENlbGwubGluayh0aGlz
KTsKLSAgICBmaXJzdElzT2JqZWN0LmxpbmsodGhpcyk7CisgICAgZmlyc3ROb3RTdHJpbmcubGlu
ayh0aGlzKTsKIAogICAgIC8vIFNpbXBseSBjb21wYXJlIHRoZSBwYXlsb2Fkcy4KICAgICBpZiAo
dHlwZSA9PSBPcFN0cmljdEVxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBhMTgyYzIxODllMzc1
NWI1ZTViNGQ2ZDMwNzQwNjcxZDQxYTRkNTg0Li5kZTQyODFjYjcyMDViMDhiYTA2ZGVhMDY1MDgy
NzQzYzY3YmQ2OTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNTc1LDcgKzU3NSw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCAwLCBwcm90b3R5cGUs
IFR5cGVJbmZvKEdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29u
c3QgSlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiBSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJs
ZWQoKTsgfQorICAgIHN0YXRpYyBib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoY29u
c3QgSlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFyZ3VtZW50
cykKQEAgLTY2Myw3ICs2NjMsNyBAQCBwcm90ZWN0ZWQ6CiB9OwogCiBjb25zdCBDbGFzc0luZm8g
R2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9iYWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5m
bywgJmdsb2JhbE9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdsb2JhbE9iamVjdCkg
fTsKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGlu
ZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91
dCB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmls
aW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmph
dmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQsIDAsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZv
cmVUaW1lb3V0IH07CiAKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBkNzFhM2VmZTc2ODlkZjlkZjVlODc5ZTYzZTgy
NDdhYzgwNDgzOTU3Li43NjgxNTgzZDY1ZjBhZDRmMjZmMDQyYTA5NjgxZmFjZGRhNDcwNmQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCkBAIC05ODMsMTEgKzk4MywxMiBAQCBfbGxpbnRfb3BfdHlwZW9mOgogICAgIGRpc3Bh
dGNoKDMpCiAKIAotX2xsaW50X29wX2lzX29iamVjdF9vcl9udWxsOgorX2xsaW50X29wX2lzX29i
amVjdDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhf
aXNfb2JqZWN0X29yX251bGwpCisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfaXNfb2JqZWN0
KQogICAgIGRpc3BhdGNoKDMpCiAKKwogX2xsaW50X29wX2lzX2Z1bmN0aW9uOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9pc19mdW5jdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KaW5kZXggNjMxOTZjNjQyM2U0NTFjM2MyODc0M2JkMjgzMWM0OGNiOWQzYzIw
OC4uODBhMjU1MTg2MmI4MDI0OTEzYTU2MjQ3ZjVkMzYyMmQ3Nzg5MTNjMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KQEAgLTk1MiwxMCArOTUyLDEwIEBAIG1hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0
aW9uLCBzbG93UGF0aCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MCwgdDIsIHQw
KQogICAgIGJpbmVxIHQyLCB0MywgLnNsb3cKICAgICBiaWIgdDIsIExvd2VzdFRhZywgLnNsb3cK
LSAgICBiaW5lcSB0MiwgQ2VsbFRhZywgLm5vdFN0cmluZ09yU3ltYm9sCi0gICAgYmJhZXEgSlND
ZWxsOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAubm90U3RyaW5nT3JTeW1ib2wKLSAgICBiYmIg
SlNDZWxsOjptX3R5cGVbdDFdLCBPYmplY3RUeXBlLCAuc2xvdwotLm5vdFN0cmluZ09yU3ltYm9s
OgorICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAubm90U3RyaW5nCisgICAgYmJuZXEgSlNDZWxsOjpt
X3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAubm90U3RyaW5nCisgICAgYmJlcSBKU0NlbGw6Om1fdHlw
ZVt0MV0sIFN0cmluZ1R5cGUsIC5zbG93Cisubm90U3RyaW5nOgogICAgIGxvYWRpIDRbUENdLCB0
MgogICAgIGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCiAgICAgc3RvcmVpIEJvb2xlYW5U
YWcsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQpAQCAtMTMzMywyMSArMTMzMyw2IEBAIF9sbGludF9v
cF9pc19zdHJpbmc6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfaXNfb2JqZWN0Ogot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkaSA4W1BDXSwgdDEKLSAgICBsb2FkaSA0W1BD
XSwgdDIKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCwgdDMpCi0gICAgc3RvcmVp
IEJvb2xlYW5UYWcsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQotICAgIGJpbmVxIHQwLCBDZWxsVGFn
LCAub3BJc09iamVjdE5vdENlbGwKLSAgICBjYmFlcSBKU0NlbGw6Om1fdHlwZVt0M10sIE9iamVj
dFR5cGUsIHQxCi0gICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCi0gICAg
ZGlzcGF0Y2goMykKLS5vcElzT2JqZWN0Tm90Q2VsbDoKLSAgICBzdG9yZXAgMCwgUGF5bG9hZE9m
ZnNldFtjZnIsIHQyLCA4XQotICAgIGRpc3BhdGNoKDMpCi0KLQogbWFjcm8gbG9hZFByb3BlcnR5
QXRWYXJpYWJsZU9mZnNldEtub3duTm90SW5saW5lKHByb3BlcnR5T2Zmc2V0LCBvYmplY3RBbmRT
dG9yYWdlLCB0YWcsIHBheWxvYWQpCiAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHByb3Bl
cnR5T2Zmc2V0LCBmaXJzdE91dE9mTGluZU9mZnNldCwgb2sgZW5kKQogICAgIG5lZ2kgcHJvcGVy
dHlPZmZzZXQKQEAgLTE5OTEsNyArMTk3Niw3IEBAIF9sbGludF9vcF90b19wcmltaXRpdmU6CiAg
ICAgbG9hZGkgNFtQQ10sIHQzCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEsIHQw
KQogICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BUb1ByaW1pdGl2ZUlzSW1tCi0gICAgYmJhZXEg
SlNDZWxsOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCisg
ICAgYmJuZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAub3BUb1ByaW1pdGl2ZVNs
b3dDYXNlCiAub3BUb1ByaW1pdGl2ZUlzSW1tOgogICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W2Nm
ciwgdDMsIDhdCiAgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IGYyMGE4ZTFkY2RhZTAwZDVjNWRhNjUzMmNlMWM0ZDZiMTQwMGQwYTQuLmI4NjJm
OTNiMTViYjIyYmRjOTE5YTNhNTRmZDg5MWI2NTFlMDUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjA2
LDIxICsxMjA2LDYgQEAgX2xsaW50X29wX2lzX3N0cmluZzoKICAgICBkaXNwYXRjaCgzKQogCiAK
LV9sbGludF9vcF9pc19vYmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpc0Zy
b21JbnN0cnVjdGlvbigyLCB0MSkKLSAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCi0g
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCi0gICAgYnRxbnogdDAsIHRhZ01hc2ss
IC5vcElzT2JqZWN0Tm90Q2VsbAotICAgIGNiYWVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgT2JqZWN0
VHlwZSwgdDEKLSAgICBvcnEgVmFsdWVGYWxzZSwgdDEKLSAgICBzdG9yZXEgdDEsIFtjZnIsIHQy
LCA4XQotICAgIGRpc3BhdGNoKDMpCi0ub3BJc09iamVjdE5vdENlbGw6Ci0gICAgc3RvcmVxIFZh
bHVlRmFsc2UsIFtjZnIsIHQyLCA4XQotICAgIGRpc3BhdGNoKDMpCi0KLQogbWFjcm8gbG9hZFBy
b3BlcnR5QXRWYXJpYWJsZU9mZnNldChwcm9wZXJ0eU9mZnNldEFzSW50LCBvYmplY3RBbmRTdG9y
YWdlLCB2YWx1ZSkKICAgICBiaWx0IHByb3BlcnR5T2Zmc2V0QXNJbnQsIGZpcnN0T3V0T2ZMaW5l
T2Zmc2V0LCAuaXNJbmxpbmUKICAgICBsb2FkcCBKU09iamVjdDo6bV9idXR0ZXJmbHlbb2JqZWN0
QW5kU3RvcmFnZV0sIG9iamVjdEFuZFN0b3JhZ2UKQEAgLTE4NDksNyArMTgzNCw3IEBAIF9sbGlu
dF9vcF90b19wcmltaXRpdmU6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQogICAgIGJ0cW56IHQwLCB0YWdNYXNrLCAu
b3BUb1ByaW1pdGl2ZUlzSW1tCi0gICAgYmJhZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBPYmplY3RU
eXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCisgICAgYmJuZXEgSlNDZWxsOjptX3R5cGVbdDBd
LCBTdHJpbmdUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCiAub3BUb1ByaW1pdGl2ZUlzSW1t
OgogICAgIHN0b3JlcSB0MCwgW2NmciwgdDMsIDhdCiAgICAgZGlzcGF0Y2goMykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IDcy
N2FhOTAwZjQ0MTg4YjAzMTY4OWUxMGUyYzY2MDE5YmU1ODg3MTUuLmRmYjk0MTIxNjkwZGMzN2U2
MDE1NjU0YmViYWQ3NDA0ZDFjMzYzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtNDU1LDEwICs0NTUsMTAgQEAgU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX3R5cGVvZikKICAgICBSRVRVUk4oanNUeXBlU3RyaW5nRm9yVmFs
dWUoZXhlYywgT1BfQygyKS5qc1ZhbHVlKCkpKTsKIH0KIAotU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2lzX29iamVjdF9vcl9udWxsKQorU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2lzX29iamVj
dCkKIHsKICAgICBCRUdJTigpOwotICAgIFJFVFVSTihqc0Jvb2xlYW4oanNJc09iamVjdFR5cGVP
ck51bGwoZXhlYywgT1BfQygyKS5qc1ZhbHVlKCkpKSk7CisgICAgUkVUVVJOKGpzQm9vbGVhbihq
c0lzT2JqZWN0VHlwZShleGVjLCBPUF9DKDIpLmpzVmFsdWUoKSkpKTsKIH0KIAogU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2lzX2Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCA3MGFhZDIwMTgwNmZkODc3ZWU3MzU0YjE0
ZDY2ZWYxMWIyYWEwMzA1Li5iZmU0ODNkZjZmOThiZjE1YzdkZjUwNmUxNGYyN2ZhZmQzNmE3NWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
aApAQCAtMjE0LDcgKzIxNCw2IEBAIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYml0
b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9iaXR4b3IpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2YpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9pc19vYmplY3QpOwotU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19v
YmplY3Rfb3JfbnVsbCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2lzX2Z1bmN0
aW9uKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW4pOwogU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA5YjZiZWVmOGUxY2Q1OWEwNDIz
MGYyOWQwMThhZWYwN2E1ODcxOGU2Li5iYjc1NDkyYzU2ODNhYzY1YmJiOTk3OWRjMGQ4ODVhZTFj
MTYwOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENs
YXNzSW5mbyBKU0dsb2JhbE9iamVjdDo6c19pbmZvID0geyAiR2xvYmFsT2JqZWN0IiwgJkJhc2U6
OnNfaW5mbywgJmdsb2JhbE9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTR2xvYmFs
T2JqZWN0KSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVj
dDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBw
b3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRT
Y3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
QmVmb3JlVGltZW91dCB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxP
YmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAm
c3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0LCAmamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgMCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQgfTsKIAogLyogU291cmNlIGZvciBKU0dsb2JhbE9iamVj
dC5sdXQuaAogQGJlZ2luIGdsb2JhbE9iamVjdFRhYmxlCkBAIC0xNzMsNyArMTczLDcgQEAgSlNH
bG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IEdsb2JhbE9iamVjdE0KICAgICAsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludChhZG9w
dFJlZihuZXcgV2F0Y2hwb2ludFNldChJc1dhdGNoZWQpKSkKICAgICAsIG1fd2Vha1JhbmRvbShP
cHRpb25zOjpmb3JjZVdlYWtSYW5kb21TZWVkKCkgPyBPcHRpb25zOjpmb3JjZWRXZWFrUmFuZG9t
U2VlZCgpIDogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQogICAgICwgbV9ldmFsRW5hYmxl
ZCh0cnVlKQotICAgICwgbV9ydW50aW1lRmxhZ3MoKQorICAgICwgbV9leHBlcmltZW50c0VuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX2NvbnNvbGVDbGllbnQobnVsbHB0cikKICAgICAsIG1fZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUoZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPyBnbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSA6ICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQogewpAQCAtMzczLDEwICsz
NzMsNyBAQCBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YwogcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3Rv
ciwgRG9udEVudW0pOyBcCiAKICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJTl9UWVBFX1dJVEhf
Q09OU1RSVUNUT1IoUFVUX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRSkKLQotICAgIGlmICht
X3J1bnRpbWVGbGFncy5pc1N5bWJvbEVuYWJsZWQoKSkKLSAgICAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlN5bWJvbCwgc3ltYm9sQ29uc3RydWN0
b3IsIERvbnRFbnVtKTsKLQorICAgIAogI3VuZGVmIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExF
X1RZUEUKICAgICBQcm90b3R5cGVNYXAmIHByb3RvdHlwZU1hcCA9IHZtLnByb3RvdHlwZU1hcDsK
ICAgICBTdHJ1Y3R1cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gcHJvdG90eXBlTWFwLmVt
cHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBK
U0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CkBAIC00MzksNyArNDM2LDcg
QEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05h
bWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBtX2NvbnNvbGVTdHJ1Y3R1cmUuc2V0KHZt
LCB0aGlzLCBKU0NvbnNvbGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgY29uc29sZVByb3Rv
dHlwZSkpOwogICAgIEpTQ29uc29sZSogY29uc29sZU9iamVjdCA9IEpTQ29uc29sZTo6Y3JlYXRl
KHZtLCBtX2NvbnNvbGVTdHJ1Y3R1cmUuZ2V0KCkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCBJZGVudGlmaWVyKGV4ZWMsICJjb25zb2xlIiksIGNvbnNvbGVPYmplY3QsIERv
bnRFbnVtKTsKLQorICAgIAogICAgIHJlc2V0UHJvdG90eXBlKHZtLCBwcm90b3R5cGUoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDQxYWFmOTYzZDdkNGM3MWI4YTc2OWZkMDQxMTZlMGE5YzU5OTNhOWEuLmNhYzg0NzA4OWFk
NGU3YWZjNzMzOTMzOGVkYWVmNWRlMTU4MjRlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
IkpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU1dlYWtPYmplY3RNYXBS
ZWZJbnRlcm5hbC5oIgogI2luY2x1ZGUgIk51bWJlclByb3RvdHlwZS5oIgotI2luY2x1ZGUgIlJ1
bnRpbWVGbGFncy5oIgogI2luY2x1ZGUgIlNwZWNpYWxQb2ludGVyLmgiCiAjaW5jbHVkZSAiU3Ry
aW5nUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hhaW4uaCIKQEAgLTg3LDE1ICs4
NiwxMyBAQCBzdHJ1Y3QgQWN0aXZhdGlvblN0YWNrTm9kZTsKIHN0cnVjdCBIYXNoVGFibGU7CiAK
ICNkZWZpbmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFtZSwgbG93ZXJO
YW1lKSBtYWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAjIyB1cHBlck5h
bWUsIHVwcGVyTmFtZSkKLQotI2RlZmluZSBGT1JfRUFDSF9FWFBFUklNRU5UQUxfQlVJTFRJTl9U
WVBFX1dJVEhfQ09OU1RSVUNUT1IobWFjcm8pIFwKLSAgICBtYWNybyhTeW1ib2wsIHN5bWJvbCwg
c3ltYm9sT2JqZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCkgXAotCisgICAgCiAjZGVmaW5lIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEVfV0lUSF9DT05TVFJVQ1RPUihtYWNybykgXAogICAg
IG1hY3JvKFNldCwgc2V0LCBzZXQsIEpTU2V0LCBTZXQpIFwKICAgICBtYWNybyhNYXAsIG1hcCwg
bWFwLCBKU01hcCwgTWFwKSBcCiAgICAgbWFjcm8oRGF0ZSwgZGF0ZSwgZGF0ZSwgRGF0ZUluc3Rh
bmNlLCBEYXRlKSBcCiAgICAgbWFjcm8oU3RyaW5nLCBzdHJpbmcsIHN0cmluZ09iamVjdCwgU3Ry
aW5nT2JqZWN0LCBTdHJpbmcpIFwKKyAgICBtYWNybyhTeW1ib2wsIHN5bWJvbCwgc3ltYm9sT2Jq
ZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCkgXAogICAgIG1hY3JvKEJvb2xlYW4sIGJvb2xlYW4s
IGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmplY3QsIEJvb2xlYW4pIFwKICAgICBtYWNybyhOdW1i
ZXIsIG51bWJlciwgbnVtYmVyT2JqZWN0LCBOdW1iZXJPYmplY3QsIE51bWJlcikgXAogICAgIG1h
Y3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2UsIEVycm9yKSBcCkBAIC0xMDQs
NyArMTAxLDYgQEAgc3RydWN0IEhhc2hUYWJsZTsKIAogI2RlZmluZSBGT1JfRUFDSF9TSU1QTEVf
QlVJTFRJTl9UWVBFKG1hY3JvKSBcCiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRV9X
SVRIX0NPTlNUUlVDVE9SKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfRVhQRVJJTUVOVEFMX0JVSUxU
SU5fVFlQRV9XSVRIX0NPTlNUUlVDVE9SKG1hY3JvKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JV
SUxUSU4obWFjcm8sIEFycmF5SXRlcmF0b3IsIGFycmF5SXRlcmF0b3IpIFwKICAgICBERUZJTkVf
U1RBTkRBUkRfQlVJTFRJTihtYWNybywgQXJndW1lbnRzSXRlcmF0b3IsIGFyZ3VtZW50c0l0ZXJh
dG9yKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIE1hcEl0ZXJhdG9yLCBt
YXBJdGVyYXRvcikgXApAQCAtMTM1LDggKzEzMSw4IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSB7CiAgICAgdHlwZWRlZiBib29sICgqU2hvdWxkSW50ZXJydXB0U2NyaXB0RnVuY3Rp
b25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgU2hvdWxkSW50ZXJydXB0U2NyaXB0
RnVuY3Rpb25QdHIgc2hvdWxkSW50ZXJydXB0U2NyaXB0OwogCi0gICAgdHlwZWRlZiBSdW50aW1l
RmxhZ3MgKCpKYXZhU2NyaXB0UnVudGltZUZsYWdzRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFs
T2JqZWN0Kik7Ci0gICAgSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0Z1bmN0aW9uUHRyIGphdmFTY3Jp
cHRSdW50aW1lRmxhZ3M7CisgICAgdHlwZWRlZiBib29sICgqSmF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZEZ1bmN0aW9uUHRyKShjb25zdCBKU0dsb2JhbE9iamVjdCopOworICAgIEphdmFTY3Jp
cHRFeHBlcmltZW50c0VuYWJsZWRGdW5jdGlvblB0ciBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkOwogCiAgICAgdHlwZWRlZiB2b2lkICgqUXVldWVUYXNrVG9FdmVudExvb3BGdW5jdGlvblB0
cikoY29uc3QgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPE1pY3JvdGFzaz4pOwogICAgIFF1
ZXVlVGFza1RvRXZlbnRMb29wRnVuY3Rpb25QdHIgcXVldWVUYXNrVG9FdmVudExvb3A7CkBAIC0y
NzcsNyArMjczLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBtX2V2YWxFbmFibGVkOwogICAg
IFN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKLSAgICBSdW50aW1lRmxhZ3MgbV9y
dW50aW1lRmxhZ3M7CisgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxlZDsKICAgICBDb25zb2xl
Q2xpZW50KiBtX2NvbnNvbGVDbGllbnQ7CiAKICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpAQCAt
MzEzLDcgKzMwOSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICAgICAgc3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCh2bSwgdGhp
cyk7Ci0gICAgICAgIG1fcnVudGltZUZsYWdzID0gbV9nbG9iYWxPYmplY3RNZXRob2RUYWJsZS0+
amF2YVNjcmlwdFJ1bnRpbWVGbGFncyh0aGlzKTsKKyAgICAgICAgbV9leHBlcmltZW50c0VuYWJs
ZWQgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlLT5qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkKHRoaXMpOwogICAgICAgICBpbml0KHZtKTsKICAgICAgICAgc2V0R2xvYmFsVGhpcyh2bSwg
SlNQcm94eTo6Y3JlYXRlKHZtLCBKU1Byb3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHBy
b3RvdHlwZSgpLCBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSksIHRoaXMpKTsKICAgICB9CkBAIC0z
MjIsNyArMzE4LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgICAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KHZtLCB0aGlz
KTsKLSAgICAgICAgbV9ydW50aW1lRmxhZ3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlLT5q
YXZhU2NyaXB0UnVudGltZUZsYWdzKHRoaXMpOworICAgICAgICBtX2V4cGVyaW1lbnRzRW5hYmxl
ZCA9IG1fZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUtPmphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJs
ZWQodGhpcyk7CiAgICAgICAgIGluaXQodm0pOwogICAgICAgICBzZXRHbG9iYWxUaGlzKHZtLCB0
aGlzVmFsdWUpOwogICAgIH0KQEAgLTU1MCw3ICs1NDYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmplY3QqKSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3Rh
dGljIFJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KikgeyByZXR1cm4gUnVudGltZUZsYWdzKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBqYXZhU2Ny
aXB0RXhwZXJpbWVudHNFbmFibGVkKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZvaWQgcXVldWVNaWNyb3Rhc2soUGFzc1JlZlB0cjxNaWNyb3Rhc2s+KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAppbmRleCA1
ZDZhZDAxODA3YTRmMmE5MDQ4NjYwMDNjZWRiMjc2MjgzZTc3YjQ1Li4wYzljY2I2ZTM5ZGQxMmRj
MGVhNjBkOWRjYWQzOGQ4NDZjNGExOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmNwcApAQCAtODUsNyArODUsNyBAQCBKU1ZhbHVlIGpzVHlwZVN0cmlu
Z0ZvclZhbHVlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpCiAgICAgcmV0dXJuIGpz
VHlwZVN0cmluZ0ZvclZhbHVlKGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIHYpOwogfQogCi1ib29sIGpzSXNPYmplY3RUeXBlT3JOdWxsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpCitib29sIGpzSXNPYmplY3RUeXBlKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1ZhbHVlIHYpCiB7CiAgICAgaWYgKCF2LmlzQ2VsbCgpKQogICAgICAgICBy
ZXR1cm4gdi5pc051bGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlv
bnMuaAppbmRleCBhYzQ3YzhmOWNkN2I0YjI3MDk5MzQ0ZjhkZWRjNTI4MzU0ZjY2OTEzLi5iYjgy
Y2I2NDYyYzc2YjI0MWYyNDg1MjI0NTllMmI1MTk5NmY5ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogTkVWRVJfSU5MSU5FIEpTVmFsdWUganNBZGRTbG93Q2FzZShDYWxsRnJhbWUqLCBKU1Zh
bHVlLCBKU1ZhbHVlKTsKIEpTVmFsdWUganNUeXBlU3RyaW5nRm9yVmFsdWUoQ2FsbEZyYW1lKiwg
SlNWYWx1ZSk7CiBKU1ZhbHVlIGpzVHlwZVN0cmluZ0ZvclZhbHVlKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlKTsKLWJvb2wganNJc09iamVjdFR5cGVPck51bGwoQ2FsbEZyYW1lKiwgSlNW
YWx1ZSk7Citib29sIGpzSXNPYmplY3RUeXBlKENhbGxGcmFtZSosIEpTVmFsdWUpOwogYm9vbCBq
c0lzRnVuY3Rpb25UeXBlKEpTVmFsdWUpOwogCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNTdHJp
bmcoRXhlY1N0YXRlKiBleGVjLCBKU1N0cmluZyogczEsIEpTU3RyaW5nKiBzMikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1J1bnRpbWVGbGFncy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUnVudGltZUZsYWdzLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIwYjViMzc1NTVlZDEzOWJjYjljMjliYWYxNWQ2YmYyN2FiNjhkZGQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUnVudGltZUZsYWdzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4uCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVudGltZUZsYWdzX2gKLSNkZWZp
bmUgUnVudGltZUZsYWdzX2gKLQotI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0KLW5hbWVz
cGFjZSBKU0MgewotCi0jZGVmaW5lIEpTQ19SVU5USU1FX0ZMQUcobWFjcm8pIFwKLSAgICBtYWNy
byhTeW1ib2xFbmFibGVkKQotCi0KLWNsYXNzIFJ1bnRpbWVGbGFncyB7Ci1wcml2YXRlOgotICAg
IGVudW0gUnVudGltZUZsYWdTaGlmdFZhbHVlIDogdW5zaWduZWQgewotI2RlZmluZSBKU0NfREVD
TEFSRV9SVU5USU1FX0ZMQUdfU0hJRlRfVkFMVUUobmFtZSkgc2hpZnRWYWx1ZUZvciMjbmFtZSwK
LSAgICAgICAgSlNDX1JVTlRJTUVfRkxBRyhKU0NfREVDTEFSRV9SVU5USU1FX0ZMQUdfU0hJRlRf
VkFMVUUpCi0jdW5kZWYgSlNDX0RFQ0xBUkVfUlVOVElNRV9GTEFHX1NISUZUX1ZBTFVFCi0gICAg
fTsKLQotcHVibGljOgotICAgIGVudW0gUnVudGltZUZsYWcgOiB1bnNpZ25lZCB7Ci0jZGVmaW5l
IEpTQ19ERUNMQVJFX1JVTlRJTUVfRkxBRyhuYW1lKSBuYW1lID0gMXUgPDwgKHNoaWZ0VmFsdWVG
b3IjI25hbWUpLAotICAgICAgICBKU0NfUlVOVElNRV9GTEFHKEpTQ19ERUNMQVJFX1JVTlRJTUVf
RkxBRykKLSN1bmRlZiBKU0NfREVDTEFSRV9SVU5USU1FX0ZMQUcKLSAgICB9OwotCi0jZGVmaW5l
IEpTQ19ERUNMQVJFX1JVTlRJTUVfRkxBR19BQ0NFU1NPUihuYW1lKSBcCi0gICAgdm9pZCBzZXQj
I25hbWUoYm9vbCB2YWx1ZSlcCi0gICAge1wKLSAgICAgICAgaWYgKHZhbHVlKVwKLSAgICAgICAg
ICAgIG1fZmxhZ3MgfD0gbmFtZTtcCi0gICAgICAgIGVsc2VcCi0gICAgICAgICAgICBtX2ZsYWdz
ICY9ICh+bmFtZSk7XAotICAgIH1cCi0gICAgYm9vbCBpcyMjbmFtZSgpIGNvbnN0XAotICAgIHtc
Ci0gICAgICAgIHJldHVybiBtX2ZsYWdzICYgbmFtZTtcCi0gICAgfQotICAgIEpTQ19SVU5USU1F
X0ZMQUcoSlNDX0RFQ0xBUkVfUlVOVElNRV9GTEFHX0FDQ0VTU09SKQotI3VuZGVmIEpTQ19ERUNM
QVJFX1JVTlRJTUVfRkxBR19BQ0NFU1NPUgotCi0gICAgUnVudGltZUZsYWdzKCkKLSAgICAgICAg
OiBSdW50aW1lRmxhZ3MoMHUpCi0gICAgewotICAgIH0KLQotICAgIFJ1bnRpbWVGbGFncyhzdGQ6
OmluaXRpYWxpemVyX2xpc3Q8UnVudGltZUZsYWc+IGluaXRpYWxpemVyTGlzdCkKLSAgICAgICAg
OiBSdW50aW1lRmxhZ3MoKQotICAgIHsKLSAgICAgICAgZm9yIChSdW50aW1lRmxhZyBmbGFnIDog
aW5pdGlhbGl6ZXJMaXN0KQotICAgICAgICAgICAgbV9mbGFncyB8PSBmbGFnOwotICAgIH0KLQot
ICAgIGV4cGxpY2l0IFJ1bnRpbWVGbGFncyh1bnNpZ25lZCBmbGFncykKLSAgICAgICAgOiBtX2Zs
YWdzKGZsYWdzKQotICAgIHsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUnVudGltZUZsYWdzIGNyZWF0
ZUFsbEVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSNkZWZpbmUgSlNDX1VTRV9S
VU5USU1FX0ZMQUcobmFtZSkgbmFtZSwKLSAgICAgICAgICAgIEpTQ19SVU5USU1FX0ZMQUcoSlND
X1VTRV9SVU5USU1FX0ZMQUcpCi0jdW5kZWYgSlNDX1VTRV9SVU5USU1FX0ZMQUcKLSAgICAgICAg
fTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV9mbGFnczsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gUnVudGltZUZsYWdzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUnVudGltZUZsYWdzLmggYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1J1bnRpbWVGbGFncy5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTQ0NDcxYzc1MTM1YTU2ODcyYmYwNTIzZDM4
OWU1NjY5MjNhZjRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUnVudGltZUZsYWdz
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfUnVu
dGltZUZsYWdzX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfUnVudGltZUZsYWdzX2gKLSNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIK
aW5kZXggZjEwNjc3YmU1MGVmNThlZTEyNjhkMTcxNDA4OTI4Nzg5MTg3ZDUxMS4uNTU2YjM2YzQz
MTM0YmJkZTkyMGE0Y2Q2Yjg0M2FmOGRhNDM2ZDdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0z
MzM1LDYgKzMzMzUsNyBAQCBfX1pON1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZUMyRVJOM0pTQzJW
TUVQTlMxXzlTdHJ1Y3R1cmVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOQogX19aTjdXZWJDb3JlMTdK
U0RPTUdsb2JhbE9iamVjdEMyRVJOM0pTQzJWTUVQTlMxXzlTdHJ1Y3R1cmVFTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfMTVET01XcmFwcGVyV29ybGRFRUVQS05TMV8yM0dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlRQogX19aTjdXZWJDb3JlMTVKU0RPTVdpbmRvd0Jhc2UxNGZpbmlzaENyZWF0aW9uRVJOM0pT
QzJWTUVQTlNfMTZKU0RPTVdpbmRvd1NoZWxsRQogX19aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9i
amVjdDE0ZmluaXNoQ3JlYXRpb25FUk4zSlNDMlZNRVBOUzFfOEpTT2JqZWN0RQorX19aTjdXZWJD
b3JlMTVKU0RPTVdpbmRvd0Jhc2UyOGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWRFUEtOM0pT
QzE0SlNHbG9iYWxPYmplY3RFCiBfX1pON1dlYkNvcmUxMmdjQ29udHJvbGxlckV2CiBfX1pON1dl
YkNvcmUxMkdDQ29udHJvbGxlcjE4Z2FyYmFnZUNvbGxlY3RTb29uRXYKIF9fWk4zSlNDNlN0cm9u
Z0lON1dlYkNvcmUxNkpTRE9NV2luZG93U2hlbGxFRUMyRVJOU18yVk1FUFMyXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggODNiYzJjMWVj
YjBjYzJlMmRlNzM0ZGFkODgwODVhMGYyZTAzNTQ4YS4uNThkMjdlY2QwYzUxYzNiOTcxYzA1Zjgy
ODg2NDFmYzhjNDU0NTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCkBAIC0xOTEzOCw3ICsxOTEzOCw2IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFByb3RvdHlwZUZ1bmN0aW9uLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XFJlZ0V4cC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxSZWdFeHBPYmplY3QuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcUnVudGltZUZsYWdzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0b3JhZ2VCYXJyaWVy
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50
aW1lXFN0cmluZ1Byb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJ1Y3R1cmUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA3
NmU5MDZkZWRkNDM5ZDVmZTMxMzVjZGYwYzA0ZjY1MmJjNjAwYjM5Li44NmYyM2UwNDIzMjMzYmQy
Y2ViYzYzYmQwZWQwY2NjNzAzYzkzZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMTYzMSw5ICsxMTYz
MSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50
aW1lXFByb3RlY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcUnVudGltZUZsYWdzLmgiPgotICAgICAgPEZpbHRlcj5G
b3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0cmluZ09i
amVjdC5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKaW5kZXggYmMwMmIxNTQxNjI3NGY1ZTU1MjQ5OTNiN2Q0YmQxZTVlNDIw
NjY3ZS4uZTVmYjQ0ZDA5ODI5YjZiNzhmNjM3ZjVjZDI0NTczZjc0ZWZlNzZiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9i
amVjdCogdGhpc09iamVjdCwgRXhlY1N0YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdp
bmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldpbmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZz
dXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlw
dFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dCB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01X
aW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nl
c3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hv
dWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgJnF1ZXVl
VGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCB9Owog
CiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29y
bGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0xNjksMTMgKzE2OSwxMyBAQCBi
b29sIEpTRE9NV2luZG93QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChj
b25zdCBKU0dsb2JhbE9iamVjdCogbwogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6c2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChvYmplY3QpOwogfQogCi1SdW50aW1lRmxhZ3Mg
SlNET01XaW5kb3dCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QpCitib29sIEpTRE9NV2luZG93QmFzZTo6amF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAgIGNvbnN0IEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpTRE9NV2luZG93QmFz
ZSo+KG9iamVjdCk7CiAgICAgRnJhbWUqIGZyYW1lID0gdGhpc09iamVjdC0+aW1wbCgpLmZyYW1l
KCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWVGbGFncygpOwotICAg
IHJldHVybiBmcmFtZS0+c2V0dGluZ3MoKS5qYXZhU2NyaXB0UnVudGltZUZsYWdzKCk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZnJhbWUtPnNldHRpbmdzKCkuamF2YVNjcmlw
dEV4cGVyaW1lbnRzRW5hYmxlZCgpOwogfQogCiB2b2lkIEpTRE9NV2luZG93QmFzZTo6cXVldWVU
YXNrVG9FdmVudExvb3AoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxN
aWNyb3Rhc2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5oCmluZGV4IGZiOGU2ZGIyNjE5YzlhZjY5MmYyOGUyODlkNWRjZDNhY2VkZTZiZjMuLjE3
MzJjOTliZGI1NjYwNDlkMmNjYTFjYjA3YTQwYWM0NmMyM2RiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC02NCw3ICs2NCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5m
byhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3Vs
ZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0
YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpSdW50aW1lRmxhZ3MgamF2YVNj
cmlwdFJ1bnRpbWVGbGFncyhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgICAgIHN0
YXRpYyBib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgICAgICBzdGF0aWMgdm9pZCBxdWV1ZVRhc2tUb0V2ZW50TG9vcChjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxKU0M6Ok1pY3JvdGFzaz4pOwogICAg
ICAgICAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcAppbmRleCBhYWE1ZGJhNTUxNzFjYjk1NDFiYTY1ZTFkMjQ3YWIyOWM5ZDlj
N2MzLi5lYzA4NWNjZTZmZDI2MDA3NTIxZWZlYWY2YTEwY2U0NjQyMmFlZTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
Y3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2luZm8gPSB7ICJXb3JrZXJHbG9iYWxTY29w
ZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
V29ya2VyR2xvYmFsU2NvcGVCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsg
JmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJj
ZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAm
cXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0
IH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBw
b3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRT
Y3JpcHQsICZqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkLCAmcXVldWVUYXNrVG9FdmVudExv
b3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0IH07CiAKIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gaW1wbCkK
ICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZub3JtYWxXb3JsZCh2bSks
ICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtOTIsOSArOTIsOSBAQCBib29sIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNv
bnN0IEpTR2xvYmFsTwogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6c2hvdWxkSW50ZXJydXB0
U2NyaXB0QmVmb3JlVGltZW91dChvYmplY3QpOwogfQogCi1SdW50aW1lRmxhZ3MgSlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U6OmphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNHbG9iYWxPYmpl
Y3QqIG9iamVjdCkKK2Jvb2wgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OmphdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWQoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1
cm4gSlNHbG9iYWxPYmplY3Q6OmphdmFTY3JpcHRSdW50aW1lRmxhZ3Mob2JqZWN0KTsKKyAgICBy
ZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQob2JqZWN0
KTsKIH0KIAogdm9pZCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6cXVldWVUYXNrVG9FdmVudExv
b3AoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxNaWNyb3Rhc2s+IHRh
c2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuaAppbmRleCAwMzE1MzBlZTU4NjEzOWZjNWFiNmY4Yjg4NTE0YjU4NDgxMWM3MmRl
Li5jZDA0YTFkMmM1ZWE5YjcyNzEwNTFiNWExNWQxMzhhZmVjZDY2MGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKQEAg
LTU3LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgICAgIHN0YXRpYyBKU0M6
OlJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICAgICAgc3RhdGljIGJvb2wgamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxl
ZChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHF1ZXVl
VGFza1RvRXZlbnRMb29wKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEpT
Qzo6TWljcm90YXNrPik7CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXgg
NDE1ZmY3YzM5YjM5ZTc5NzBiZjA3OWNlZTJjNmVjMWVjNWIxMzgwYi4uMzQ1YTczMjAxZjhkZWRh
NWU0NTdlODQ2YWYyNjRjODcxNWEyMjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAtMTIwLDkg
KzEyMCw2IEBAIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwoSW5zcGVjdG9yQ29udHJvbGxlcioKICAgICAsIG1fZG9ja1NpZGUoRG9ja1Np
ZGU6OlVuZG9ja2VkKQogewogICAgIG1fZnJvbnRlbmRQYWdlLT5zZXR0aW5ncygpLnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+c2V0dGlu
Z3MoKS5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHsKLSAgICAgICAgSlNDOjpSdW50aW1lRmxh
Z3M6OlN5bWJvbEVuYWJsZWQKLSAgICB9KTsKICAgICBtX2Rpc3BhdGNoVGFzayA9IHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzaz4oaW5zcGVjdG9yQ29udHJvbGxl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCAwNDgyM2FlY2Q4NTY4YTlmYzg2Mjc4
NDlhODZmNTc5YjA2MTZlZTM4Li44NWU5MDcxMTc5NzViZmQ5MGM3ZDdkNDEzMDg2OGJhNjg2ZGE1
ZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3NNYWNyb3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGNocm9ubz4K
LSNpbmNsdWRlIDxydW50aW1lL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXNj
cmlwdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDg2ZGYxOThkZGIwNjkyYjhhZTZmOTUw
ZDJhZDE4NWFkYjgyMGI4ZDQuLmExZjYyMzljMWZmYTVmZjA1NTdiOGRlMTJmMTdkOGQ4YWZkYjE0
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtNzMsNiArNzMsNyBAQCBzaG93c1VSTHNJ
blRvb2xUaXBzIGluaXRpYWw9ZmFsc2UKIHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IGlu
aXRpYWw9ZmFsc2UKIGZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgaW5pdGlhbD1mYWxzZQogZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitqYXZhU2NyaXB0RXhwZXJpbWVudHNF
bmFibGVkIGluaXRpYWw9ZmFsc2UKIHNjcmlwdE1hcmt1cEVuYWJsZWQgaW5pdGlhbD10cnVlCiBu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBpbml0aWFsPWZhbHNlCiBkb21UaW1lcnNUaHJvdHRsaW5n
RW5hYmxlZCBpbml0aWFsPXRydWUKQEAgLTg2LDcgKzg3LDYgQEAgY2FudmFzVXNlc0FjY2VsZXJh
dGVkRHJhd2luZyBpbml0aWFsPWZhbHNlCiBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIGluaXRp
YWw9ZmFsc2UKIGFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogdXNlTGVn
YWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRCZWhhdmlvciBpbml0aWFsPWZhbHNlCi1qYXZh
U2NyaXB0UnVudGltZUZsYWdzIHR5cGU9SlNDOjpSdW50aW1lRmxhZ3MKIAogIyBGSVhNRTogVGhp
cyBzaG91bGQgcmVhbGx5IGJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZv
cm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcwogIyB0aGV5
IGNhbid0IHVzZSBieS4gTGVhdmluZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlz
dGluZyBiZWhhdmlvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNE
aWN0aW9uYXJ5RXh0cmFzLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRGljdGlvbmFy
eUV4dHJhcy5oCmluZGV4IDA1NzMyMDI0YTg3YWQ4ZjY0OWNiODFiMzc0NjlhYmZlMjRjNzk0ZmQu
LjhhY2E0NGVjYjg0OWUxM2M3YWIzNWFmYzMzNjc3NzgwYjg5MzVkYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJOU0RpY3Rpb25hcnlFeHRyYXMuaApAQCAtNDQsNSArNDQsNyBA
QAogLSAodm9pZClfd2Via2l0X3NldEJvb2w6KEJPT0wpdmFsdWUgZm9yS2V5OihpZClrZXk7CiAt
ICh2b2lkKV93ZWJraXRfc2V0TG9uZ0xvbmc6KGxvbmcgbG9uZyl2YWx1ZSBmb3JLZXk6KGlkKWtl
eTsKIC0gKHZvaWQpX3dlYmtpdF9zZXRVbnNpZ25lZExvbmdMb25nOih1bnNpZ25lZCBsb25nIGxv
bmcpdmFsdWUgZm9yS2V5OihpZClrZXk7CisjaWYgUExBVEZPUk0oSU9TKQogLSAodm9pZClfd2Vi
a2l0X3NldFVuc2lnbmVkSW50Oih1bnNpZ25lZCl2YWx1ZSBmb3JLZXk6KGlkKWtleTsKKyNlbmRp
ZgogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0RpY3Rpb25h
cnlFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNEaWN0aW9uYXJ5RXh0cmFz
Lm0KaW5kZXggZjFhMWIwMzFjMDA3ODJkZjg4YjVhODRiMzdhZmRjM2M0YzMwODMwMS4uOTIzNjc0
YTQ4MzYwMjdiZWNiNjEwZDljMjdmN2VmNDM4OWFkM2NiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJOU0RpY3Rpb25hcnlFeHRyYXMubQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYk5TRGljdGlvbmFyeUV4dHJhcy5tCkBAIC0xMTgsMTIgKzExOCwxNCBAQCAt
ICh2b2lkKV93ZWJraXRfc2V0VW5zaWduZWRMb25nTG9uZzoodW5zaWduZWQgbG9uZyBsb25nKXZh
bHVlIGZvcktleTooaWQpa2V5CiAgICAgW29iamVjdCByZWxlYXNlXTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPUykKIC0gKHZvaWQpX3dlYmtpdF9zZXRVbnNpZ25lZEludDoodW5zaWduZWQpdmFsdWUg
Zm9yS2V5OihpZClrZXkKIHsKICAgICBOU051bWJlciAqb2JqZWN0ID0gW1tOU051bWJlciBhbGxv
Y10gaW5pdFdpdGhVbnNpZ25lZEludDp2YWx1ZV07CiAgICAgW3NlbGYgc2V0T2JqZWN0Om9iamVj
dCBmb3JLZXk6a2V5XTsKICAgICBbb2JqZWN0IHJlbGVhc2VdOwogfQorI2VuZGlmCiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyCmluZGV4IDcxNjIxNzJjZDYxMDc0ZDc1OTA4ZDNiYTQ1MWQz
ZTU2ZjNlZjU1ZmUuLjdhMjdiNzU4YzIwN2ZkZmY4N2QwMWY4YTJiYjMwZTQxZTNjYmNhZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXQub3JkZXIKQEAgLTI4Nyw2ICsyODcsNyBAQCBfX1o0Y29yZTQwV2ViVGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcgogLVtXZWJQcmVmZXJlbmNlcyhXZWJQ
cml2YXRlKSBzaG93c1VSTHNJblRvb2xUaXBzXQogLVtXZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRl
KSBzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dF0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJp
dmF0ZSkgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZF0KKy1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0
ZSkgamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZF0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJp
dmF0ZSkgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWRdCiAtW1dlYlByZWZlcmVuY2VzKFdlYlBy
aXZhdGUpIGFwcGxpY2F0aW9uQ2hyb21lTW9kZUVuYWJsZWRdCiAtW1dlYlByZWZlcmVuY2VzIHVz
ZXJTdHlsZVNoZWV0RW5hYmxlZF0KQEAgLTEyNDUsNiArMTI0Niw3IEBAIF9XS0NyZWF0ZVByaXZh
dGVTdG9yYWdlU2Vzc2lvbgogLVtXZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRlKSBzZXRUZXh0QXJl
YXNBcmVSZXNpemFibGU6XQogLVtXZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRlKSBzZXRKYXZhU2Ny
aXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOl0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0ZSkgc2V0
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOl0KKy1bV2ViUHJlZmVyZW5jZXMoV2Vi
UHJpdmF0ZSkgc2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZDpdCiAtW1dlYlByZWZlcmVu
Y2VzKFdlYlByaXZhdGUpIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVm
ZXJlbmNlOl0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0ZSkgc2V0RnJhbWVGbGF0dGVuaW5n
RW5hYmxlZDpdCiAtW1dlYlByZWZlcmVuY2VzKFdlYlByaXZhdGUpIHNldFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZDpdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBiZWVjMjMwMjBlMDdlYWZiY2QxOGIyZTE5ZGQ3YjAx
NmEyYjhmNjdiLi41NmIxOWI4MDNjNzQwZTg3ZWIxYmI3NmZiNzgwM2FhOThjNjZhNWUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgV2ViS2l0RlRQRGlyZWN0b3J5VGVtcGxh
dGVQYXRoIEAiV2ViS2l0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoIgogI2RlZmluZSBXZWJLaXRG
b3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIEAiV2ViS2l0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5n
cyIKICNkZWZpbmUgV2ViS2l0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXREZXZlbG9wZXJFeHRyYXNFbmFibGVkUHJlZmVyZW5jZUtleSIKLSNkZWZpbmUgV2ViS2l0
SmF2YVNjcmlwdFJ1bnRpbWVGbGFnc1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRKYXZhU2NyaXB0UnVu
dGltZUZsYWdzUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUgV2ViS2l0SmF2YVNjcmlwdEV4cGVyaW1l
bnRzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWRQcmVmZXJl
bmNlS2V5IgogI2RlZmluZSBXZWJLaXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkiCiAj
ZGVmaW5lIFdlYktpdFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkUHJlZmVyZW5jZUtleSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDY4OGUyNmJhYjA5YWIyODg3
YzYwOWEzNTEwYzc5YWU1ZTZjYTNmMjAuLjEzNjc5NTkyMTM4MTY0MjkyYzhiNjI1NDQ0MjM0NTBm
NzQ3ZmViMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtNDczLDcgKzQ3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldp
dGhJbnQ6Y2FjaGVNb2RlbEZvck1haW5CdW5kbGUoKV0sIFdlYktpdENhY2hlTW9kZWxQcmVmZXJl
bmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdFBh
Z2VDYWNoZVN1cHBvcnRzUGx1Z2luc1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZFByZWZlcmVu
Y2VLZXksCi0gICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6MF0sIFdlYktp
dEphdmFTY3JpcHRSdW50aW1lRmxhZ3NQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWRQ
cmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdl
YktpdEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRET01UaW1lcnNUaHJvdHRsaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10s
ICAgV2ViS2l0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWRQcmVmZXJlbmNlS2V5LApAQCAtNjY3
LDYgKzY2Nyw3IEBAIHB1YmxpYzoKICAgICBbc2VsZiBfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZE5v
dGlmaWNhdGlvbl07CiB9CiAKKyNpZiBQTEFURk9STShJT1MpCiAtICh1bnNpZ25lZCBpbnQpX3Vu
c2lnbmVkSW50VmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5CiB7CiAgICAgaWQgbyA9IFtzZWxm
IF92YWx1ZUZvcktleTprZXldOwpAQCAtNjc3LDE3ICs2NzgsMTQgQEAgcHVibGljOgogeyAgICBp
ZiAoW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6a2V5XSA9PSB2YWx1ZSkKICAgICAgICAg
cmV0dXJuOwogICAgIE5TU3RyaW5nICpfa2V5ID0gS0VZKGtleSk7Ci0jaWYgUExBVEZPUk0oSU9T
KQogICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUsIF57
Ci0jZW5kaWYKICAgICBbX3ByaXZhdGUtPnZhbHVlcy5nZXQoKSBfd2Via2l0X3NldFVuc2lnbmVk
SW50OnZhbHVlIGZvcktleTpfa2V5XTsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgfSk7Ci0jZW5k
aWYKICAgICBpZiAoX3ByaXZhdGUtPmF1dG9zYXZlcykKICAgICAgICAgW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRJbnQ6dmFsdWVdIGZvcktleTpfa2V5XTsKICAgICBbc2VsZiBfcG9zdFByZWZlcmVuY2Vz
Q2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CisjZW5kaWYKIAogLSAoZmxvYXQpX2Zsb2F0VmFsdWVG
b3JLZXk6KE5TU3RyaW5nICopa2V5CiB7CkBAIC0xMTg2LDE0ICsxMTg0LDE0IEBAIHB1YmxpYzoK
ICNlbmRpZgogfQogCi0tIChXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKWphdmFTY3JpcHRS
dW50aW1lRmxhZ3MKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZDooQk9P
TClmbGFnCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEphdmFTY3JpcHRSdW50aW1l
RmxhZ3M+KFtzZWxmIF91bnNpZ25lZEludFZhbHVlRm9yS2V5OldlYktpdEphdmFTY3JpcHRSdW50
aW1lRmxhZ3NQcmVmZXJlbmNlS2V5XSk7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZv
cktleTpXZWJLaXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9
CiAKLS0gKHZvaWQpc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnczooV2ViS2l0SmF2YVNjcmlwdFJ1
bnRpbWVGbGFncylmbGFncworLSAoQk9PTClqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkCiB7
Ci0gICAgW3NlbGYgX3NldFVuc2lnbmVkSW50VmFsdWU6ZmxhZ3MgZm9yS2V5OldlYktpdEphdmFT
Y3JpcHRSdW50aW1lRmxhZ3NQcmVmZXJlbmNlS2V5XTsKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xW
YWx1ZUZvcktleTpXZWJLaXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKIC0gKHZvaWQpc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDooQk9PTClmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApp
bmRleCA3MmY2ODI1MTQzZmNkNTI2ZjM2MzFjNTgyYmE5NDA5ZjBlNzUzMGNkLi5mZGQ4YjY3Zjg2
OGRjZjk3MGMzNDk0MWMzNjY4YTcwNDk3NDlhOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTUyLDExICs1Miw2IEBAIHR5
cGVkZWYgZW51bSB7CiAgICAgV2ViQmxvY2tBbGxTdG9yYWdlCiB9IFdlYlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTsKIAotdHlwZWRlZiBlbnVtIHsKLSAgICBXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZs
YWdzU3ltYm9sRW5hYmxlZCA9IDF1IDw8IDAsCi0gICAgV2ViS2l0SmF2YVNjcmlwdFJ1bnRpbWVG
bGFnc0FsbEVuYWJsZWQgPSBXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzU3ltYm9sRW5hYmxl
ZAotfSBXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzOwotCiBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJl
ZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJl
bmNlc0NoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKQEAgLTcyLDggKzY3LDggQEAgZXh0ZXJu
IE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmlj
YXRpb247CiAtIChCT09MKWRldmVsb3BlckV4dHJhc0VuYWJsZWQ7CiAtICh2b2lkKXNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQ6KEJPT0wpZmxhZzsKIAotLSAoV2ViS2l0SmF2YVNjcmlwdFJ1bnRp
bWVGbGFncylqYXZhU2NyaXB0UnVudGltZUZsYWdzOwotLSAodm9pZClzZXRKYXZhU2NyaXB0UnVu
dGltZUZsYWdzOihXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKWZsYWdzOworLSAoQk9PTClq
YXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkOworLSAodm9pZClzZXRKYXZhU2NyaXB0RXhwZXJp
bWVudHNFbmFibGVkOihCT09MKWZsYWc7CiAKIC0gKEJPT0wpYXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQ7CiAtICh2b2lkKXNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOihCT09MKWZsYWc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNWFmOGExZWMwNTU5NGVlOGI4
ZmRmZmMwMTdmZGVjNTljY2QyMDU1ZS4uNjVlZTE0ODZjYmRmM2IzY2NmNjZiMDVlNTdmNjgwYWY5
MTE4YTViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjIzNCw3ICsy
MjM0LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQog
ICAgIHNldHRpbmdzLnNldEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWwoW3ByZWZl
cmVuY2VzIF9iYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsXSk7CiAKICAgICBzZXR0
aW5ncy5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKFtwcmVmZXJlbmNlcyBkZXZlbG9wZXJFeHRy
YXNFbmFibGVkXSk7Ci0gICAgc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhKU0M6
OlJ1bnRpbWVGbGFncyhbcHJlZmVyZW5jZXMgamF2YVNjcmlwdFJ1bnRpbWVGbGFnc10pKTsKKyAg
ICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKFtwcmVmZXJlbmNlcyBq
YXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
XSk7CiAKICAgICBzZXR0aW5ncy5zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhfcHJpdmF0ZS0+
dXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggZDc1NDI4YWIxNmZjYTQ0ZWM0MjY5NzU2
MDFhNjA1ZGVmZDNiOTg2OC4uNzEwOWEwNGU2MDJiMzc5NGEwNTI2NjI0NTRlNmVlMDUyZGFkYTg0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5p
dGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0
aW9ucy5oCkBAIC05NSw2ICs5NSw3IEBACiAgICAgbWFjcm8oRGF0YWJhc2VzRW5hYmxlZCwgZGF0
YWJhc2VzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKFhTU0F1ZGl0b3JF
bmFibGVkLCB4c3NBdWRpdG9yRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3Jv
KEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQsIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQsIEJvb2wsIGJv
b2wsIERFRkFVTFRfRlJBTUVfRkxBVFRFTklOR19FTkFCTEVEKSBcCisgICAgbWFjcm8oSmF2YVNj
cmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgQm9v
bCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBwcml2
YXRlQnJvd3NpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFRleHRB
cmVhc0FyZVJlc2l6YWJsZSwgdGV4dEFyZWFzQXJlUmVzaXphYmxlLCBCb29sLCBib29sLCBERUZB
VUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSkgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHksIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHksIEJvb2wsIGJvb2wsIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FV
VE9NQVRJQ0FMTFkpIFwKQEAgLTIxNiw3ICsyMTcsNiBAQAogICAgIG1hY3JvKEluc3BlY3RvckF0
dGFjaGVkV2lkdGgsIGluc3BlY3RvckF0dGFjaGVkV2lkdGgsIFVJbnQzMiwgdWludDMyX3QsIDc1
MCkgXAogICAgIG1hY3JvKEluc3BlY3RvckF0dGFjaG1lbnRTaWRlLCBpbnNwZWN0b3JBdHRhY2ht
ZW50U2lkZSwgVUludDMyLCB1aW50MzJfdCwgMCkgXAogICAgIG1hY3JvKFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSwgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBVSW50MzIsIHVpbnQzMl90LCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSkgXAotICAgIG1hY3JvKEph
dmFTY3JpcHRSdW50aW1lRmxhZ3MsIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIFVJbnQzMiwgdWlu
dDMyX3QsIDApIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RFQlVHX0JPT0xf
UFJFRkVSRU5DRShtYWNybykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDJhOGFkNmViMmQwODQxYThiYWI5MzU5M2ExNTA5N2Zk
MjYxNTU3MDYuLmMwNTg5MjEwN2EyOTJlM2QwZjQwOGJkY2E3MzMyZTIyYWEwMzIxZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAg
LTM0OSwxNCArMzQ5LDE0IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0Vu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwogfQogCi12b2lkIFdL
UHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIFdLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnU2V0IGphdmFTY3JpcHRSdW50aW1l
RmxhZ1NldCkKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewotICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEphdmFTY3JpcHRSdW50aW1lRmxhZ3MoamF2YVNj
cmlwdFJ1bnRpbWVGbGFnU2V0KTsKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRKYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGVuYWJsZWQpOwogfQogCi1XS0phdmFTY3JpcHRSdW50
aW1lRmxhZ1NldCBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQorYm9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlw
dEV4cGVyaW1lbnRzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewot
ICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5qYXZhU2NyaXB0UnVudGltZUZsYWdz
KCk7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmphdmFTY3JpcHRFeHBlcmlt
ZW50c0VuYWJsZWQoKTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0VGV4dEFyZWFzQXJlUmVz
aXphYmxlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgcmVzaXphYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWYuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgK
aW5kZXggMjRhYTQzMjZmNmI0MmMwODVmNjc4NDcyZjAxZGRkOWMxZTRjOWY3My4uZDVlNzQ2NGMx
NjhmM2NmYTIwNWQwMzg5MGRlNTE3MmI0MTM4MGI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCkBAIC0xNTAsNiArMTUwLDEwIEBA
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4
dHJhc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1
bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRF
eHBlcmltZW50c0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBl
bmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RXhwZXJp
bWVudHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZh
dWx0cyB0byB0cnVlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFRleHRBcmVhc0Fy
ZVJlc2l6YWJsZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIHJlc2l6YWJs
ZSk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0VGV4dEFyZWFzQXJlUmVzaXphYmxl
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCA0
NGUyNzhjNDRlNTI0YmZjY2Q3ZTU0ODdlNmM4OTQ3NjEzZmQxZDRkLi41ZGY0ZWYyNzU2MzRmYmRk
Nzc0ZGQ1MjRlZDgxOTUwMzhiNDgzN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDksMTIgKzQ5
LDYgQEAgZW51bSBXS0VkaXRhYmxlTGlua0JlaGF2aW9yIHsKIH07CiB0eXBlZGVmIGVudW0gV0tF
ZGl0YWJsZUxpbmtCZWhhdmlvciBXS0VkaXRhYmxlTGlua0JlaGF2aW9yOwogCi1lbnVtIFdLSmF2
YVNjcmlwdFJ1bnRpbWVGbGFncyB7Ci0gICAga1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc1N5bWJv
bEVuYWJsZWQgPSAxIDw8IDAsCi0gICAga1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJs
ZWQgPSBrV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzU3ltYm9sRW5hYmxlZAotfTsKLXR5cGVkZWYg
dW5zaWduZWQgV0tKYXZhU2NyaXB0UnVudGltZUZsYWdTZXQ7Ci0KIC8vIENyZWF0ZXMgYSBjb3B5
IHdpdGggbm8gaWRlbnRpZmllci4KIFdLX0VYUE9SVCBXS1ByZWZlcmVuY2VzUmVmIFdLUHJlZmVy
ZW5jZXNDcmVhdGVDb3B5KFdLUHJlZmVyZW5jZXNSZWYpOwogCkBAIC0zNTIsMTAgKzM0Niw2IEBA
IFdLX0VYUE9SVCBkb3VibGUgV0tQcmVmZXJlbmNlc0dldE1pbmltdW1ab29tRm9udFNpemUoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
U2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cywgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTY3JlZW5G
b250U3Vic3RpdHV0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKIAot
Ly8gRGVmYXVsdHMgdG8gMC4KLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2Ny
aXB0UnVudGltZUZsYWdzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIFdLSmF2YVNjcmlw
dFJ1bnRpbWVGbGFnU2V0IGphdmFzY3JpcHRSdW50aW1lRmxhZ1NldCk7Ci1XS19FWFBPUlQgV0tK
YXZhU2NyaXB0UnVudGltZUZsYWdTZXQgV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRSdW50aW1l
RmxhZ3MoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7Ci0KICNpZmRlZiBfX2NwbHVzcGx1
cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0KaW5kZXggN2MzN2RiMzg2YTZmMDhiZDAxODU2OWQ2NWQzMWM1MjI0
NzNkMWQwMC4uZWZjYWZiZTMyNzdkNjI4MmE5N2QxMDhjMjg2NjM4NzlhZjU5M2I0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bQpAQCAtMjY3LDE2ICsyNjcsNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRv
QVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQbwogICAgIF9wcmVm
ZXJlbmNlcy0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyk7CiB9CiAKLS0gKF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MpX2phdmFTY3Jp
cHRSdW50aW1lRmxhZ3MKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0UnVu
dGltZUZsYWdzKCk7Ci19Ci0KLS0gKHZvaWQpX3NldEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6KF9X
S0phdmFTY3JpcHRSdW50aW1lRmxhZ3MpamF2YVNjcmlwdFJ1bnRpbWVGbGFncwotewotICAgIF9w
cmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhqYXZhU2NyaXB0UnVudGltZUZs
YWdzKTsKLX0KLQogLSAoQk9PTClfaXNTdGFuZGFsb25lCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJl
bmNlcy0+c3RhbmRhbG9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDMzZGU4YmEyMmI5ZDMw
NDVmNjM1Njk5NDI0NmIzMjA0NTk3OGM0ZmUuLmZlMDQ3YTBmOGE5ZDZhNGI0MjVkYzFjMDcyYzMw
NjZkNGExYjliMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQyLDExICs0Miw2IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zKSB7CiAgICAg
X1dLV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEKIH0gV0tfRU5VTV9BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKLXR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzKSB7Ci0gICAgX1dLSmF2YVNjcmlwdFJ1bnRpbWVG
bGFnc1N5bWJvbEVuYWJsZWQgPSAxIDw8IDAsCi0gICAgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFn
c0FsbEVuYWJsZWQgPSBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzU3ltYm9sRW5hYmxlZAotfSBX
S19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLQogQGludGVyZmFjZSBX
S1ByZWZlcmVuY2VzIChXS1ByaXZhdGUpCiAKIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5IHNob3Vs
ZCBub3QgaGF2ZSB0aGUgdmVyYiAiaXMiIGluIGl0LgpAQCAtNjQsNyArNTksNiBAQCB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncykgewogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29u
c29sZUVuYWJsZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2Fs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0UnVudGlt
ZUZsYWdzOikgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncyBfamF2YVNjcmlwdFJ1bnRpbWVGbGFn
cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRhbG9uZSkgQk9P
TCBfc3RhbmRhbG9uZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yUHJveHlF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVm
bC5jcHAKaW5kZXggYjM1YTVmNzljODU0MjA0YTg5NzIwM2E4NWFmNWE4ZmRjMjEwZTM1NS4uODMw
ZWI0Y2E3ZGE0YzgwNThlOGQ4NTg2Y2M4NTc1MWViMjA5ZWQ2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKQEAgLTEx
NCw3ICsxMTQsNiBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNy
ZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAgV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2Vz
ID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyh3a1BhZ2VHcm91cCk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHdrUHJlZmVyZW5jZXMsIHRydWUp
OwotICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHdrUHJlZmVyZW5j
ZXMsIGtXS0phdmFTY3JpcHRSdW50aW1lRmxhZ3NTeW1ib2xFbmFibGVkKTsKIAogICAgIHJldHVy
biB0b0ltcGwoV0tWaWV3R2V0UGFnZSh3a1ZpZXcpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggOWU3N2Jk
NDk0YjU4NzgyZDkzY2U1NzVmYmNmYzM3NWM1NDU1ZjJjMy4uZTRhMmI1NDE5MDhmMDBiYzNmZDM3
MGY5Mjg1MWRiNDkwMmQyMGUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTY5LDkgKzY5LDYgQEAgV2ViUGFn
ZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkK
ICAgICBwcmVmZXJlbmNlcy0+c2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJs
ZWQodHJ1ZSk7CiAjZW5kaWYKICAgICBwcmVmZXJlbmNlcy0+c2V0QWxsb3dGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzKHRydWUpOwotICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0UnVudGltZUZs
YWdzKHsKLSAgICAgICAgSlNDOjpSdW50aW1lRmxhZ3M6OlN5bWJvbEVuYWJsZWQKLSAgICB9KTsK
ICAgICBSZWZQdHI8V2ViUGFnZUdyb3VwPiBwYWdlR3JvdXAgPSBXZWJQYWdlR3JvdXA6OmNyZWF0
ZShpbnNwZWN0b3JQYWdlR3JvdXBJZGVudGlmaWVyKCksIGZhbHNlLCBmYWxzZSk7CiAgICAgbV9p
bnNwZWN0b3JWaWV3ID0gR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZSgmaW5zcGVj
dG9yUHJvY2Vzc1Bvb2woKSwgcHJlZmVyZW5jZXMuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSwgbnVs
bHB0ciwgbnVsbHB0cikpOwogICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qo
bV9pbnNwZWN0b3JWaWV3KSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZtX2luc3BlY3RvclZp
ZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3Rv
clByb3h5TWFjLm1tCmluZGV4IGM2MzAyM2YxOWNmNjBjMmY0YWZkNjY2YzJlMzI1ODY2MTBkMTg5
NmUuLmE4ZDU2ZWI2NGM4OWNkMTc5NDk0OWQ0ZGZiNDMxYTdlZDk1NDE3ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpA
QCAtNDg4LDcgKzQ4OCw2IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAgICAgcHJlZmVyZW5jZXMuX2xvZ3NQYWdlTWVzc2Fn
ZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkID0gWUVTOwogI2VuZGlmCiAgICAgcHJlZmVyZW5jZXMu
X2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5famF2
YVNjcmlwdFJ1bnRpbWVGbGFncyA9IF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3NTeW1ib2xFbmFi
bGVkOwogICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOiA6OldlYktpdDo6d3JhcHBl
cihpbnNwZWN0b3JQcm9jZXNzUG9vbCgpKV07CiAgICAgW2NvbmZpZ3VyYXRpb24gX3NldEdyb3Vw
SWRlbnRpZmllcjppbnNwZWN0b3JQYWdlR3JvdXBJZGVudGlmaWVyKCldOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODcwZWQ5MjRlZWY1
YTRmOTNlNTliODUwNDI3NDM0ZmUxNzhmZWE3OS4uYjBkZTMwMzIzNDFiMDQ5MzY3ZjhhODE3Mzll
NWU1MjI3ZjU0OTE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMjY1Myw3ICsyNjUzLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBlbHNlIGlmICgh
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3Np
bmdFbmFibGVkS2V5KCkpICYmIHNlc3Npb25JRCgpID09IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKQogICAgICAgICBzZXRTZXNzaW9uSUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOwogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFi
bGVkS2V5KCkpKTsKLSAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKFJ1bnRp
bWVGbGFncyhzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2
YVNjcmlwdFJ1bnRpbWVGbGFnc0tleSgpKSkpOworICAgIHNldHRpbmdzLnNldEphdmFTY3JpcHRF
eHBlcmltZW50c0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5Ojp0ZXh0QXJlYXNBcmVSZXNpemFibGVLZXkoKSkpOwogICAgIHNldHRpbmdzLnNl
dE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3NLZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5S2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQy
Lm9yZGVyIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKaW5kZXggOGEwMzgzODky
N2Y1ZTkyZTM4ZDUzNjJmYWMzOWQ3ZGEwNmY2MzZmOC4uYWU2MjVmN2MxNmM2YmFmNTQwNzQ5YWNl
YjQ2NWYyNzIzNzVmOWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIu
b3JkZXIKKysrIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKQEAgLTE3Niw2ICsx
NzYsNyBAQCBfX1pONldlYktpdDE3V2ViUHJlZmVyZW5jZXNLZXkxOWRhdGFiYXNlc0VuYWJsZWRL
ZXlFdgogX19aTjZXZWJLaXQxN1dlYlByZWZlcmVuY2VzS2V5MjB4c3NBdWRpdG9yRW5hYmxlZEtl
eUV2CiBfX1pONldlYktpdDE3V2ViUHJlZmVyZW5jZXNLZXkyNWZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRLZXlFdgogX19aTjZXZWJLaXQxN1dlYlByZWZlcmVuY2VzS2V5MjVkZXZlbG9wZXJFeHRyYXNF
bmFibGVkS2V5RXYKK19fWk42V2ViS2l0MTdXZWJQcmVmZXJlbmNlc0tleTMxamF2YVNjcmlwdEV4
cGVyaW1lbnRzRW5hYmxlZEtleUV2CiBfX1pONldlYktpdDE3V2ViUHJlZmVyZW5jZXNLZXkyNXBy
aXZhdGVCcm93c2luZ0VuYWJsZWRLZXlFdgogX19aTjZXZWJLaXQxN1dlYlByZWZlcmVuY2VzS2V5
MjR0ZXh0QXJlYXNBcmVSZXNpemFibGVLZXlFdgogX19aTjZXZWJLaXQxN1dlYlByZWZlcmVuY2Vz
S2V5NDBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5S2V5RXYKQEAgLTgxMjgs
NiArODEyOSw4IEBAIF9XS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQKIF9fWk42V2Vi
S2l0MTRXZWJQcmVmZXJlbmNlczIwc2V0WFNTQXVkaXRvckVuYWJsZWRFUktiCiBfV0tQcmVmZXJl
bmNlc1NldFdlYkF1ZGlvRW5hYmxlZAogX19aTjZXZWJLaXQxNFdlYlByZWZlcmVuY2VzMThzZXRX
ZWJBdWRpb0VuYWJsZWRFUktiCitfV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQKK19fWk42V2ViS2l0MTRXZWJQcmVmZXJlbmNlczMxc2V0SmF2YVNjcmlwdEV4cGVy
aW1lbnRzRW5hYmxlZEVSS2IKIF9XS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZAogX19aTjZXZWJLaXQxNFdlYlByZWZlcmVuY2VzMzFzZXRKYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkRVJLYgogX1dLUHJlZmVyZW5jZXNTZXRET01QYXN0ZUFsbG93ZWQKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Nzk0NjhiOWNi
YTJlZTVkMjMwZTM4ZWY0OWUyZTI4OGMzMTEwMWQ2Li40Mjg1MjM3MDBkZmU5MDE2NDI0ZmI3NTQ1
NWFjYjQ4OTBlNTc4NTdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDItMjMgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxODA1NDcgYW5kIHIxODA1NTAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDE5NTcKKworICAgICAgICBCcm9rZSAxMCBXaW5kb3dzIHRlc3RzLiAo
UmVxdWVzdGVkIGJ5IGJmdWxnaGFtXyBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXRzOgorCisgICAgICAgICJSRUdSRVNTSU9OKHIxNzk0MjkpOiBDYW4ndCB0eXBlIGNv
bW1lbnRzIGluIEZhY2Vib29rIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQxODU5CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE4MDU0NworCisgICAgICAgICJDb25zdHJ1Y3RvciByZXR1cm5pbmcgbnVsbCBzaG91bGQg
Y29uc3RydWN0IGFuIG9iamVjdCBpbnN0ZWFkCisgICAgICAgIG9mIG51bGwiCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2NDAKKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNTUwCisKIDIwMTUtMDItMjMgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MTc5NDI5KTogQ2FuJ3QgdHlwZSBjb21tZW50cyBpbiBGYWNlYm9vawpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDYzNTIxZTk1MDUyZmU4MWIwOGU0ZDZl
MzdhOWMxZWFhN2IxODA5MTYuLjIxMmU1MWJhNGEwMWYyZWQ0ODJmNDcwNzM3ZWYzOTQyZDU4Yzkx
YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTgz
OSw3ICs4MzksNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKCkKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVu
YWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpO
T107Ci0gICAgW3ByZWZlcmVuY2VzIHNldEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6V2ViS2l0SmF2
YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWRdOworICAgIFtwcmVmZXJlbmNlcyBzZXRKYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldExvYWRz
SW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZTpOT107CiAgICAgW3ByZWZlcmVuY2Vz
IHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCAzNDgxMzQwNDJjNTBjNWRiNzBhYjA2YjJiYmI2M2JkMDA1
Y2M0YTQ1Li4zZjVjZjJkNzAzYjg2MWQ5Y2RlNjAzNGIwMmI4NGJhNWFmMzY0OGU1IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMo
KQogICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVN0cmVhbUVuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhw
cmVmZXJlbmNlcywga1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWQpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRET01QYXN0ZUFsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJhZDk0ZTQx
YTI2ZDczMDMzYzZkNWVhMmM5ZTg1Mzk1OWU2ZGJkMTYuLmVmZWYyNjhiMzIwYmYwNGVhM2YyZjY2
MGJhNjE0Njc1Y2ViNzJmNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wMi0yMyAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE4MDU0NyBhbmQgcjE4MDU1MC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk1NworCisgICAgICAgIEJyb2tlIDEwIFdp
bmRvd3MgdGVzdHMuIChSZXF1ZXN0ZWQgYnkgYmZ1bGdoYW1fIG9uICN3ZWJraXQpLgorCisgICAg
ICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlJFR1JFU1NJT04ocjE3OTQyOSk6
IENhbid0IHR5cGUgY29tbWVudHMgaW4gRmFjZWJvb2siCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4NTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNTQ3CisKKyAgICAgICAgIkNvbnN0cnVjdG9yIHJldHVybmlu
ZyBudWxsIHNob3VsZCBjb25zdHJ1Y3QgYW4gb2JqZWN0IGluc3RlYWQKKyAgICAgICAgb2YgbnVs
bCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTY0
MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODA1NTAKKwogMjAx
NS0wMi0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAg
ICBDb25zdHJ1Y3RvciByZXR1cm5pbmcgbnVsbCBzaG91bGQgY29uc3RydWN0IGFuIG9iamVjdCBp
bnN0ZWFkIG9mIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RmZy10by1wcmltaXRp
dmUtcGFzcy1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZGZnLXRvLXByaW1p
dGl2ZS1wYXNzLXN5bWJvbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI3NTJjY2M3ZTM4YTZmNWQ2YjhlOTRiNzU1MDM5MTRhZmUxYWQyNjEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZGZnLXRv
LXByaW1pdGl2ZS1wYXNzLXN5bWJvbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MSArMCwwIEBACi1UZXN0cyB0aGF0IG9wX3RvX3ByaW1pdGl2ZSBwYXNzIFN5bWJvbC4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLXN0ciBjb25jYXQgZ2VuZXJhdGVzIG9wX3RvX3By
aW1pdGl2ZS4KLVBBU1MgZG9Ub1ByaW1pdGl2ZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZGZnLXRvLXByaW1pdGl2ZS1wYXNz
LXN5bWJvbC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZGZnLXRvLXByaW1pdGl2ZS1wYXNzLXN5bWJv
bC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODM0MDVjNzJjMjA4ODFkNWNk
M2YwZGExNTUxZDI3YzFlMzBkZjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL2RmZy10by1wcmltaXRpdmUtcGFzcy1zeW1ib2wu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kZmctdG8tcHJpbWl0aXZlLXBhc3Mtc3ltYm9sLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi1tYXNxdWVyYWRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9kb20vY29uc3RydWN0b3Itd2l0aC1yZXR1cm4tbWFzcXVlcmFkZXMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjZlMDUwNzBkNmExZmI2NjA0
N2RjOTEwZGZlNDIxNmZiNDk0OWJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi1t
YXNxdWVyYWRlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1U
aGlzIHRlc3RzIHRoZSBjb25zdHJ1Y3RvciByZXR1cm5pbmcgbWFzcXVlcmFkZXMgYXMgdW5kZWZp
bmVkIHJldHVybiBtYXNxdWVyYWRlcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgcmVzdWx0IGlzIGRvY3VtZW50LmFsbAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9j
b25zdHJ1Y3Rvci13aXRoLXJldHVybi1tYXNxdWVyYWRlcy5odG1sIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL2NvbnN0cnVjdG9yLXdpdGgtcmV0dXJuLW1hc3F1ZXJhZGVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA4YzU0MGVlMzQ2MTg4NzBlOWQ5MWI1Mjc0OTM5NzMwZjRhNzcz
ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvZG9tL2NvbnN0cnVjdG9yLXdpdGgtcmV0dXJuLW1hc3F1ZXJhZGVzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvY29uc3RydWN0b3Itd2l0aC1yZXR1cm4tbWFzcXVlcmFkZXMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi1tYXNxdWVyYWRlcy5q
cyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvY29uc3RydWN0b3Itd2l0aC1yZXR1
cm4tbWFzcXVlcmFkZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlNGMzYzll
M2Q1Yjc1OWQ3MGJiM2U0MmQxOWY4NWMwZmQzOWQ3MzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9j
b25zdHJ1Y3Rvci13aXRoLXJldHVybi1tYXNxdWVyYWRlcy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDcgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGNvbnN0cnVjdG9yIHJldHVy
bmluZyBtYXNxdWVyYWRlcyBhcyB1bmRlZmluZWQgcmV0dXJuIG1hc3F1ZXJhZGVzLiIpOwotCi1m
dW5jdGlvbiBDb25zdHJ1Y3RvcigpIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuYWxsOwotfQotdmFy
IHJlc3VsdCA9IG5ldyBDb25zdHJ1Y3RvcigpOwotc2hvdWxkQmUoInJlc3VsdCIsICJkb2N1bWVu
dC5hbGwiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY29uc3RydWN0b3It
d2l0aC1yZXR1cm4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jb25zdHJ1
Y3Rvci13aXRoLXJldHVybi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4MTQ4ZWJhYmZiN2FlNmEwYmNiZTQwNDkyODU0YmMyMDQ5YjllNGIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvY29uc3RydWN0b3Itd2l0aC1yZXR1cm4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY29uc3RydWN0b3Itd2l0aC1yZXR1cm4uaHRtbCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvY29uc3RydWN0b3Itd2l0aC1yZXR1cm4uaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc3MDFlYjY5NjVmOTIyMjQ2YWNhMWVkMDljN2I1M2Y3
MGI1ZTVmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NvbnN0cnVjdG9yLXdpdGgtcmV0dXJuLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9jb25zdHJ1Y3Rvci13aXRoLXJldHVybi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9yLXdpdGgtcmV0dXJuLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzMmEyODkyYzUxODU0ZWY3ZDIwYmM2ZWZkNmM4MDQ3ZTZiNmY3MDJk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9yLXdpdGgtcmV0dXJuLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotZnVuY3Rpb24gVGVzdCh2YWx1ZSwgcmV0dXJu
SXQpIHsKLSAgICB0aGlzLnZhbHVlID0gdmFsdWU7Ci0gICAgdGhpcy5yZXR1cm5JdCA9IHJldHVy
bkl0OwotfQotCi12YXIgdGVzdHMgPSBbCi0gICAgbmV3IFRlc3QoInN0cmluZyIsIGZhbHNlKSwK
LSAgICBuZXcgVGVzdCg1LCBmYWxzZSksCi0gICAgbmV3IFRlc3QoNi41LCBmYWxzZSksCi0gICAg
bmV3IFRlc3Qodm9pZCgwKSwgZmFsc2UpLAotICAgIG5ldyBUZXN0KG51bGwsIGZhbHNlKSwKLSAg
ICBuZXcgVGVzdCh0cnVlLCBmYWxzZSksCi0gICAgbmV3IFRlc3QoZmFsc2UsIGZhbHNlKSwKLSAg
ICBuZXcgVGVzdChTeW1ib2wuaXRlcmF0b3IsIGZhbHNlKSwKLSAgICBuZXcgVGVzdCh7Zjo0Mn0s
IHRydWUpLAotICAgIG5ldyBUZXN0KFsxLCAyLCAzXSwgdHJ1ZSksCi0gICAgbmV3IFRlc3QobmV3
IFN0cmluZygic3RyaW5nIiksIHRydWUpLAotICAgIG5ldyBUZXN0KG5ldyBOdW1iZXIoNDIpLCB0
cnVlKSwKLSAgICBuZXcgVGVzdChuZXcgQm9vbGVhbihmYWxzZSksIHRydWUpLAotICAgIG5ldyBU
ZXN0KG5ldyBCb29sZWFuKGZhbHNlKSwgdHJ1ZSksCi0gICAgbmV3IFRlc3QoT2JqZWN0KFN5bWJv
bC5pdGVyYXRvciksIHRydWUpLAotXTsKLQotdGVzdHMuZm9yRWFjaChmdW5jdGlvbiAodGVzdCkg
ewotICAgIGZ1bmN0aW9uIENvbnN0cnVjdG9yKCkgewotICAgICAgICByZXR1cm4gdGVzdC52YWx1
ZTsKLSAgICB9Ci0KLSAgICB2YXIgcmVzdWx0ID0gbmV3IENvbnN0cnVjdG9yKCk7Ci0gICAgaWYg
KHRlc3QucmV0dXJuSXQpIHsKLSAgICAgICAgaWYgKHRlc3QudmFsdWUgIT09IHJlc3VsdCkgewot
ICAgICAgICAgICAgdGhyb3cgIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAoIShyZXN1bHQgaW5zdGFuY2VvZiBDb25zdHJ1Y3Rvcikp
IHsKLSAgICAgICAgICAgIHRocm93ICJCYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotICAgICAgICB9
Ci0gICAgfQotfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZn
LXRvLXByaW1pdGl2ZS1wYXNzLXN5bWJvbC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9kZmctdG8tcHJpbWl0aXZlLXBhc3Mtc3ltYm9sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1NjAxY2Y1OTM5MmU1YmJlNmU5ZGFjODcyZTVlMTczOTYzMzBjYTc1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9kZmctdG8tcHJpbWl0aXZlLXBhc3Mtc3ltYm9sLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjQgKzAsMCBAQAotZGVzY3JpcHRpb24oCi0iVGVzdHMgdGhhdCBvcF90b19wcmltaXRp
dmUgcGFzcyBTeW1ib2wuIgotKTsKLQotdmFyIGZsYWcgPSBmYWxzZTsKLWRlYnVnKCJzdHIgY29u
Y2F0IGdlbmVyYXRlcyBvcF90b19wcmltaXRpdmUuIik7Ci1mdW5jdGlvbiB0b1ByaW1pdGl2ZVRh
cmdldCgpIHsKLSAgICBpZiAoZmxhZykgewotICAgICAgICByZXR1cm4gU3ltYm9sKCdDb2NvYScp
OwotICAgIH0KLSAgICByZXR1cm4gJ0NhcHB1Y2Npbm8nOwotfQotbm9JbmxpbmUodG9QcmltaXRp
dmVUYXJnZXQpOwotCi1mdW5jdGlvbiBkb1RvUHJpbWl0aXZlKCkgewotICAgIHZhciB2YWx1ZSA9
IHRvUHJpbWl0aXZlVGFyZ2V0KCk7Ci0gICAgcmV0dXJuIHZhbHVlICsgIkNhcHB1Y2Npbm8iICsg
dmFsdWU7Ci19Ci0KLXdoaWxlICghZGZnQ29tcGlsZWQoe2Y6ZG9Ub1ByaW1pdGl2ZX0pKSB7Ci0g
ICAgZG9Ub1ByaW1pdGl2ZSgpOwotfQotZmxhZyA9IHRydWU7Ci1zaG91bGRUaHJvdygiZG9Ub1By
aW1pdGl2ZSgpIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>